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

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

2
Як би ви реалізували пошук Google? [зачинено]
Припустимо, вас запитали в інтерв'ю "Як би ви реалізували пошук Google?" Як би ви відповіли на таке запитання? Там можуть бути ресурси, які пояснюють, як реалізуються деякі фрагменти в Google (BigTable, MapReduce, PageRank, ...), але це не зовсім відповідає інтерв'ю. Яку загальну архітектуру ви б використали, і як би ви …

10
Як одиничні тести полегшують дизайн?
Наш колега рекламує тести написання одиниць, оскільки насправді допомагає нам удосконалити наші дизайнерські та рефакторні речі, але я не розумію як. Якщо я завантажую файл CSV і аналізую його, як тест одиниці (перевірка значень у полях) допоможе мені перевірити дизайн? Він згадав про зв'язок і модульність і т. Д., Але …

7
Довідкові значення бази даних у бізнес-логіці
Я думаю, це ще одне питання щодо жорсткого кодування та найкращих практик. Скажімо, у мене є список значень, скажімо, фрукти, що зберігаються в базі даних (він повинен бути в базі даних, оскільки таблиця використовується для інших цілей, таких як звіти SSRS), з ідентифікатором: 1 Apple 2 Banana 3 Grapes Я …
43 design 

7
Коли НЕ застосовувати принцип інверсії залежності?
На даний момент я намагаюся розібратися з твердим. Отже, Принцип інверсії залежності означає, що будь-які два класи повинні спілкуватися через інтерфейси, а не безпосередньо. Приклад: Якщо class Aє метод, який очікує на вказівник на об’єкт типу class B, тоді цей метод повинен очікувати об'єкта типу abstract base class of B. …

7
Тверді принципи проти YAGNI
Коли принципи SOLID стають YAGNI? Як програмісти, ми постійно робимо компроміси між складністю, ремонтом, часом розробки тощо. Серед інших, два з найрозумніших рекомендацій щодо вибору - це, на мій погляд, принципи SOLID та YAGNI. Якщо вам це не потрібно; не будуйте його, а зберігайте його в чистоті. Наприклад, наприклад, коли …

6
Яка роль провідного розробника у спритній команді?
В не гнучкою команди розробників є провідним розробником в цілому : Встановлює стандарт (кодування та інше) Досліджує нові технології для команди Встановлює технічний напрямок для команди Має остаточне слово з питань Проектує архітектуру системи Однак спритна команда працює інакше: Проворна команда буде покладатися на новий дизайн, а не на передню …

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

6
Який правильний спосіб роботи з графічним дизайнером? [зачинено]
Нещодавно ми працювали з графічним дизайнером (влаштованим клієнтом), щоб забезпечити шкіру для створеного нами додатку Django + Bootstrap. Дизайнер надав низку статичних зображень нового макета, а також документ, що описує деякі технічні ознаки (розміри шрифту, кольори, кілька розмірів тощо). Для здійснення цього виявилося неймовірно багато часу. Хоча в основному весь …

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

15
Чи не доцільно робити функцію, яка по суті перейменовує вбудовану функцію?
Мене плутають функції min та max у певних контекстах. В одному контексті, коли ви використовуєте функції для отримання більших чи менших двох значень, проблеми не виникає. Наприклад, //how many autographed CD's can I give out? int howManyAutographs(int CDs, int Cases, int Pens) { //if no pens, then I cannot sign …

9
Чи потрібна нам реєстрація при виконанні TDD?
Виконуючи цикл Red, Green & Refactor, ми завжди повинні писати мінімальний код для проходження тесту. Це те, як мене вчили про TDD і про те, як майже всі книги описують процес. А як же лісозаготівля? Чесно кажучи, я рідко використовував журнал у програмі, якщо не відбулося щось справді складне, проте …

6
Чому слід уникати наслідування Java "Розширення"
- сказав Джейм Гослінг "Ви повинні уникати успадкування впровадження, коли це можливо." і замість цього використовувати інтерфейс успадкування. Але чому? Як ми можемо уникнути успадкування структури об’єкта за допомогою ключового слова "extends" і водночас зробити наш код об'єктно орієнтованим? Чи може хтось, будь ласка, навести об'єктно-орієнтований приклад, що ілюструє цю …

7
Це погана практика мати інтерфейс для визначення констант?
Я пишу набір тестів з Джуніт-тестів на Java. Є кілька констант, наприклад рядки, які мені знадобляться в різних тестових класах. Я думаю про інтерфейс, який визначає їх, і кожен тестовий клас би його реалізував. Переваги, які я бачу, є: простий доступ до констант: MY_CONSTANTзамістьThatClass.MY_CONSTANT кожна константа визначається лише один раз …

3
AngularJS: структурування веб-програми за допомогою декількох ng-додатків
У блогосфері є низка статей на тему керівних принципів щодо структурування додатків AngularJS, таких як ці (та інші): http://www.johnpapa.net/angular-app-structuring-guidelines/ http://codingsmackdown.tv/blog/2013/04/19/angularjs-modules-for-great-justice/ http://danorlando.com/angularjs-architecture-understanding-modules/ http://henriquat.re/modularizing-angularjs/modularizing-angular-applications/modularizing-angular-applications.html Однак один із сценаріїв, на які я ще не зіткнувся з рекомендаціями та найкращими практиками, - це той випадок, коли у вас є велика веб-програма, що містить декілька …

13
Чи неправильно використовувати булевий параметр для визначення значень?
Згідно Чи неправильно використовувати булевий параметр для визначення поведінки? , Я знаю важливість уникати використання булевих параметрів для визначення поведінки, наприклад: оригінальна версія public void setState(boolean flag){ if(flag){ a(); }else{ b(); } c(); } Нова версія: public void setStateTrue(){ a(); c(); } public void setStateFalse(){ b(); c(); } Але як …

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