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

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

11
Чи порушує цей дизайн класу принцип єдиної відповідальності?
Сьогодні я мав сварку з кимось. Я пояснював переваги створення багатої доменної моделі на відміну від анемічної доменної моделі. І я продемонстрував свою думку простим класом, який виглядає так: public class Employee { public Employee(string firstName, string lastName) { FirstName = firstName; LastName = lastname; } public string FirstName { …

5
Чи потребує більшої частини змінних даних у функціональному програмуванні більше використання пам'яті?
У функціональному програмуванні, оскільки майже вся структура даних є непорушною, коли державі доводиться змінювати нову структуру. Це означає набагато більше використання пам'яті? Я добре знаю об'єктно-орієнтовану парадигму програмування, зараз я намагаюся дізнатися про функціональну парадигму програмування. Концепція всього непорушного мене бентежить. Здавалося б, програма, яка використовує незмінні структури, потребує набагато …

9
Чи є вчинення / перевірка коду щодня гарною практикою?
Я читав записку Мартіна Фаулера про постійну інтеграцію, і він перераховує як обов'язковий "Кожен бере участь у магістралі кожного дня". Я не люблю вводити код, якщо розділ, над яким я працюю, не завершений, і що на практиці я ввожу код кожні три дні: один день для дослідження / відтворення завдання …

22
Чому деякі програмісти вважають, що існує протиставлення теорії та практики? [зачинено]
Порівнюючи інженерію програмного забезпечення з цивільним будівництвом, я здивовано спостерігав інший спосіб мислення: будь-який інженер-цивільник знає, що якщо ви хочете побудувати невелику хатинку в саду, ви можете просто дістати матеріали і піти будувати її, тоді як якщо хочете будувати 10-поверховий будинок (або, наприклад, що - щось на зразок цього ) …

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


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

11
Чому добре розділити програму на кілька класів? [зачинено]
Я ще учень середньої школи (вступає в 10 клас), і мені ще належить пройти фактичний комп’ютерний курс у школі. Все, що я робив до цього часу, - це через книги. Ці книги навчили мене таким поняттям, як спадкування, але як допомагає розщеплення програми на кілька класів? Книги мені ніколи не …

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

7
Чи достатньо використовувати тести прийняття та інтеграції замість одиничного тесту?
Короткий вступ до цього питання. Я використовую TDD і останнім часом BDD вже більше року. Я використовую такі методи, як глузування, щоб зробити письмові тести ефективніше. Останнім часом я розпочав особистий проект, щоб написати для себе невелику програму управління грошима. Оскільки у мене не було застарілого коду, це був ідеальний …

7
Як поводитися зі статичними класами корисності при проектуванні для тестабельності
Ми намагаємося розробити нашу систему, щоб бути перевіряемою та здебільшого розробленою за допомогою TDD. В даний час ми намагаємося вирішити таку проблему: У різних місцях нам необхідно використовувати статичні допоміжні методи, такі як ImageIO та URLEncoder (обидва стандартні Java API) та різні інші бібліотеки, що складаються здебільшого статичних методів (наприклад, …

15
Чи є якась причина не переходити безпосередньо від клієнтського Javascript до бази даних?
Можливий дублікат: написання веб-додатків "менше сервера" Отже, скажімо, я збираюся створити клон Stack Exchange і вирішую використовувати щось на зразок CouchDB в якості свого бекенда. Якщо я використовую їх вбудовану аутентифікацію та авторизацію на рівні бази даних, чи є якась причина не дозволити клієнтові Javascript писати безпосередньо на загальнодоступному сервері …

3
Чому нам потрібно ставити приватних членів у заголовки?
Приватні змінні - це спосіб приховати деталі складності та реалізації для користувача класу. Це досить приємна особливість. Але я не розумію, чому в c ++ нам потрібно помістити їх у заголовок класу. Я бачу два прикрих недоліки цього: Це захаращує заголовок від користувача Це примушує перекомпіляцію всіх бібліотек клієнтів, коли …
62 c++  headers 

6
Чи об'єднання об'єктів застаріло?
Я дуже добре знайомий з концепцією об'єднання об'єктів і завжди намагаюся його максимально використовувати. Крім того, я завжди вважав, що об'єднання об'єктів є стандартною нормою, оскільки я зауважував, що сама Java, а також інші рамки використовують об'єднання якнайбільше. Нещодавно я прочитав щось абсолютно нове (і контрінтуїтивне?). Таке об'єднання насправді погіршує …

4
яке призначення стрілок?
Я вивчаю функціональне програмування з Haskell, і намагаюся схопити поняття, спочатку зрозумівши, для чого вони мені потрібні. Я хотів би знати мету стрілок у функціональних мовах програмування. Яку проблему вони вирішують? Я перевірив http://en.wikibooks.org/wiki/Haskell/Understanding_arrows та http://www.cse.chalmers.se/~rjmh/afp-arrows.pdf . Все, що я розумію, - це те, що вони використовуються для опису графіків …

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