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

Вопросы о решении проблем и планировании решения посредством разработки программного обеспечения.

7
Может ли шаблон Стратегии быть реализован без существенного разветвления?
Шаблон Стратегии хорошо работает, чтобы избежать огромных конструкций if ... else и облегчить добавление или замену функциональности. Тем не менее, это все еще оставляет один недостаток, на мой взгляд. Кажется, что в каждой реализации все еще должна быть ветвящаяся конструкция. Это может быть фабрика или файл данных. В качестве примера …

5
Как вы работаете с версиями в многостороннем проекте?
Я знаю, что это широкий вопрос, поэтому я постараюсь быть максимально конкретным. Этот вопрос скорее «организационный», чем технический. У нас есть многосторонний проект со следующими основными компонентами: Сервер, на котором размещена основная бизнес-логика (модели данных) Бэк-офис для клиентов, который использует основную бизнес-логику API приложения (REST), который также использует основную бизнес-логику …

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

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

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

8
Скрам-команда не следует принципу ЯГНИ
На совещании SCRUM команда разработчиков обсуждала функцию API, которая будет использоваться мобильным приложением. У нас был макет, который показал, как должен выглядеть экран и какие ключевые элементы он должен содержать («макет»). Основываясь на этом и на обсуждении с владельцем продукта, я создал прототип для ответа API (HAL + JSON). Это …

3
По каким причинам вы бы использовали отдельное расширение класса для каждого делегата в Swift?
Я работал над учебником Рэя Вендерлиха и заметил, что автор использует расширения класса для хранения обратных вызовов делегата, а не для обработки их в самом классе, то есть: делегировать обратные вызовы внутри расширения класса: extension LogsViewController : UIPopoverPresentationControllerDelegate { func adaptivePresentationStyleForPresentationController(controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle { ... } } …

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

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

3
Как сохранить низкий аргумент и сохранить независимость сторонних зависимостей?
Я использую стороннюю библиотеку. Они передают мне 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 CONSTRUCTOR OurData(/* …

4
Рельсы: Закон Путаницы Деметры
Я читаю книгу под названием Rails AntiPatterns, и они говорят об использовании делегирования, чтобы избежать нарушения закона Деметры. Вот их главный пример: Они считают, что вызывать что-то подобное в контроллере плохо (и я согласен) @street = @invoice.customer.address.street Их предлагаемое решение заключается в следующем: class Customer has_one :address belongs_to :invoice def …

5
Когда использование базы данных должно быть предпочтительнее, чем анализ данных из текстового файла?
Я делал программу на Python для измерения роста codereview.SE . Мой подход заключался в том, чтобы отобразить «статистику сайта» на первой странице и сохранить их на моем жестком диске. Я планирую делать это один раз в день. Пока что я сделал достаточно, чтобы получить статистику и добавить ее в текстовый …

4
Нужны ли этим конкретным таблицам суррогатные ключи?
Фон У меня есть эти таблицы +-------------------------+ +------------------------+ |Airport | |Country | |-------------------------| |------------------------| |airport_code string (PK) | |country_code string (PK)| |address string | |name string | |name string | +------------------------+ +-------------------------+ +-------------------------+ |Currency | |-------------------------| |currency_code string (PK)| |name string | +-------------------------+ AIRPORT_CODE является IATA (Международная ассоциация воздушного транспорта) …

3
Принцип инверсии зависимости: Как определить «политику высокого уровня» и «детализацию низкого уровня» для других людей?
Я пытаюсь объяснить принцип инверсии зависимостей моим (в основном младшим) коллегам. Как мы можем определить, какая из них является «политикой высокого уровня», а какая «низкоуровневой» в программном обеспечении? Например, если наше программное обеспечение автоматизирует рабочий процесс нескольких бизнес-приложений, почему мы говорим, что автоматизация рабочего процесса - это политика высокого уровня, …

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.