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

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

11
Розробка ідеального діапазону в прямому сенсі
Я думав над тим, як би я пішов про розробку "ідеального" літералу діапазону, якби я займався дизайном мови. Для вас, хто не знає, знаєте літерал діапазону у висловлюванні, що представляє діапазон значень, наприклад 1-4. Вони найчастіше використовуються для циклів / foreach Здається, є кілька питань, які слід враховувати Підтримка інклюзивного …

9
Видалення твердо кодованих значень та захисного дизайну проти YAGNI
Спочатку трохи тла. Я кодую пошук із Age -> Rate. Існує 7 вікових дужок, тому таблиця пошуку - 3 колонки (від | до | оцінювання) з 7 рядками. Значення рідко змінюються - це законодавчі норми (перший і третій стовпці), які залишаються однаковими протягом 3 років. Я зрозумів, що найпростіший спосіб …
10 design 

6
Чи планував Дайкстра проводити модуляцію коду, коли писав про розділення проблем?
По-перше, я прочитав уривок статті Едсгера У. Дійкстри 1974 року "Про роль наукової думки": Дозвольте спробувати пояснити вам, що на мій смак характерне для всього розумного мислення. Це полягає в тому, що хтось готовий поглиблено вивчити аспект предмета своєї людини ізольовано заради власної послідовності, увесь час знаючи, що людина займається …

2
Грунтовність винятків
Я втік до дебати між декількома друзями і I. Вони вважають за краще загальні виключення , такі , як ClientErrorExceptionі ServerErrorExceptionз деталями , як області , за винятком, в той час як я вважаю за краще робити речі більш конкретно. Наприклад, у мене може бути кілька винятків, таких як: BadRequestException …

7
Я роблю свої заняття занадто детальними? Як слід застосовувати Принцип єдиної відповідальності?
Я пишу багато коду, який включає три основні етапи. Отримайте дані звідкись. Перетворіть ці дані. Покладіть ці дані кудись. Як правило, я використовую три типи занять - надихнувшись їх відповідними моделями дизайну. Фабрики - для побудови об'єкта з якогось ресурсу. Посередники - користуватися фабрикою, виконувати перетворення, потім використовувати командира. Командири …

2
Це хороший підхід для ієрархії класів на основі "pImpl" в C ++?
У мене є ієрархія класів, для якої я б хотів відокремити інтерфейс від реалізації. Моє рішення - мати дві ієрархії: ієрархію класів обробки для інтерфейсу та ієрархію непублічних класів для реалізації. Клас базової ручки має вказівник на реалізацію, який похідні класи керування передають покажчику похідного типу (див. Функцію getPimpl()). Ось …
9 design  c++  c++11 

3
Чи правильно інтерфейси залежати від конкретних класів?
Я створюю в Java інтерфейс для користувальницького обробника помилок. Хочете передати об’єкт помилки аргументу, але мені потрібно, щоб він був дочірнім Exceptionкласом. Чи добре використовувати моє визначене ім’я класу в інтерфейсі? Чи не зробить це менш інтерфейсом з точки зору того, що він не залежить від будь-якої реалізації? Я намагаюся …

1
Дизайн коду: Делегування довільних функцій
У PPCG у нас часто виникають проблеми King of the Hill , які встановлюють різні ботові коди один проти одного. Нам не подобається обмежувати ці виклики однією мовою, тому ми робимо міжплатформенну комунікацію за допомогою стандартного вводу-виводу. Моя мета - створити рамки, які письменники-виклики зможуть використати для полегшення написання цих …

2
Програмування до інтерфейсів, орієнтованих на дані
Є частина нашої кодової бази, написана у такому стилі: // IScheduledTask.cs public interface IScheduledTask { string TaskName { get; set; } int TaskPriority { get; set; } List<IScheduledTask> Subtasks { get; set; } // ... several more properties in this vein } // ScheduledTaskImpl.cs public class ScheduledTaskImpl : IScheduledTask { …

2
Принцип поділу інтерфейсу: Що робити, якщо інтерфейси мають значне перекриття?
З розробки програмного забезпечення Agile, принципів, моделей та практик: Нова міжнародна версія Pearson : Іноді методи, на які посилаються різні групи клієнтів, будуть перетинатися. Якщо перекриття невелике, то інтерфейси для груп повинні залишатися окремими. Загальні функції повинні бути оголошені у всіх інтерфейсах, що перекриваються. Клас сервера успадкує загальні функції від …

2
Чому недоцільно використовувати діаграми UML для планування того, як буде організовано ваш код?
Отже, так, діаграми можуть бути часом невідповідними. Коли вони недоречні? Коли ви створюєте їх без коду, перевіряйте їх, а потім збираєтесь слідувати за ними. Немає нічого поганого в тому, щоб скласти схему для дослідження ідеї. Розробка програмного забезпечення Agile: принципи, зразки та практики - Роберт К. Мартін Що саме він …

5
Чи є суттєві недоліки залежно від абстракцій?
Я читав цю вікі за принципом стабільних абстракцій (SAP) . SAP зазначає, що чим стабільніший пакет, тим абстрактнішим він повинен бути. Це означає, що якщо пакет менш стабільний (з більшою ймовірністю зміниться), він повинен бути більш конкретним. Те, що я насправді не розумію, це так. Напевно, у всіх випадках, незалежно …

3
CRUD API: Як вказати, які поля потрібно оновити?
Скажімо, у вас є якась структура даних, яка зберігається в якійсь базі даних. Для простоти назвемо цю структуру даних Person. Тепер вам покладено завдання створити API CRUD, який дозволяє іншим програмам створювати, читати, оновлювати та видаляти Persons. Для простоти припустимо, що до цього API можна отримати доступ через якусь веб-службу. …

1
Огляд дизайну серіалізації C ++
Я пишу заявку на C ++. Більшість додатків читають і записують цитування даних, і це не є винятком. Я створив дизайн високого рівня для моделі даних та логіки серіалізації. Це питання вимагає переглянути мій дизайн з урахуванням наступних конкретних цілей: Мати простий та гнучкий спосіб зчитування та запису моделей даних …
9 design  c++  c++11 

2
Чи потрібно перевіряти використання всього модуля або просто аргументи публічних методів?
Я чув, що рекомендується перевірити аргументи публічних методів: Чи слід перевіряти на null, якщо він не очікує нуля? Чи повинен метод перевірити його параметри? MSDN - CA1062: Валідація аргументів публічних методів (у мене є .NET фон, але питання не є специфічним для C #) Мотивація зрозуміла. Якщо модуль буде використаний …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.