Публикации по теме 'design-principles'


Ключевые принципы программного обеспечения — DRY, KISS, YAGNI, SOLID и другие сокращения
Программисты используют свои собственные аббревиатуры, некоторые из которых являются основными принципами, придающими программному обеспечению глубину и смысл. Этот язык объединяет кодеров и программистов на разных континентах. Трудно найти все аббревиатуры в одном месте, потому что они используются в широком контексте. Мы рассмотрим некоторые из важных аббревиатур, о которых стоит узнать. Эта статья поможет вам изучить основные понятия, области применения и преимущества акронимов...

Программирование на интерфейс - учимся на примере
Существует множество определений того, что называется « Программирование для интерфейса, а не реализация ». Попробуем понять этот принцип дизайна. Все принципы проектирования используются для эффективного обслуживания переменных частей, чтобы приложение без сбоев принимало изменения в будущем. ваш код должен быть гибким с учетом будущих улучшений или изменений. Это может быть достигнуто с помощью шаблона «программирование на интерфейс». Интерфейсы - это просто контракты или..

Упростите свой код: сила принципа KISS в JavaScript
KISS расшифровывается как «Keep It Simple, Stupid». Это принцип разработки программного обеспечения, согласно которому системы работают лучше, когда они просты и понятны, а не сложны. Идея состоит в том, чтобы сделать код легким для чтения, поддержки и отладки. Обычно, когда разработчик сталкивается с проблемой, он разбивает ее на более мелкие части, а затем пытается реализовать решение в коде. Часто разработчики совершают ошибку, не разбивая проблему на достаточно мелкие или..

Шаблон проектирования Factory Method в C#
В этой статье я расскажу о Шаблонах проектирования и шаблоне проектирования фабричный метод. Что такое шаблоны проектирования? Шаблоны проектирования — это многократно используемые решения часто возникающих проблем при проектировании программного обеспечения. Если вы инженер-программист и не знакомы ни с одним программным обеспечением Шаблоны проектирования , то вы сильно отстали. Есть шаблон для всего, чего вы хотите достичь. Возможно, вы использовали его сами, даже не..

Принципы SOLID для структурирования вашего кода
При разработке программы некоторые программисты склонны просто писать код по ходу дела, не задумываясь о том, как они написали программу. Для этого есть разные причины, такие как ограниченное время (это, скорее всего, основная причина), лень, сложность уже сделанной программы или забывчивость, список можно продолжить. В краткосрочной перспективе этот подход кажется наиболее приятным способом написания кода, но в долгосрочной перспективе понимание кода может быть довольно утомительным. Как..

Дизайн программного обеспечения используется для представления структуры системы и определения потенциальных затрат и времени, необходимых для создания указанного программного обеспечения…
Дизайн программного обеспечения используется для представления структуры системы и определения потенциальных затрат и времени, необходимых для создания указанного программного обеспечения. Конечно, их следует использовать в качестве оценок; Успешное определение стоимости и времени, необходимых для создания программного обеспечения, является задачей, которая, вероятно, никогда не решалась в реальном мире или приводила либо к компромиссу в качестве, либо к части программного обеспечения,..

Вопросы по теме 'design-principles'

Принцип подстановки лисков и обработка исключений
В нем говорится, что класс Derived не должен генерировать какое-либо исключение, которое не известно базовому классу, я пытаюсь выяснить, как он работает, в базовом классе я бросаю System.Exception, а в Derived я бросаю ArgNullException (). Может...
1191 просмотров

Лучший дизайн пользовательской модели Django
Возможно, некоторые из вас скажут, что это повторяющаяся тема, но после прочтения многих статей она все еще кажется мне очень неоднозначной. Мой вопрос касается наилучшего способа использования и расширения модели User с сохранением механизмов...
554 просмотров

Как избежать избыточной бизнес-логики (выборки БД) при создании DTO?
Я разрабатываю приложение N-уровня на C #. Сторона сервера состоит из следующих слоев: Уровень доступа к данным (EF Code First Entities и DbContext) Бизнес-уровень (содержит всю бизнес-логику и объекты) Уровень службы WCF (службы, созданные...
262 просмотров

Реализация паттерна проектирования конвейера
Это вопрос проектирования относительно реализации конвейера. Вот моя наивная реализация. Интерфейс для отдельных шагов / стадий в конвейере: public interface Step<T, U> { public U execute(T input); } Конкретные реализации шагов...
33160 просмотров

В чем разница между макетом и дизайном?
Я не понимаю, что такое Design и что Layout в веб-дизайне. Я запуталась в верстке и дизайне.
6312 просмотров

О каких функциях должно заботиться любое хорошее приложение "By-Design"
Я знаю, что ответ по умолчанию - «это зависит», но я хочу знать список функций, с которыми вы работаете при разработке хорошего приложения. Меня особенно интересуют функции, о которых нужно позаботиться во время разработки, потому что их позднее...
1963 просмотров
schedule 14.05.2022

Это хорошая идея изменить модель Magento Cutomer
Пару дней назад я разместил вопрос по StackExchange — Magento . Пожалуйста, прочитайте этот пост, так как этот вопрос связан. Поскольку я хотел, чтобы этот недавно созданный атрибут клиента был уникальным. то есть ни у одного пользователя не...
34 просмотров

Какие принципы SOLID нарушаются?
ВВЕДЕНИЕ Я работаю над своей магистерской диссертацией о проблемах наследования и разрабатываю некоторые индикаторы, которые показывают, что проблема наследования существует. Как в следующем примере: ПРИМЕР public static String...
4152 просмотров

Помогите выбрать мои сводные корни DDD в предоставленном сценарии?
Я новичок в DDD и прочитал несколько статей об этой концепции, так что извините, если мне не хватает знаний. Мне любопытно, как этот пример должен быть смоделирован с совокупными корнями. Основа: Есть Сотрудник, Встреча и Комментарии. Каждый...
431 просмотров

Система событий - как сигнал/слот в Qt без разветвления - С++
Я хотел бы знать, как спроектировать систему, которая может предложить прочную основу для обработки сигналов и связи между сигналом/ами и методом/ами без написания действительно неприятного цикла, который повторяется снова и снова с некоторым...
994 просмотров
schedule 27.06.2023

Правильно реализовать сравнение двух объектов разного типа, но семантически эквивалентных
Я нашел похожий вопрос Как сравнить два совершенно разных объекта с похожими свойствами которые могут неявно и/или частично отвечать на мой вопрос. Предположим, я хочу сравнить (без множества вложенных условий) этот объект: class...
8036 просмотров
schedule 05.02.2023

Общедоступный виртуальный метод переопределен как частный. Нарушение принципов обобщения/специализации/Лисков?
Как и в случае с членом закрытой функции, вызываемым вне класса , можно написать следующий код: #include <iostream> class A { public: virtual void f() { std::cout << "A::f()"; } }; class B : public A { private: void f()...
79 просмотров

Определите классы и стратегии именования классов
Я пытаюсь понять принцип единой ответственности и определить возможный класс, который может быть в моей системе. На данный момент я знаю принципы, сказанные дядей Бобом, а именно: избегайте ласковых слов , таких как "менеджер", "данные",...
106 просмотров
schedule 13.02.2023

Единая ответственность (SRP) против «Скажи, не спрашивай» (TDA)?
Я понимаю, что многие принципы дизайна в некоторых случаях противоречат друг другу. Итак, мы должны взвесить их и посмотреть, какой из них более выгоден. До сих пор я знал о принципе SRP и делал множество своих проектов исключительно на его основе,...
660 просмотров

Ленивые методы сущностей и закон Диметры
У меня есть сущность: @Entity @Table(name = "CARDS") public class Card { @ManyToOne @JoinColumn(name = "PERSON_ID", referencedColumnName = "ID", nullable = false) private Person person; @OneToMany(mappedBy = "card") private...
60 просмотров