Вопросы с тегом «design»

10
Интерфейс с только получателями - это запах кода?

(Я видел этот вопрос , но первый ответ касается автоматических свойств больше, чем дизайна, а второй говорит , что нужно скрыть код хранилища данных от потребителя , что я не уверен, что я хочу / мой код делает, так что хотелось бы услышать другое мнение) У меня есть две очень похожие сущности,...

10
Источник событий, одно событие, состояние двух агрегатов изменилось

Я пытаюсь изучить способы DDD и смежных предметов. Мне пришла в голову идея простого ограниченного контекста для реализации «банка»: есть счета, деньги можно вкладывать, снимать и переводить между ними. Также важно вести историю изменений. Я идентифицировал сущность Аккаунта, и было бы полезно...

10
Как создать новый агрегатный корень в CQRS?

Как мы должны создавать новые агрегатные корни в архитектуре cqrs? В этом примере я хочу создать новый совокупный корневой AR2, который содержит ссылку на первый AR1. Я создаю AR2, используя метод AR1 в качестве отправной точки. Пока что вижу несколько вариантов: Внутри метода в AR1...

10
Как провести рефакторинг приложения с несколькими вариантами переключения?

У меня есть приложение, которое принимает целое число в качестве ввода и на основе ввода вызывает статические методы различных классов. Каждый раз, когда добавляется новый номер, нам нужно добавить еще один случай и вызвать другой статический метод другого класса. Теперь в коммутаторе 50 дел, и...

10
Что такое простой процесс проектирования системы ООП перед ее кодированием?

Всякий раз, когда мне требовалось построить проект, мне всегда удавалось построить его, не заранее разработав план или проект, а после того, как сначала написал необходимый класс, конкретизировав весь проект, создавая его снизу вверх. Теперь я знаю, что это не правильный способ создания...

10
Включить ссылку на соответствующую документацию в сообщении об ошибке?

Мы создаем коммерческую библиотеку и примеры кода, которые используются внешними разработчиками. У нас есть (закрытая, доступная для зарегистрированных пользователей) документация, в которой подробно объясняется, как использовать библиотеку. Многие из разработчиков являются новичками, поэтому...

10
Почему нуль-безопасные операторы (например, «оператор Элвиса») были отклонены как часть «Project Coin» Java 7?

Одной из предлагаемых функций Java 7 Project Project Coin была «Оператор Элвиса». Отчет о 2009 JavaOne презентации по проекту Coin описал его как таковой: Одной из «мелких особенностей», рассматриваемых в этой презентации, является так называемый «оператор Элвиса», более краткая версия троичного...

10
Как разрешить взаимозависимость классов в моем коде C ++?

В моем проекте C ++ у меня есть два класса, Particleи Contact. В Particleклассе, у меня есть переменная - член std::vector<Contact> contacts, содержащий все контакты Particleобъекта, а также соответствующие функции - члены getContacts()и addContact(Contact cont). Таким образом, в «Particle.h»...

10
Как спроектировать совокупные границы?

Я хотел бы написать приложение что-то вроде электронной коммерции. И вы знаете, что в аналогичных приложениях продукты могут иметь разные свойства и особенности. Чтобы смоделировать такую ​​возможность, я создал следующие сущности модели предметной области: Категория - это что-то вроде...

10
Является ли нарушением принципа Открыто-Закрыто обновление константы, представляющей реальное значение?

У меня есть класс для расчета чистого годового дохода работников. У него есть константа, представляющая процент налога. Но однажды ставка налога изменилась, поэтому мне нужно исправить код. Указывает ли акт исправления этой константы на нарушение принципа Открыто-Закрыто , поскольку он постулирует,...

10
Как именно компилятор восстанавливается после ошибки типа?

Я прочитал несколько статей, статей и раздел 4.1.4, глава 4 « Компиляторы: принципы, методы и инструменты» (2-е издание) (он же «Книга Дракона»), в которых все обсуждается тема исправления синтаксических ошибок компилятора. Однако, после экспериментов с несколькими современными компиляторами, я...

10
Что такое правильный код состояния ответа на POST, если родительский ресурс не найден?

У меня есть следующая конечная точка: a/{id}/b и хочу создать bс отправкой POSTзапроса к нему. Если aс данным {id}не найдено, я должен ответить с 404 NOT_FOUNDили, может быть, с 409 CONFLICT? Это просто для обработки a/{id}, хитрость в том, что здесь используется...

10
Как избежать бесконечно повторяющихся одинаково неоптимальных проектов?

Поэтому, вероятно, как и многие, я часто сталкиваюсь с головными болями, связанными с проблемами проектирования, в которых, например, есть какой-то шаблон / подход к проектированию, который, кажется, интуитивно подходит к проблеме и имеет желаемые преимущества. Очень часто есть некоторая оговорка,...

10
Архитектура системы оповещения

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

10
Скрытие / отключение функций для некоторых пользователей

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

10
Причины неинтуитивной реализации C # String.Split ()

В C #, если я хочу разделить stringна другое, stringя должен сделать что-то вроде этого: testString.Split(new string[] { "anotherString" }, StringSplitOptions.None); Из перегруженной String.Splitдокументации MSDN мы можем видеть реализацию и почему такой вызов должен быть сделан. Исходя из Python ,...

10
Как безопасность потоков может быть обеспечена языком программирования, аналогичным тому, как в Java и C # обеспечивается безопасность памяти?

Java и C # обеспечивают безопасность памяти, проверяя границы массивов и разыменования указателей. Какие механизмы можно было бы внедрить в язык программирования, чтобы предотвратить возможность состояния гонки и...

10
Что такое «преждевременная абстракция»?

Я слышал, как фразу бросают вокруг, и для меня аргументы звучат совершенно безумно (извините, если я здесь играю, это не мое намерение), как правило, это звучит примерно так: Вы не хотите создавать абстракцию до того, как узнаете, каков общий случай, иначе (1) вы можете помещать в свои абстракции...

10
Действительно ли мне нужны триггеры для реляционной базы данных, например, PostgreSQL?

Я знаю, что триггеры можно использовать для проверки хранимых данных, чтобы поддерживать согласованность базы данных. Однако, почему бы не выполнить проверку данных на стороне приложения перед сохранением их в базе данных? Например, мы храним клиентов и хотим выполнить некоторую проверку, которую...

10
Какое лучшее определение для Dependency Injection?

Каждый раз, когда кто-то приходит ко мне и просит меня концептуально определить Dependency Injection и объяснить реальные плюсы и минусы использования DI в разработке программного обеспечения. Признаюсь, у меня есть некоторые трудности с объяснением понятий DI. Каждый раз, когда мне нужно...