Запитання з тегом «design»

Питання щодо вирішення проблем та планування рішення за допомогою розробки програмного забезпечення.

7
Чи можна втілити стратегію без значних розгалужень?
Шаблон стратегії добре працює, щоб уникнути величезного, якщо ... інше будує та полегшує додавання або заміну функціональності. Однак це все ще залишає один недолік на мою думку. Схоже, що в кожній реалізації все ще має бути розгалужена конструкція. Це може бути фабрика або файл даних. Як приклад візьміть систему замовлення. …

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
Очистити OOP спосіб відображення об’єкта на його презентаторі
Я створюю настільну гру (наприклад, шахи) на Java, де кожен твір є власним типом (наприклад Pawn, Rookтощо). Для частини програми GUI мені потрібно зображення для кожної з цих частин. Оскільки робити мислить, як rook.image(); порушує розділення інтерфейсу користувача та бізнес-логіки, я створять різного презентатора для кожної деталі, а потім зіставляю …

8
Scrum команда не дотримується принципу YAGNI
Під час зустрічі з SCRUM команда продукту обговорювала функцію в API, яку споживатиме мобільний додаток. У нас був макет, який показав, як повинен виглядати екран і які ключові елементи він повинен містити ("макет"). На підставі цього та обговорення, який я мав із власником продукту, я створив прототип відповіді API (HAL …

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 …

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

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.