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

13
одна таблица с дополнительными столбцами и несколькими таблицами, дублирующими схему

Я работаю над проектом, в котором в какой-то момент мне нужно было принять решение о том, должна ли в базе данных быть одна таблица с несколькими столбцами, которую использует не каждая запись, или несколько таблиц с дублированной схемой. Я создаю спортивное информационное приложение, которое может...

13
Должен ли я выставлять «вычисленное» значение как свойство или метод?

У меня есть класс C #, который представляет тип контента в системе управления веб-контентом. У нас есть поле, которое позволяет редактору веб-материалов вводить HTML-шаблон для отображения объекта. Он в основном использует синтаксис handlebars для подстановки значений свойств объекта в строку HTML:...

13
Как сохранить низкий аргумент и сохранить независимость сторонних зависимостей?

Я использую стороннюю библиотеку. Они передают мне POJO, который для наших намерений и целей, вероятно, реализован так: public class OurData { private String foo; private String bar; private String baz; private String quux; // A lot more than this // IMPORTANT: NOTE THAT THIS IS A PACKAGE PRIVATE...

13
Как сделать один тест зависимым от результатов другого теста?

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

13
Как привлечь внимание программиста в определенных условиях?

Давайте начнем с примера. Допустим, у меня есть метод, exportкоторый сильно зависит от схемы БД. И под «сильно зависит» я имею в виду, что я знаю, что добавление нового столбца в определенную таблицу часто (очень часто) приводит к изменению соответствующего exportметода (обычно вы также должны...

13
По каким причинам вы бы использовали отдельное расширение класса для каждого делегата в Swift?

Я работал над учебником Рэя Вендерлиха и заметил, что автор использует расширения класса для хранения обратных вызовов делегата, а не для обработки их в самом классе, то есть: делегировать обратные вызовы внутри расширения класса: extension LogsViewController :...

13
Зачем тебе «я». в Python ссылаться на переменные экземпляра?

Я программировал на нескольких языках, таких как Java, Ruby, Haskell и Python. Мне приходится переключаться между многими языками в день из-за разных проектов, над которыми я работаю. Теперь проблема в том, что я часто забываю написать, так selfкак первый параметр в определениях функций в Python -...

13
Инварианты времени жизни объекта и семантика перемещения

Когда я давно изучал C ++, мне было настоятельно подчеркнуто, что отчасти C ++ состоит в том, что, как и у циклов, есть «инварианты цикла», у классов также есть инварианты, связанные с временем жизни объекта - вещи, которые должны быть истинными. пока объект жив. Вещи, которые должны быть...

13
DDD: где разместить обработчики событий домена?

Не могли бы вы высказать свое мнение о том, какой слой подходит для размещения обработчиков событий домена в DDD? Например, у меня есть служба приложений для добавления нового контракта, и я хотел бы отправить уведомление по электронной почте контактному лицу, когда контракт будет добавлен, так же...

13
Есть ли преимущества для жесткого кодирования значений данных в программу?

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

13
Почему статические методы не должны быть переопределенными?

В ответах на этот вопрос общее согласие заключалось в том, что статические методы не предназначены для переопределения (и, следовательно, статические функции в C # не могут быть виртуальными или абстрактными). Это не только случай в C #, хотя; Java также запрещает это, и C ++, похоже, тоже не...

13
Следуют ли SOLID чтению и записи файлов две разные обязанности?

Я только начинаю изучать SOLID, и я не уверен, что чтение из файлов и запись в файлы являются одной и той же ответственностью. Цель имеет тот же тип файла; Я хочу читать и писать .pdf в моем приложении. Приложение на Python, если это имеет какое-либо значение....

13
Какая процедура применяется при написании лексера на основе грамматики?

Читая ответ на вопрос « Разъяснение о грамматике, лексерах и парсерах» , в ответе говорилось, что: [...] грамматика BNF содержит все правила, необходимые для лексического анализа и анализа. Это показалось мне несколько странным, потому что до сих пор я всегда думал, что лексер вообще не основан на...

13
Большой класс с единственной ответственностью

У меня есть Characterкласс 2500 строк, который: Отслеживает внутреннее состояние персонажа в игре. Загружает и сохраняет это состояние. Обрабатывает ~ 30 входящих команд (обычно = перенаправляет их на Game, но некоторые команды только для чтения отвечают немедленно). Получает ~ 80 звонков Gameо...

13
Скрам-команда не следует принципу ЯГНИ

На совещании SCRUM команда разработчиков обсуждала функцию API, которая будет использоваться мобильным приложением. У нас был макет, который показал, как должен выглядеть экран и какие ключевые элементы он должен содержать («макет»). Основываясь на этом и на обсуждении с владельцем продукта, я...

13
Чистый ООП способ отображения объекта на его презентатора

Я создаю настольную игру (например, шахматы) на Java, где каждая фигура имеет свой собственный тип (например Pawn, Rookи т. Д.). Для графической части приложения мне нужно изображение для каждой из этих частей. Поскольку делать думает, как rook.image(); нарушает разделение пользовательского...

13
Используйте состав и наследование для DTO

У нас есть веб-API ASP.NET, который предоставляет REST API для нашего одностраничного приложения. Мы используем DTO / POCO для передачи данных через этот API. Проблема в том, что эти DTO со временем становятся больше, поэтому мы хотим реорганизовать DTO. Я ищу "лучшие практики", как проектировать...

13
Как управлять константами в разных языках?

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

13
Стек, расширяющий LinkedList. Нарушение принципа подстановки Лискова?

Существует класс LinkedList с такими функциями, как add_first (), add_last (), add_after (), remove_first (), remove_last () и remove () Теперь есть класс Stack, который предоставляет такие функции, как push (), pop (), peek () или top (), и для реализации этих методов он расширяет методы класса...

13
В DDD доменная служба по сути является просто шаблоном фасада и / или посредника?

В домене, управляемом дизайном, уровень домена может иметь несколько (традиционных) сервисов. Например, для пользовательского домена мы можем иметь: UserFactory, который строит объекты User различными способами. UserRepository, который отвечает за взаимодействие со службами постоянства на уровне...