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

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

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

7
Команда оцінює сюжетні моменти, бізнес хоче фактичного часу
Я впевнений, що це не рідкість. У нас є дві команди scrum, які виконують добру роботу з оцінки історій користувачів за допомогою сюжетних точок (нинішнім сузір'ям команди є лише близько 8 місяців, хоча члени команди мають декілька років досвіду роботи з scrum). Але діловій частині компанії важко пов’язати з історіями …
15 scrum  estimation 

3
Який правильний спосіб керувати сценаріями розробників?
Розробники створюють сценарії, щоб допомогти в їх роботі. Наприклад, запустити Maven з певними параметрами, знищити непотрібні фонові завдання, які з'являються в процесі розробки, або підключитися до певного сервера. Сценарії не є основними сценаріями побудови, ні вони не використовуються на нашому сервері безперервної інтеграції. Який найкращий спосіб управління ними? Щоб помістити …

3
Версії API REST. У кожного API є своя версія
Версію API REST дуже часто вказувати в URL-адресі, зокрема на початку шляху, тобто щось на зразок: POST /api/v1/accounts GET /api/v1/accounts/details Однак я не бачив жодного дизайну, де версія пов'язана з кожним API. Іншими словами, ми підтримуємо версію кожного API окремо. тобто: POST /api/accounts/v2 GET /api/accounts/details/v3 Використовуючи цей підхід, ми збільшуємо …

6
Тримати «код» подалі від дизайнерів?
Я будую досить багато проектів з моїм другом, але ми завжди приходимо на одну і ту ж саму підводку. Я знаю, як писати PHP, Javascript і все те, що є в роботі (я також знаю CSS та HTML), тому я можу виконати більшу частину роботи, коли справа стосується створення фактичного …
15 design  cakephp 

9
Чи слід тестувати значення перерахунків, використовуючи одиничні тести?
Якщо у вас є enum зі значеннями (немає методів, як це можна зробити в Java), і цей enum є частиною бізнес-визначення системи, чи слід писати для нього одиничні тести? Я думав, що вони повинні бути написані, навіть якщо вони можуть здатися простими та зайвими, я вважаю, що те, що стосується …

1
Java-реєстратор: ініціалізація статичного блоку або ініціалізація в оголошенні змінної
Наразі я використовую реєстратор у своєму проекті наступним чином: private static final Logger LOGGER; static{ LOGGER = logger.getLogger(); } Я отримав огляд коду для використання статичного блоку для ініціалізації змінної реєстратора. Мені сказали активувати змінну реєстратора в самій заяві декларації. private static final Logger LOGGER = Logger.getLogger(); Я намагаюся розібратися, …
15 java 

1
Чому Protobuf 3 зробив усі поля повідомлень необов’язковими?
Синтаксис 3 протобуфа зробив усі поля необов’язковими для випадання ключових слів requiredта optionalпопереднього синтаксису прото2. Читаючи деякі коментарі розробників, здається, що це було зроблено для підвищення бінарної сумісності вперед / назад. Але для мене це може бути застосовано просто версією імен пакунків, скажіть, com.example.messages.v1а потім дозвольте клієнтам впроваджувати розбираються у …

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

5
Бульне повернення set.add () у, якщо умовне?
Оператор add класу set повертає логічне значення, що є істинним, якщо елемент (який потрібно додати) ще не було, а false - інакше. Пишеться if (set.add(entry)) { //do some more stuff } вважається хорошим стилем з точки зору написання чистого коду? Мені цікаво, оскільки ти робиш дві речі одночасно. 1) додавання …

6
Використання різних компіляторів C ++ та мовних версій при розробці одного виконуваного файлу
Наша компанія придбає великий і дуже складний фрагмент вихідного коду для супутникового зв'язку. Він кодується в C ++, і ми будемо кодувати доповнення до нього, також в C ++, пов'язуючи наш код із придбаним кодом в єдиний виконуваний блок. Чи потрібно, щоб ми використовували той самий компілятор і ту саму …
15 c++ 

5
Найкращі практики для обробки великої кількості структурованих файлів конфігурації / властивості
Уявіть систему, яка має велику кількість серверів. Кожен з них має ряд налаштувань: Деякі специфічні для сервера Деякі специфічні для регіону Деякі поширені в усіх них Можливо, у вас можуть бути спеціальні групування, як-от ця група серверів призначена лише для читання тощо. Сучасна практика, яку я маю на увазі, - …

1
RESTful API та i18n: як спроектувати відповідь?
Ми розробляємо API RESTful, який в основному призначений для задоволення потреб одного клієнта. Через свої особливі обставини, цей клієнт повинен зробити якомога менше запитів. API обробляє i18n за допомогою заголовка мови Accept у запитах. Це працює для всіх речей, які повинен зробити клієнт, за винятком однієї функції, у якій клієнт …
15 rest  api  api-design  http 

4
Отримання значення без необхідності перевірки на Java
Багато разів мені здається, що я отримую нульову перевірку, коли отримую значення з якоїсь ієрархії даних, щоб уникнути NullPointerExceptions, який, на мою думку, є схильним до помилок і потребує великої кількості котлів. Я написав дуже просту процедуру, яка дозволяє мені пропустити нульову перевірку під час отримання об'єкта ... public final …
15 java  null 

3
Знущання вводить обробку у виробничий код
Припускаючи інтерфейс IReader, реалізацію інтерфейсу ReaderImplementation IReader та клас ReaderConsumer, який споживає та обробляє дані з читача. public interface IReader { object Read() } Впровадження public class ReaderImplementation { ... public object Read() { ... } } Споживач: public class ReaderConsumer() { public string location // constructor public ReaderConsumer() { …

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