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

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

7
Чи слід дотримуватися звичайного шляху чи рано провалюватися?
З книги « Повна кодова книга» надходить така цитата: "Поставте звичайний випадок після, ifа не після else" Що означає, що у elseвипадку повинні бути винятки / відхилення від стандартного шляху . Але Прагматичний програміст привчає нас до "краху рано" (стор. 120). Якого правила слід дотримуватися?
73 design 

7
Проектування apst REST за допомогою URI vs рядка запиту
Скажімо, у мене є три ресурси, пов'язані так: Grandparent (collection) -> Parent (collection) -> and Child (collection) Сказане зображує такі відносини між цими ресурсами так: Кожен бабуся і дідусь можуть подати карту одному або декільком батькам. Кожен з батьків може скласти карту до одного або кількох дітей. Я хочу можливість …
73 design  rest  api 

11
Поради щодо розробки веб-додатків із 40-річним терміном експлуатації
Сценарій Наразі я є окремим проектом охорони здоров’я, головна вимога якого - збирати дані з невідомими атрибутами, використовуючи форми, створені користувачем, від постачальників медичних послуг. Друга вимога полягає в тому, що цілісність даних є ключовою і що програма буде використовуватися протягом 40 років. Наразі ми переносуємо дані клієнта за останні …

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

12
SQL: порожній рядок та значення NULL
Я знаю, що ця тема трохи суперечлива, і в Інтернеті пливе багато різноманітних статей / думок. На жаль, більшість з них припускають, що людина не знає, в чому різниця між NULL і порожнім рядком. Таким чином вони розповідають історії про дивовижні результати приєднаннях / агрегатах і, як правило, роблять трохи …
72 design  database  sql  strings  null 

7
Коли використовувати абстрактні класи замість інтерфейсів із методами розширення в C #?
"Абстрактний клас" та "інтерфейс" є подібними поняттями, причому інтерфейс є більш абстрактним з двох. Одним з відмінних факторів є те, що абстрактні класи забезпечують реалізацію методів для похідних класів, коли це необхідно. Однак у C # цей диференціюючий коефіцієнт був зменшений нещодавним введенням методів розширення, які дозволяють забезпечити реалізацію методів …

10
Моя запропонована конструкція, як правило, гірша, ніж у колеги - як мені покращитись? [зачинено]
Я займаюся програмуванням протягом декількох років і, як правило, добре, коли справа стосується вирішення проблем та створення малих та середніх сценаріїв, однак я, як правило, не добре розробляти масштабні програми об'єктно-орієнтованим способом. Мало запитань Нещодавно колега, яка має таку ж кількість років досвіду, як я і я, працювала над проблемою. …

12
"Все - це карта", чи правильно я це роблю?
Я спостерігав, як Стюарт Сьєрра говорив " Думаючи дані ", і взяв одну з ідей, як принцип дизайну в цій грі, яку я створюю. Різниця в тому, що він працює в Clojure, а я працюю в JavaScript. Я бачу деякі основні відмінності між нашими мовами в тому, що: Clojure - …

4
Чому колекції Java реалізовувались за допомогою «необов’язкових методів» в інтерфейсі?
Під час моєї першої реалізації, що розширює рамки колекції Java, я був дуже здивований, побачивши, що інтерфейс колекції містить методи, оголошені як необов'язкові. Очікується, що реалізатор викине UnsupportedOperationExceptions, якщо він не підтримується. Це відразу вразило мене як поганий вибір дизайну API. Прочитавши велику частину чудової книги "Ефективна Java" Джошуа Блоха …

7
Якщо функції повинні зробити нульові перевірки перед тим, як виконати задумане поведінку, це погана конструкція?
Тому я не знаю, чи це добре, чи погано дизайн коду, тому я подумав, що краще запитати. Я часто створюю методи, що займаються обробкою даних за участю класів, і я часто роблю багато перевірок у методах, щоб переконатися, що я не отримую нульових посилань або інших помилок перед рукою. Для …
67 c#  design  validation 

12
Маючи прапор, щоб вказати, чи варто нам кидати помилки
Нещодавно я почав працювати в місці з деякими значно старшими розробниками (близько 50+ років). Вони працювали над критичними програмами, що стосуються авіації, де система не могла знизитися. Як результат, старший програміст прагне кодувати таким чином. Він схильний вводити бульові елементи в об’єкти, щоб вказати, чи слід викинути виняток чи ні. …

11
Уточнити єдиний принцип відповідальності
Принцип єдиної відповідальності говорить, що клас повинен робити одне і лише одне. Деякі випадки досить чіткі. Інші, однак, важкі, оскільки те, що виглядає як "одне", якщо дивитися на заданий рівень абстракції, може бути декількома речами, якщо дивитися на нижчий рівень. Я також побоююся, що якщо Принцип єдиної відповідальності буде дотримано …

4
Що таке інверсія управління, і коли я повинен її використовувати?
Я розробляю нову систему і хочу знати, що таке інверсія управління (МОК), і що ще важливіше, коли її використовувати. Чи потрібно його реалізовувати за допомогою інтерфейсів чи це можна зробити з класами?

14
Чи не MVC anti OOP?
Основна ідея OOP полягає в об'єднанні даних і поведінки в єдине ціле - об'єкт. У процедурному програмуванні є дані та окремо алгоритми, що модифікують дані. У шаблоні Model-View-Controller дані та логіка / алгоритми розміщуються у різних об'єктах відповідно моделі та контролері. Чи в еквівалентному підході OOP не повинні модель та …

6
Різниця між класом обслуговування та класом Helper [закрито]
Мені хотілося б дізнатися, чим відрізняється клас обслуговування від класу корисності або допоміжного класу? Клас лише з основними методами, які називають дао, - це послуга? Чи не використання класів Helper не порушує SRP?

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