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

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

1
Де належить рефакторинг у моделі іменування гілок GitFlow?
Нещодавно я почав працювати з моделлю GitFlow, реалізованою бітбукетом. І є одна річ, яка мені не зовсім зрозуміла. Ми намагаємось регулярно вирішувати нашу технічну заборгованість, відкладаючи, плануючи та виконуючи завдання рефакторингу. Такі гілки рефакторингу закінчуються запитами на витяг, які об'єднуються develop. Моє запитання - куди належать гілки рефакторингу в GitFlow …


2
Чи можливо створити «завантажений» перекладач, незалежний від оригінального перекладача?
Згідно з Вікіпедією, термін "завантажувальний" в контексті написання компіляторів означає : В інформатиці завантажувальний процес - це процес написання компілятора (або асемблера) на мові програмування джерела, яку він має намір компілювати. Застосування цієї методики веде до самостійного розміщення компілятора. І я можу зрозуміти, як це би працювало. Однак, здається, історія …

3
Яка мета цього очевидного посилання на C #?
Я оцінюю CMS з відкритим кодом під назвою Piranha ( http://piranhacms.org/ ) для використання в одному з моїх проектів. Наступний код мені здався цікавим і трохи заплутаним, принаймні для мене. Чи може хтось допомогти мені зрозуміти, чому клас успадковується від бази одного типу? public abstract class BasePage<T> : Page<T> where …
21 c#  architecture  .net  cms 

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

5
Тестування списку ... Все в одному тесті або один тест для кожної умови?
Я перевіряю, що функція робить те, що очікується у списку. Тому я хочу протестувати f(null) -> null f(empty) -> empty f(list with one element) -> list with one element f(list with 2+ elements) -> list with the same number of elements, doing what expected Для цього, який найкращий підхід? Тестування …
21 unit-testing  tdd 

4
Який найелегантніший спосіб написати метод "Спробуйте" на C # 7?
Я пишу тип реалізації черги, який має TryDequeueметод, який використовує шаблон, подібний до різних TryParseметодів .NET , де я повертаю булеве значення, якщо дія вдалося, і використовую outпараметр для повернення фактичного вилученого значення. public bool TryDequeue(out Message message) => _innerQueue.TryDequeue(out message); Тепер я люблю уникати outпарамів, коли можу. C # …
21 c# 

4
Використовуйте абстрактний клас у C # як визначення
Як розробник C ++ я досить звик до файлів заголовків C ++, і вважаю вигідним мати якусь вимушену "документацію" всередині коду. Зазвичай у мене поганий час, коли мені доводиться читати якийсь код C # через це: у мене немає такої ментальної карти класу, з якою я працюю. Припустимо, що як …

3
Це нормальний дизайн, щоб повністю від'єднати веб-додатки для бекенда та інтерфейсу і дозволити їм спілкуватися з (JSON) REST API?
Я створюю новий веб-додаток для бізнесу і хочу досягти: Використовуйте найкращі технології у відповідних сферах. Я хочу надійну структуру бекенда з твердим ORM І я хочу, щоб найдосконаліша система SPA (для однієї сторінки) використовувала найсучасніші функції HTML та Javascript для додатка фронтальної програми. Викрийте суб'єкти господарювання та бізнес-сервіси для використання …

5
Чи слід перемістити нетривіальні умовні оператори до розділу ініціалізації циклів?
Я отримав цю ідею з цього питання на stackoverflow.com Наступна закономірність є загальною: final x = 10;//whatever constant value for(int i = 0; i < Math.floor(Math.sqrt(x)) + 1; i++) { //...do something } Справа, яку я намагаюся зробити, - це умовне твердження - щось складне і не змінюється. Чи краще …

2
Оптимізуйте git repo, що містить великі бінарні файли
Наш проект становить близько 11 ГБ, 10 з яких - це двійкові дані (.png зображення). Отже, git diffабо git statusоперації займають більше хвилини. На щастя, всі файли даних розділені в папку з чудовою назвою data. Завдання - "Уникайте стискання, різної та інших дорогих операцій над бінарними файлами". Було розцінено поділ …
21 git  binary 

5
Як виправити помилку в тесті, після написання виконання
Який найкращий спосіб дії в TDD, якщо після правильної реалізації логіки тест все-таки не працює (бо в тесті є помилка)? Наприклад, припустимо, ви хочете розробити таку функцію: int add(int a, int b) { return a + b; } Припустимо, ми розробляємо його наступними кроками: Написати тест (поки функцій немає): // …
21 tdd  mistakes 

3
Як обробляти випадки відмов у конструкторі класу C ++?
У мене є клас CPP, конструктор якого робить деякі операції. Деякі з цих операцій можуть бути невдалими. Я знаю, що конструктори нічого не повертають. Мої запитання: Чи дозволено робити інші операції, які ініціалізують членів у конструкторі? Чи можна сказати викличній функції про те, що деякі операції в конструкторі не виконані? …

3
Яким має бути тип даних лексем, які лексер повертає до свого аналізатора?
Як сказано в заголовку, який тип даних повинен лексеру повернути / надати парсер? Читаючи статтю про лексичний аналіз, яку має Вікіпедія, було зазначено, що: У інформатиці лексичний аналіз - це процес перетворення послідовності символів (наприклад, у комп’ютерній програмі чи веб-сторінці) у послідовність лексем ( рядків із визначеним «значенням»). Однак, в …
21 data-types  lexer  flex 

6
Чи є науковий код достатньо іншою сферою, щоб ігнорувати загальні стандарти кодування?
Останнім часом я намагаюся обдумати наступний факт. З одного боку, існує безліч вказівок та стандартів кодування того, що вважається "здоровим", "чистим", "добре написаним" тощо. Дивіться "Чистий код", який, як видається, також тут широко обговорюється. Приклад правила: 7 методів довгих рядків та 1 або 2 рівні відступи. Код, який не дотримується, …

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