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

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

3
Навіщо використовувати виключення (перевірено)?
Не так давно я почав використовувати Scala замість Java. Частиною процесу "перетворення" між мовами для мене було навчитися використовувати Eithers замість (перевірених) Exceptions. Я кодував цей спосіб деякий час, але останнім часом почав цікавитись, чи справді це кращий шлях. Одним з основних переваг Eitherмає більш Exceptionкраще продуктивність; Exceptionнеобхідно побудувати стек-слід …

5
Коли ми повинні використовувати MongoDB?
MongoDB - це база даних NoSQL, яку я вважаю досить простою у використанні. Нещодавно мені довелося розробити простий додаток, який потребував збору деяких даних за допомогою HTTP-запитів та зберігання деяких результатів після обробки даних, і я спробував використовувати MongoDB. З цього досвіду мені було набагато приємніше використовувати, ніж традиційні реляційні …

2
Чи порушує запит на витягування алгоритм злиття git?
Зараз я працюю в компанії, яка використовує VSTS для управління git-кодом. "Рекомендований" спосіб об'єднання гілки Майкрософт - це зробити "злиття сквош", це означає, що всі зобов'язання для цієї гілки стискаються в один новий документ, який включає всі зміни. Проблема полягає в тому, що, якщо я вношу деякі зміни в одній …
17 git 

5
MVC: Чи регулятор порушує принцип єдиної відповідальності?
Принцип єдиної відповідальності зазначає, що "клас повинен мати одну причину зміни". У шаблоні MVC завданням контролера є посередництво між видом і моделлю. Він пропонує інтерфейс для представлення даних, щоб повідомляти про дії, здійснені користувачем на графічному інтерфейсі (наприклад, дозволити View зателефонувати controller.specificButtonPressed()), а також може викликати відповідні методи в моделі, …


3
Як GDB призупиняє виконання
Як ви можете знати, ми можемо використовувати GDB і встановлювати точки перерви в нашому коді, щоб призупинити виконання для налагодження. Мої запитання: як GDB призупиняє процес і дозволяє переглядати вміст регістрів, використовуючи, i rнаприклад. Чи не постійно такі регістри використовуються іншими процесами ОС? як їх не перезаписати? Це лише знімок …
16 c++  debugging 

4
Коли перенести загальне поле в базовий клас?
Наразі у мене є два похідні класи, Aі в Bобох є спільне поле, і я намагаюся визначити, чи повинен він переходити до базового класу. На нього ніколи не посилається базовий клас, і скажіть, якщо в якийсь момент по дорозі виведений інший клас C, який не має _field1, тоді не було …

2
Чи прийнятним є перетворення методу C ++ у функцію C з аргументом покажчика?
Я використовую C ++ на ESP-32. При реєстрації таймера я повинен це зробити: timer_args.callback = reinterpret_cast<esp_timer_cb_t>(&SoundMixer::soundCallback); timer_args.arg = this; Тут таймер дзвонить soundCallback. І те ж саме при реєстрації завдання: xTaskCreate(reinterpret_cast<TaskFunction_t>(&SoundProviderTask::taskProviderCode), "SProvTask", stackSize, this, 10, &taskHandle); Тож метод запускається в окремому завданні. GCC завжди попереджає мене про ці перетворення, але …
16 c++  c  functions 

1
Структура каталогу для .NET Solution
Нещодавно у нас був візит підрядника, який ставив під сумнів нашу методологію структурування проектів. Зауважте, що я конкретно маю на увазі структуру каталогів. Він запропонував використовувати вказівки Microsoft. Я думав, що зможу створити "керівництво Microsoft. NET структура каталогів проекту .NET" і знайти щось корисне, однак це виявилося не так. На …
16 c#  visual-studio 

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

3
Чому б ви не здійснили об’єднаних змін негайно?
Мій офіс використовує Git та SourceTree для контролю версій. Це сталося тому, що коли я приєднався, було нульове управління версіями і SourceTree була єдиною системою, яку я коли-небудь використовував. Я не є експертом будь-яким способом, але я найдосвідченіший з моїх колег, тому я фактично фахівець, який навчає всіх користуватися Git …

4
Неможливо вирішити таємницю функцій у Javascript
Я намагаюся зрозуміти за завісовими сценами Javascript і свого роду застряг у розумінні створення вбудованих об'єктів, особливо Об'єкта і Функції та співвідношення між ними. Коли я прочитав, що всі вбудовані об'єкти, такі як Array, String тощо, є розширенням (успадкованим) від Object, я припустив, що Object є першим вбудованим об'єктом, який …

3
Коли я повинен використовувати string_view в інтерфейсі?
Я використовую внутрішню бібліотеку, яка була створена для імітації запропонованої бібліотеки C ++ , і десь за останні кілька років я бачу, що її інтерфейс змінився від використання std::stringна string_view. Тож я достойно змінюю свій код, щоб відповідати новому інтерфейсу. На жаль, те, що мені потрібно передати, - це параметр …

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

3
Як ви протестуєте функцію, єдиною метою якої є запит на зовнішній API, але API використовує складний синтаксис запитів?
Єдина реальна логіка - це синтаксис запитів для зовнішнього API. Я не хочу перевіряти, чи запитує він api, я хочу перевірити, чи він запитує його таким чином, щоб були повернуті правильні дані. Наприклад, деякий псевдо-код: function retrieve_related_data(id) { query = "[potentially long, syntactically complex query that uses param id to …

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