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

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

12
Об'єктно-орієнтований дизайн
Припустимо, у вас є наступне: +--------+ +------+ | Animal | | Food | +-+------+ +----+-+ ^ ^ | | | | +------+ +-------+ | Deer | | Grass | +------+ +-------+ Deerуспадковує від Animal, а Grassуспадковує від Food. Все йде нормально. Animalпредмети можуть їсти Foodпредмети. Тепер давайте трохи змішати його. …

6
Як вирішити проблему вкладених коментарів
Здається, що не лише однією мовою коментарі не можуть бути вкладені. У вас є гарне рішення цієї проблеми? Одне з вирішень C / C ++ та Java - це використовувати лише однорядковий коментар, але тоді неможливо коментувати більший блок. Я стикаюся з чимось таким: </li><!-- <li><!-- Save --> Тому я …
23 java  c++  python  c  comments 

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

3
Чому варіант / можливо вважається хорошою ідеєю, а перевірені винятки - ні?
Деякі мови програмування, наприклад, Scala, мають поняття Optionтипів (які також називаються Maybe), які можуть містити значення чи ні. З того, що я читав про них, вони широко вважаються чудовим способом вирішення цього питання, ніж nullтому, що вони явно змушують програміста розглянути випадки, коли може не бути значення, а не просто …
23 exceptions 

6
Чи функціональне програмування мінливими змінними, що не мають побічних ефектів, все ще вважаються «поганою практикою»?
Чи вважається наявність мінливих локальних змінних у функції, які використовуються лише внутрішньо (наприклад, функція не має побічних ефектів, принаймні не навмисно), як і раніше вважається "нефункціональною"? наприклад, у курсі стилю курсу "Функціональне програмування з Scala" будь-яке varвикористання вважається поганим На моє запитання, якщо функція не має побічних ефектів, чи написання …

2
Чи гарна ідея надати різні підписи функцій, які роблять те саме?
Ось клас C ++, який будується з трьома значеннями. class Foo{ //Constructor Foo(std::string, int, char); private: std::string foo; char bar; int baz; }; Усі типи параметрів різні. Я міг би перевантажити конструктор, щоб порядок не мав значення. class Foo{ //Constructors Foo(std::string, char, int); Foo(std::string, int, char); Foo(char, int, std::string); Foo(char, …

4
Чому в тесті Джоеля відсутня розробка тестових програм?
Я читав цей блог Джоела Спольського про 12 кроків, щоб краще кодувати . Відсутність тестово керованої розробки дійсно мене здивувало. Тому я хочу передати це питання гуру. Чи справді TDD не варте зусиль?

2
Чи об'єднається C # з нативним компілятором C ++? [зачинено]
Наразі це питання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …
23 c#  c++ 

5
Тестування приладів у світі "без сетера"
Я не вважаю себе експертом DDD, але, як архітектор рішення, намагаюся застосовувати кращі практики, коли це можливо. Я знаю, що існує багато дискусій навколо плюсів і мінусів не (публічного) сеттерського "стилю" в DDD, і я можу побачити обидві сторони аргументу. Моя проблема полягає в тому, що я працюю в команді …

3
Реалізація шаблону відвідувачів для абстрактного синтаксичного дерева
Я в процесі створення власної мови програмування, яку я роблю для цілей навчання. Я вже написав лексеру та рекурсивний аналізатор спуску для підмножини моєї мови (на даний момент я підтримую математичні вирази, такі як + - * /дужки). Аналізатор передає мені Абстрактне синтаксичне дерево, на якому я називаю Evaluateметод отримання …

3
Чи потрібно все-таки використовувати Debug.Assert сьогодні?
Нещодавно я натрапив на якийсь нещодавно написаний код, який перемішувався з великою кількістю Debug.Assert (C #). Чи повинні ми все ще широко використовувати це, незважаючи на використання TDD, BDD та Unit Testing в цілому?

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

1
Як часто seq використовується у виробничому коді Haskell?
У мене є досвід написання невеликих інструментів у Haskell, і мені здається, що це дуже інтуїтивно використовувати, особливо для запису фільтрів (за допомогою interact), які обробляють їх стандартний вхід і передають його на стандартний вихід. Нещодавно я спробував використати один такий фільтр у файлі, який був приблизно в 10 разів …

5
Чому користувачі Git кажуть, що у Subversion немає всього вихідного коду локально?
Я продовжую лише те, що я читав на SO, тому вибачте мене, але все, що я прочитав, говорить про те, що одна з головних переваг Git над Subversion полягає в тому, що Git дає весь вихідний код розробнику локально, не потрібно нічого робити на сервер. З моїм обмеженим використанням SVN …
23 git  svn 

5
успіх: / провал: блоки проти завершення: блок
Я бачу два поширених шаблони для блоків у Objective-C. Один - це пара успіху: / fail: блоки, інше - єдине завершення: block. Наприклад, скажімо, що у мене є завдання, яке поверне об'єкт асинхронно, і це може бути невдалим. Перша закономірність така -taskWithSuccess:(void (^)(id object))success failure:(void (^)(NSError *error))failure. Другий візерунок є …

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