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

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

8
Чи слід фіксувати помилки на конструкторах, що викидають винятки?
Я будував додаток протягом декількох місяців, і я зрозумів, що з'явилася закономірність: logger.error(ERROR_MSG); throw new Exception(ERROR_MSG); Або при лові: try { // ...block that can throw something } catch (Exception e) { logger.error(ERROR_MSG, e); throw new MyException(ERROR_MSG, e); } Отже, кожного разу, коли я кидав або ловив виняток, я б …

4
API та функціональне програмування
З мого (правда, обмеженого) впливу функціональних мов програмування, таких як Clojure, здається, що інкапсуляція даних відіграє менш важливу роль. Зазвичай різні типові типи, такі як карти або набори, є бажаною валютою представлення даних над об'єктами. Крім того, ці дані, як правило, незмінні. Наприклад, ось одна з найвідоміших цитат «Rich Hickey …

4
Управління параметрами в додатку OOP
Я пишу заяву OOP середнього розміру в C ++ як спосіб практикувати принципи OOP. У моєму проекті є кілька класів, і деякі з них потребують доступу до параметрів конфігурації під час виконання. Ці параметри зчитуються з декількох джерел під час запуску програми. Деякі читаються з конфігураційного файлу в домашньому режимі …

6
Переваги стратегії
Чому вигідно використовувати шаблон стратегії, якщо ви можете просто написати свій код у випадках, якщо / тоді? Наприклад: у мене є клас TaxPayer, і один із його методів обчислює податки за допомогою різних алгоритмів. То чому б вона не могла мати, якщо / тоді випадки і зрозуміти, який алгоритм використовувати …

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

1
Навіщо віддавати перевагу sizeof (елемент) над sizeof (TYPE) для обчислення кількості елементів у масиві?
Я читав "C програмування King KN" і знайшов наступне твердження: Ми обговорювали використання виразу sizeof(a)/sizeof(a[0])для обчислення кількості елементів у масиві. Вираз sizeof(a)/sizeof(t), де t - тип елементів а, також би працював, але це вважається неповноцінною технікою. Чому це вважається неповноцінною технікою?
15 c  array 

5
Як поводитися з помилками, які користувачі вважали функцією?
Питання : Який правильний спосіб вирішити помилку, яку вважав кінцевий користувач? Розробка : Я здогадуюсь, що якщо великий відсоток користувачів очікував це як функцію, його слід залишити "нефіксованим" або "виправленим", щоб бути стабільнішим? Однак що робити, якщо дуже невеликий відсоток користувачів очікує, що це буде функція ... скажімо, 0,1% або …

3
Чи можу я комерційно використовувати ліцензійне програмне забезпечення GPL на своєму сервері, якщо я лише розповсюджую клієнтське програмне забезпечення?
Я розумію правила GPL, які стверджують, що якщо я розповсюджую будь-яке програмне забезпечення, використовуючи код GPL, то цей код повинен мати ліцензію відповідно до GPL . Однак мені цікаво, якими є правила в цьому випадку: я створюю сервіс, де буду продавати та розповсюджувати програмне забезпечення на стороні клієнта . У …
15 licensing  gpl 

6
Створює об’єкти, які, на вашу думку, вам знадобляться в першому тесті в TDD
Я досить новачок у TDD, і у мене виникають проблеми при створенні мого першого тесту, коли він постає перед будь-яким кодом реалізації. Без будь-яких рамок до коду реалізації, я можу написати свій перший тест, проте я хочу, але він, як видається, завжди виявляється заплутаним моїм способом мислення Java / OO …

4
Чи може хтось переузначити мій код, а потім подати до суду за розповсюдження? [зачинено]
Зачинено. Це питання поза темою . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно було тематичним для обміну стеками програмного забезпечення. Закрито 4 роки тому . Скажімо, я опублікував деякий код і відмовився від усіх інтересів авторського права до цього коду якоюсь надзвичайно дозвільною ліцензією (наприклад, …

3
Що є причиною використання інтерфейсу проти загальновизнаного типу
У об'єктно-орієнтованих мовах, які підтримують параметри загального типу (також відомі як шаблони класів та параметричний поліморфізм, хоча, звичайно, кожне ім’я має різні конотації), часто можна вказати обмеження типу на параметр типу, таким, щоб його зменшити з іншого типу. Наприклад, це синтаксис у C #: //for classes: class ExampleClass<T> where T …

3
Яку версію Java я повинен використовувати для настільних програм, щоб охопити найбільше користувачів? [зачинено]
Закрито . Це питання має бути більш зосередженим . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно зосередило увагу на одній проблемі, лише відредагувавши цю публікацію . Закрито 4 роки тому . Чи правильно я вважаю, що більшість кінцевих користувачів використовують старішу версію, ніж Java 8? …

2
У Java є JVM, що має C?
Я знаю, що C має компілятор, але що визначає ефективність виконання? Наприклад, у блоці if else, що робити, якщо у коді просто були всі ifs, а не якщо elses, що визначає, що всі ifs будуть запущені? У Java це буде JVM, але в C, що таке компілятор виконання?
15 java  c 

5
Якщо інше - повторена логіка коду
Мій начальник дав мені проект з певною логікою. Мені потрібно розробити веб-сторінку, яка повинна вести навігатор через багато випадків, поки він / вона не надійде до продукту. Це схема шляху навігації на сайті: ВАЖЛИВО! На сторінці Продукти навігатор може вибрати, який фільтр він хоче. Якщо A, він / вона ПОВИНЕН …

3
Яка різниця між перемиканням та відмовою в процесі виконання?
C # надає ключове слово refта outключове слово, щоб зробити аргументи для передачі посилань. Смисловість двох дуже схожа. Єдина відмінність полягає в ініціалізації флагізованої змінної: refвимагає, щоб змінна була ініціалізована перед передачею її у функцію, outне робить. outвимагає, щоб змінна була ініціалізована всередині функції, refне робить. Випадки використання цих двох …

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