Запитання з тегом «patterns-and-practices»

Шаблони проектування (повторювані рішення часто зустрічаються проблем) та кращі практики в інженерії програмного забезпечення

2
Якщо RESTful API зможе повернути файли чи просто розташування
Це мене спантеличує вже деякий час. Наприклад, у нас є REST API, який забезпечує базовий контент для системи, що споживає та виробляє JSON. У цій кінцевій точці він створює URL-адресу до зображення та опису, і знайдеться так: // localhost / myApi / pictures / 1 { id: 1, description: "This …

5
Підключення до бази даних - чи повинні вони передаватися як параметр?
У нас є система, згідно з якою підключення до бази даних отримується один раз за допомогою загального методу і передається через відповідний клас, який буде використовуватися. Є сумніви, що передача підключення до бази даних як параметр до різних класів спричинить проблему, тому я перевіряю тут, чи є це насправді життєздатним, …

3
Коли Еферентна / Аферентна зв'язок хороша чи погана
На цьому тижні у мене є іспит з програмних моделей, і одна з тем, яку ми повинні вивчати, - це "Різне та відмінне" з'єднання. Я розумію, що пакет має високий Ce (еферентне з'єднання), якщо це залежить від ряду інших типів. Наприклад: class Car{ Engine engine; Wheel wheel; Body body; } …

4
Скорочення котлоагрегату в класі, який реалізує інтерфейси за допомогою композиції
У мене клас: Aце складова низки менших класів B, Cі D. B, CІ Dреалізовувати інтерфейси IB, ICі IDвідповідно. Оскільки Aпідтримується весь функціонал B, Cі D, Aреалізується IB, ICі IDтак само, але це, на жаль, призводить до безлічі перенаправлень у впровадженніA Так: interface IB { int Foo {get;} } public class …

1
Уникати конфліктів версій залежності?
Будь-який проект Java, який використовує мій jar, майже напевно матиме додаткову залежність від іншої банки, яку мій jar також містить як залежність. Проблема в тому, що інша банка має кілька версій. Як я можу уникнути будь-яких проблем, які можуть виникнути, імовірно, версія 2-ї банки вашого проекту відрізняється від версії 2-ї …

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

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

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

8
Конструкції та методи захисту від помилкових нульових записів із бази даних
Одна частина моєї програми отримує дані з багатьох таблиць і стовпців моєї бази даних для обробки. Деякі стовпці можуть бути null, але в поточному контексті обробки це помилка. Це "теоретично" не повинно відбуватися, тому, якщо це буде, це вказує на погані дані або помилку в коді. Помилки мають різну суворість, …

8
Коли "оптимізація коду" == "структурування даних"?
Недавня стаття ycombinator містить коментар із принципами чудового програміста. #7. Хороший програміст: я оптимізую код. Кращий програміст: я структурую дані. Кращий програміст: в чому різниця? Визнаючи суб'єктивні та суперечливі поняття - чи має хтось позицію щодо того, що це означає? Так, але я хотів би пізніше відредагувати це питання своїми …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.