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

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

3
Як вирішити кругову залежність?
У мене є три класи, які кругові залежать один від одного: TestExecuter виконує запити TestScenario і зберігає файл звіту, використовуючи клас ReportGenerator. Так: TestExecuter залежить від ReportGenerator для створення звіту ReportGenerator залежить від TestScenario та параметрів, встановлених у TestExecuter. TestScenario залежить від TestExecuter. Неможливо зрозуміти, як усунути залежність від грудної …

7
Що робити, якщо у мене немає гарних ідей для реалізації функції? [зачинено]
Я працюю над власним додатком і я застряг. Мені потрібно реалізувати функцію, але я не можу знайти хорошого підходу до її використання. Я думав про це пару днів, і ніяких добрих думок не прийшло. Пошук в Інтернеті не дав мені натхнення. Мені потрібно рухатись далі, але я хочу знати, що …
32 design 

3
Який принцип найменшого здивування?
У програмуванні називається Принцип найменшого здивування? Як ця концепція пов'язана з розробкою хороших API? Це щось застосовне лише до об'єктно-орієнтованого програмування чи воно пронизує й інші методи програмування? Чи пов’язано це з принципом "робити одну річ у своєму методі та робити це добре"?

2
Як створити масштабовану систему сповіщень? [зачинено]
Мені потрібно написати менеджера системи сповіщень. Ось мої вимоги: Мені потрібно мати можливість надсилати Повідомлення на різних платформах, які можуть бути абсолютно різними (для прикладу, мені потрібно мати можливість надсилати або SMS, або електронну пошту). Іноді сповіщення може бути однаковим для всіх одержувачів для певної платформи, але іноді це може …

18
Чи повинен розробник сперечатися проти зайвих чи шкідливих особливостей?
Яке хороше ставлення до розробників під час обговорення нових функцій, а саме, некритичних / сумнівних функцій? Скажіть, ви розробляєте якусь мову на зразок Java, а бос каже: "Нам потрібні вказівники, щоб розробники могли безпосередньо поспілкуватися з об'єктною пам'яттю!" Чи повинен розробник збивати цю ідею, оскільки вона додає немислимої складності та …
32 design 

11
Добре розроблене / якісне програмне забезпечення з відкритим кодом [закрито]
Я беру клас розробки програмного забезпечення, де я повинен вибрати програмне забезпечення з відкритим кодом для аналізу з точки зору дизайну програмного забезпечення. Це повинен бути великий проект: не менше 100 000 рядків коду. Мені дуже хотілося б вибрати програмне забезпечення, яке дуже добре розроблене та архітектоване, щоб мати гарну …

1
Чи "StringBuilder" є програмою дизайну дизайнера Builder?
Чи обмежений шаблон "Будівельника" адресацією "конструктора телескопічного" антитіл, чи можна сказати, що він також вирішує більш загальну проблему складного створення незмінних об'єктів? StringBuilderКлас має слово «будівельник» в його назві, але це не має нічого спільного з телескопічними конструкторами, він просто допомагає нам зібрати всі дані , які ми повинні передати …

10
Чи розумно вважати, що будь-яка фізична величина може бути представлена ​​64-бітним цілим числом без переливу чи переливу?
Оригінальний алгоритм бінарного пошуку в JDK використовував 32-бітні цілі числа та мав помилку переповнення, якщо (low + high) > INT_MAX( http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html ) . Якщо ми переписали той самий бінарний алгоритм пошуку, використовуючи (підписані) 64-бітні цілі числа, чи можемо ми припустити, що low + highвін ніколи не перевищить INT64_MAX, оскільки фізично …

5
Чи бажано проектувати зверху вниз або знизу вгору?
Як я розумію, дизайн зверху вниз - це вдосконалення абстрактної концепції високого рівня на менші конкретні та зрозумілі частини, поки не буде визначено найменший будівельний блок. З іншого боку, знизу вгору визначаються деталі низького рівня, потім поступово нарощуйте блоки вищого рівня, поки не буде сформована вся система. На практиці, як …
31 design  c++  lisp 

15
Що можуть дізнатися програмісти у будівельній галузі? [зачинено]
Розмовляючи з колегами про принципи розробки та розробки програмного забезпечення, я помітив, що одним із найпоширеніших джерел аналогій є будівельна галузь. Ми будуємо програмне забезпечення і вважаємо дизайн та структуру архітектурою . Один з найкращих способів навчитися (чи навчити) - це через аналіз аналогій - які ще аналогії можна зробити …

5
Реалізація інтерфейсу, коли вам не потрібен один із властивостей
Досить прямо. Я реалізую інтерфейс, але є одна властивість, непотрібна для цього класу, і насправді його не слід використовувати. Моя початкова ідея полягала в тому, щоб просто зробити щось на кшталт: int IFoo.Bar { get { raise new NotImplementedException(); } } Я гадаю, що в цьому немає нічого поганого, але …

4
Чи є різниця між компонентом і модулем
У мене є невелика проблема з модулем та компонентом термінів. На мій погляд, модуль - це класи, які доступні лише через чітко визначений інтерфейс. Вони приховують усі відомості про реалізацію та підлягають багаторазовому використанню. Модулі визначають модулі, від яких вони залежать. Чим відрізняються компоненти? Я шукав це в деяких книгах, …

9
Проектування класу для прийняття цілих класів як параметрів, а не окремих властивостей
Скажімо, наприклад, у вас є додаток із широко поширеним класом, який називається User. Цей клас розкриває всю інформацію про користувача, його Id, ім'я, рівні доступу до кожного модуля, часовий пояс тощо. Дані користувача, очевидно, широко посилаються у всій системі, але з будь-якої причини система налаштована так, що замість того, щоб …
30 java  c#  design  solid 

5
Який ефективний спосіб фіксувати обґрунтування рішень щодо дизайну виробів?
У нашій компанії ми не використовуємо жодної документації на дизайн товару. Всього у нас є три працівники, тому все обговорення дизайну продукту відбувається особисто або на Slack. (Ми також знаходимося на базовому пакеті Slack, який дозволяє переглядати лише останні повідомлення.) Наш продукт все ще знаходиться на ранніх стадіях, і ми …

10
З огляду на стадо коней, як я можу знайти середню довжину рогів у всіх єдинорогів?
Питання вище - це абстрактний приклад поширеної проблеми, з якою я стикаюся у застарілому коді, а точніше - проблем, що виникають внаслідок попередніх спроб вирішення цієї проблеми. Я можу придумати хоча б один .NET Framework метод, який призначений для вирішення цієї проблеми, як Enumerable.OfType<T>метод. Але той факт, що ви врешті-решт …

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