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

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

5
Куди слід ставити константи і чому?
У наших переважно великих програмах ми зазвичай маємо лише кілька місць для "констант": Один клас для графічного інтерфейсу та внутрішніх константів (заголовки сторінки вкладок, заголовки групи, обчислювальні фактори, перерахування) Один клас для таблиць та стовпців бази даних (ця частина генерується кодом) плюс читабельні назви для них (призначається вручну) Один клас …

3
Чи умовно підняти NotImplementedError для методів, реалізація яких триває, але не планується бути абстрактним?
Мені подобається підняти NotImplementedErrorбудь-який метод, який я хочу впровадити, але де я ще не надумав це зробити. Можливо, я вже маю часткову реалізацію, але передбачте її, raise NotImplementedError()бо мені це ще не подобається. З іншого боку, я також люблю дотримуватися конвенцій, тому що це полегшить іншим людям збереження мого коду, …

12
Використання піратського програмного забезпечення в компанії [закрито]
Я почав працювати в компанії інженером пару місяців тому. Це невелика компанія, і те, що вони в основному роблять, - це відповідь на послуги по телефонах. Тепер вони переходять із звичайних телефонів на IP-телефони, щоб комп'ютери займали важливіше місце в роботі. Однак усі комп'ютери, якими користуються працівники, оснащені піратським програмним …
33 ethics 

7
Чи варто використовувати бібліотеку, коли ви можете виконати завдання без неї? [зачинено]
Я перебуваю в ситуації, коли я можу використовувати плагін з відкритим кодом JavaScript для виконання завдання. Але коли я спробував це використати, я виявив, що мені потрібно переробити багато речей того, що я вже зробив, і це додає проекту певну складність, на мою скромну думку. Тоді як я можу досягти …

6
Додатковий рядок у блоці та додатковий параметр у чистому коді
Контекст У Чистому коді на сторінці 35 написано Це означає, що блоки, якщо оператори, оператори else, в той час як оператори тощо, повинні бути довгими на один рядок. Можливо, ця лінія повинна бути викликом функції. Це не тільки робить функцію, що вкладається, невеликою, але й додає документальну цінність, оскільки функція, …
33 clean-code  solid 

4
Scrum - чим займаються члени команди під час спринту
Отже, спринт scrum - це фіксований часовий період, протягом якого має бути реалізований певний набір функцій. Команда scrum складається з усіх людей, які прагнуть надати ці функції, більшість із них, як правило, розробники та тестери. Встановивши ці правила, можна задатися питанням, як утримувати всіх цих людей зайнятими протягом усього спринту. …
33 agile  scrum  sprint 

8
Чому саме Java не дозволяє числові умовні умови, такі як if (5) {…}, якщо C?
У мене є ці дві маленькі програми: С #include <stdio.h> int main() { if (5) { printf("true\n"); } else { printf("false\n"); } return 0; } Java class type_system { public static void main(String args[]) { if (5) { System.out.println("true"); } else { System.out.println("false"); } } } яке повідомляє про помилку: …
33 java  c  type-systems 

6
Яка хороша практика безпеки для зберігання критичної бази даних на ноутбуках розробника?
У нас є кілька подарунків: Розробникам потрібна репліка виробничої бази на своїх машинах. Розробники мають пароль до зазначеної бази даних у файлах App.config. Ми не хочемо, щоб дані у зазначеній базі даних були порушені. Кілька запропонованих рішень та їх недоліки: Повне диск-шифрування. Це вирішує всі проблеми, але погіршує продуктивність ноутбука, …

5
Чому видалення зазвичай реалізувати набагато складніше, ніж вставлення в багато структур даних?
Чи можете ви придумати якусь конкретну причину, чому видалення зазвичай реалізувати значно складніше, ніж вставлення для багатьох (більшості?) Структур даних? Короткий приклад: пов'язані списки. Вставлення є тривіальним, але вилучення має кілька особливих випадків, які значно ускладнюють його. Самобалансуючі двійкові пошукові дерева, такі як AVL та Червоно-чорні, - класичні приклади реалізації …

5
Як я можу створювати та застосовувати контракти за винятками?
Я намагаюся переконати свою команду в тому, щоб дозволити використовувати винятки в C ++, а не повертати bool isSuccessfulабо enum з кодом помилки. Однак я не можу протистояти цій критиці його. Розглянемо цю бібліотеку: class OpenFileException() : public std::runtime_error { } void B(); void C(); /** Does blah and blah. …
33 c++  exceptions 

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

5
Чи слід ініціалізувати структури C через параметр або значення повернення? [зачинено]
Компанія, в якій я працюю, ініціалізує всі їх структури даних за допомогою функції ініціалізації: //the structure typedef struct{ int a,b,c; } Foo; //the initialize function InitializeFoo(Foo* const foo){ foo->a = x; //derived here based on other data foo->b = y; //derived here based on other data foo->c = z; //derived …

9
Як співробітники QA можуть перевірити логіку кешування, яку вони не бачать?
Я щойно реалізував шар кешування у своєму веб-додатку, і тепер мені цікаво, як QA повинен це перевірити, оскільки кешування прозоре для користувача. Однією з моїх ідей є введення методів реєстрації методів, які викликають код, який заповнює кеш, і записувати, коли об’єкт витягується з кеша і коли він потребує відтворення з …
33 testing  caching 

6
Як обробити початковий стан в керованій подіями архітектурі?
У архітектурі, керованій подією, кожен компонент діє лише тоді, коли подія надсилається через систему. Уявіть собі гіпотетичний автомобіль з педаллю гальма та гальмівним світлом. Гальмівні легкі повороти на , коли він отримує brake_on подія, і геть , коли він отримує brake_off подія. Педаль гальма надсилає подія гальма при натисканні на …

1
raw, slab_ptr, unique_ptr, shared_ptr і т. д. ... Як їх правильно вибрати?
У C ++ є багато покажчиків, але якщо чесно, через 5 років або близько того в програмуванні на C ++ (конкретно з Qt Framework), я використовую лише старий необроблений покажчик: SomeKindOfObject *someKindOfObject = new SomeKindOfObject(); Я знаю, що існує багато інших "розумних" покажчиків: // shared pointer: shared_ptr<SomeKindofObject> Object; // unique …

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