Розробка програмного забезпечення

Питання та відповіді для професіоналів, науковців та студентів, які працюють у життєвому циклі розвитку систем

5
Використання різних шаблонів для подібних функцій
Я єдиний розробник проекту, який, як і будь-який проект програмного забезпечення, може бути прийнятий ким-небудь ще. Скажімо, я використав шаблон X для реалізації функції А. Після розробки та закінчення функції я розумію, що міг би реалізувати ту саму функцію за допомогою шаблону Y, про який я щойно дізнався. Але функція …

3
Коли гачки правильний вибір дизайну?
Я працював над великим додатком Rails, де використання зворотних викликів ActiveRecord бурхливо і неприємно. Збереження запису часто мало несподівані побічні ефекти, і міркувати про це було проблемою. У той же час я бачив гачки, які використовуються для хорошого ефекту як частина спадкування (наприклад, батьківський клас, що використовує шаблон-метод, щоб дозволити …
10 hooks 

2
Чому в підручнику Oracle Java перевіряються порівняно з неперевіреними винятками, які називаються «суперечками»?
Я новачок у Java і читав її документацію за винятками. , і особливо Неперевірені винятки - Сторінка суперечки . Суть говорить: Якщо від клієнта обґрунтовано можна очікувати, що відновиться після винятку, зробіть це перевіреним винятком. Якщо клієнт не може нічого зробити, щоб відновити виняток, зробіть це неперевіреним винятком. Я не …

4
Коли в Java буде використаний нульовий оператор?
У підручнику, який я переглядав для класу, зазначено, що вислів може бути порожнім (нульовий вислів). Нульовий вираз визначається як крапка з комою. Це не робить абсолютно нічого під час виконання. Нульове твердження використовується рідко. Як досвідчений програміст, мені здається цікавим, що вони кажуть, що рідко використовуються, це означає, що десь …
10 java 

1
Часткове узгодження імен у мільйонах записів
Ми розробили веб-додаток для відповідності імен. Він функціонує шляхом розбиття імен на частини, а значення Soundex кожної частини зберігається в базі даних. Показник відстані Левенштейн використовуються для застосування процентного відповідності звуку, а також написання проти даного імені. Під час виконання ми завантажуємо всі записи в пам'ять і застосовуємо відстань Левенштейна …

2
Чи погано створювати класи, єдиною метою яких є неявне перетворення в інший клас?
Уявіть ситуацію, коли ми використовуємо бібліотеку, яка дозволяє створювати Circleоб’єкти, де ви можете вказати радіус та центр кола, щоб визначити його. Однак чомусь він також приймає необхідний flavourпараметр. Тепер скажімо, що мені дійсно потрібно використовувати Circleв своєму власному додатку, але для цілей своєї програми я можу встановлювати аромат Flavours.Cardboardкожного разу. …

2
Як проект Mono зміг передати свої бібліотеки LGPLed під MIT?
Проект Mono використовував бібліотеки LGPLed. Насправді mbundleвсе ще говорить, коли ви запускаєте його Зауважте, що статичне підключення часу виконання LGPL Mono має більше обмежень щодо ліцензування, ніж динамічне з'єднання. Детальнішу інформацію про ліцензування див. У розділі http://www.mono-project.com/Licensing . Станом на березень 2016 року вони повторно ліцензували їх під MIT. З …

3
Що означає вводити дані (проти поведінки) в конструктор класу, і чому це вважається поганою практикою?
Я читаю книгу "Навчання TypeScript" Ремо Янсена. В одному з розділів автор описує, як створити дуже просту рамку MVC з підтвердженням концепції, включаючи, як створити Modelклас, і говорить наступне: Модель має бути забезпечена URL-адресою веб-сервісу, який вона споживає. Ми будемо використовувати декоратор класу під назвою ModelSettings для встановлення URL-адреси служби, …

4
Java: Як реалізувати побудову кроків, для яких порядок встановлення не має значення?
Редагувати: Я хотів би зазначити, що це питання описує теоретичну проблему, і я знаю, що я можу використовувати аргументи конструктора для обов’язкових параметрів або викинути виняток з виконання, якщо API використовується неправильно. Однак я шукаю рішення, яке не вимагає конструкторських аргументів або перевірки часу виконання. Уявіть, у вас такий Carінтерфейс: …

3
Чи існує коефіцієнт зв'язку між часом зустрічі та економією часу на розробку?
Я працюю над проектом, і ми проводимо регулярні (як правило, щотижневі) неофіційні зустрічі, де ми обговорюємо стан проекту та GUI його. Я єдиний розробник там, інші 4-5 людей мають не ІТ-досвід. Ця зустріч зайняла набагато більше часу, ніж зазвичай, але в один момент один з моїх колег поцікавився, які поля …

3
Чому інкрементні побудови в "make" не використовують алгоритми хешування?
Я початківець з, makeі мені цікаво, коли використовувати make clean. Один колега сказав мені, що додаткові версії з makeвикористанням базуються на часових позначках файлів. Отже, якщо ви перевірите стару версію файлу у своєму VCS, у нього буде "стара" часова мітка, і вона буде позначена як "не потрібно перекомпілювати цей файл". …
10 builds  make 

1
Чому не можна серйозно реалізовувати Запити на тягнення в Mercurial?
Тиждень тому я був у LFNW, і коли я розмовляв з Ларрі Гастінгсом після його розмови, він сказав (перефразовано): У Git є щось, що робить можливим робочий процес Pull Request, якого немає в Mercurial. Ось чому запити на тестування BitBucket не великі. (Для контексту ми обговорювали той факт, що Python …

2
Чи є елегантний спосіб перевірити унікальні протипоказання на атрибути об’єкта домену без переміщення бізнес-логіки в рівень обслуговування?
Я адаптував дизайн, орієнтований на домен, вже близько 8 років, і навіть після всіх цих років є ще одне, що мене клопоче. Це перевірка наявності унікального запису у сховищі даних щодо об’єкта домену. У вересні 2013 року Мартін Фаулер згадав про принцип TellDon'tAsk , який, якщо можливо, слід застосувати до …

4
Чи повинен кожен клас, який я пишу, дотримуватися інтерфейсу?
Я пишу гру в Typescript, і вирішив, що я намагаюся дотримуватися ідеї " інтерфейсу на основі програмування ", де ви пишете код на основі інтерфейсу замість реалізації об'єкта. Я написав велику кількість інтерфейсів і класів, які їх реалізують, потім зробив крок назад і зрозумів, що класи досить прості, що мені, …

3
Використання інтерфейсів для слабо пов'язаного коду
Фон У мене є проект, який залежить від використання певного типу апаратного пристрою, хоча це неважливо, хто робить цей апаратний пристрій до тих пір, поки він робить те, що мені потрібно для цього. Зважаючи на це, навіть два пристрої, які повинні робити те саме, матимуть відмінності, коли вони не будуть …

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