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

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

5
Чи корисно міні-рефакторний код, сподіваючись на покращення якості, чи це просто "переміщення коду" без особливої ​​користі?
Приклад Я натрапив на монолітний код, який робить "все" в одному місці - завантажуючи дані з бази даних, показуючи розмітку HTML, виконуючи роль маршрутизатора / контролера / дії. Я почав застосовувати код баз даних SRP, що рухається, до власного файлу, забезпечуючи кращу назву речей, і все це виглядало добре, але …

5
Заборонити виклики до довільних функцій / класів у зовнішньому коді
У мене були випадки, коли було б корисно обмежити доступ до API зовнішніх бібліотек та фреймворків, щоб запобігти негативним наслідкам у системі. Наприклад, у програмі SharePoint може здатися закликом spList.Items.GetItemByIdотримати елемент списку, навіть можливо, в циклі, не розуміючи, що це може призвести до величезних проблем з продуктивністю. Можливо також, що …

5
скільки ядер я повинен використовувати для розрахунків? #cores або #cores -1?
У мене є великий розрахунок. Хоча я можу використовувати всі ядра, я думав, чи є якась причина залишити 1 ядро, а не використовувати його? (обчислення процесора тільки немає IO). Або я недооцінюю ОС, що вона не знала б обробляти та робити належну комутацію контексту, навіть якщо я використовую всі ядра?

2
Чи компілятори на зразок Javac автоматично визначають чисті функції та паралельно їх?
Як відомо, чисті функції полегшують парелелізацію. Що це за функціональне програмування, що робить його притаманним при паралельному виконанні? Чи достатньо розумні компілятори, такі як Javac, щоб виявити, коли метод є чистою функцією? Завжди можна реалізувати класи, які реалізують функціональні інтерфейси, такі як Function , але мають побічні ефекти.

2
Чи "файлова система" бачить "запам'ятовуючий пристрій як (дуже великий) байтовий масив?
Хочу знати, як записує та читає файлова система із пристрою зберігання даних. Я думаю, що це працює так: Файлова система не має доступу до пристрою зберігання безпосередньо, але, скоріше, запам'ятовуючий пристрій подається (драйвером пристрою запам'ятовуючого пристрою) до файлової системи у вигляді (дуже великого) байтового масиву. Наприклад, якщо файлова система хоче …

3
Що є загальним способом обробки видимості в бібліотеках?
Це питання про те, коли використовувати приватні та коли використовувати захищені в класах, змусило мене задуматися. (Я поширю це питання також на заключні класи та методи, оскільки це пов'язано. Я програмую на Java, але думаю, що це стосується кожної мови OOP) Прийнята відповідь говорить: Добре правило: зробити все максимально приватним. …

2
Як тестувати та орієнтувати реалізацію mutex
Як зазначається в заголовку: Як ви належним чином тестуєте та орієнтуєте різні реалізації мутексів у c ++? По суті, я написав свій власний std :: mutex like class для проекту, що працює на двох ядрах, armv7 з метою мінімізувати накладні витрати в беззаперечному випадку. Тепер я розглядаю можливість використання зазначеного …
12 c++  testing  mutex 

3
Плоский або вкладений JSON для ієрархічних даних?
Я вже перемикався вперед і назад ~ 5 разів. Ця кінцева точка REST /api/tags/буде призначена для внутрішнього використання (немає сторонніх клієнтів), я єдиний, хто працює з нею. Я приймаю рішення між цими двома представленнями: Квартира { "types":[ { "id":1, "text":"Utility" }, { "id":7, "text":"Lease Terms" }, ], "tags":[ { "id":8, …
12 rest  api-design  json 

4
Програмуючи у функціональному стилі, чи є у вас єдиний стан програми, який ви плетете за допомогою логіки програми?
Як побудувати систему, яка має все перелічене нижче : Використання чистих функцій з незмінними об'єктами. Передавайте лише дані про функції, які потрібні цій функції, не більше (тобто немає великого об'єкта стану програми) Уникайте занадто багато аргументів до функцій. Уникайте необхідності конструювання нових об'єктів лише для упаковки та розпакування параметрів до …

5
Як Agile можна застосувати до програм, що включають складну обробку?
Більшість літератури про рухливість, здається, є упередженою щодо бізнес-додатків типу CRUD, де користувач знає, що відбувається за кадром. (Це добре, тому що більша частина написаного коду, ймовірно, належить до цього класу.) Для цього типу додатків зв’язок між історіями користувачів (вимогами) та завданнями розвитку здебільшого простий: Просто розділіть історію користувача на …

1
Поділ частин монорепо
В даний час у нас є складна і неефективна система побудови, що складається з безлічі SVN і Git repos (близько 50% кожен), включаючи таку, яка є субмодулями git repo. У нас також є домашні сценарії, які більш-менш добре керують цілою справою. Основним моментом нашої кодової бази із закритим кодом є …

4
Чи неправильно використовувати прапори для "групування" переліків?
Я розумію, що [Flag]переліки, як правило, використовуються для речей, які можна поєднувати, де окремі цінності не є взаємовиключними . Наприклад: [Flags] public enum SomeAttributes { Foo = 1 << 0, Bar = 1 << 1, Baz = 1 << 2, } Якщо будь - яких SomeAttributesзначення може бути комбінацією Foo, …
12 c#  .net  readability  enum 

2
Як насправді з’ясувати, що потрібно зробити в об'єктно-орієнтованому дизайні?
По-перше, відмова від відповідальності: я не знаю, чи відповідає це питання цьому веб-сайту, але я все ще вважаю актуальним питання не лише до мене, але і для інших, хто є початківцями. Якщо питання можна вдосконалити, щоб відповідати тут, будь ласка, зверніть увагу на int коментарі. Якщо це не підходить, дайте …

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

1
Введення додаткових локальних змінних як заміна коментарів
Чи гарний стиль використовувати додаткові, технічно зайві, локальні змінні для опису того, що відбувається? Наприклад: bool easyUnderstandableIsTrue = (/* rather cryptic boolean expessions */); if(easyUnderstandableIsTrue) { // ... } Що стосується технічних витрат, я очікую, що компілятор оптимізує цю додаткову лінію. Але чи вважається це зайвим роздуттям коду? У моїх …

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