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

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

8
Використовуйте порожню рядок, нульову чи видаліть порожню властивість у запиті / відповіді API
Під час передачі об'єкта через API, як у безшовному форматі JSON, який ідеальний спосіб повернути неіснуюче властивість рядка? Я знаю, що існують різні способи зробити це, як у прикладах у перелічених нижче посиланнях. Уникайте нуля Повернути нуль Видаліть порожню власність Я впевнений, що раніше я використовував null, але не маю …

9
Як повідомити, що порядок вставки має значення на карті?
Я виймаю набір кортежів із бази даних і вкладаю їх у карту. Запит до бази даних є дорогим. Немає очевидного природного упорядкування елементів на карті, але порядок вставки все-таки має значення. Сортування карти було б важкою операцією, тому я хочу уникати цього, враховуючи, що результат запиту вже відсортований так, як …
24 java  code-quality  map 

6
Коли допустима кругова посилання на батьківський вказівник?
Це запитання щодо переповнення стека стосується того, що дитина має посилання на свого батька через вказівник. Коментарі спочатку були досить критичними, що дизайн був жахливою ідеєю. Я розумію, це, мабуть, не найкраща ідея загалом. З загального правила, як правило, справедливо сказати: "не роби цього!" Однак мені цікаво, які умови існували …
24 design 

5
На Яві повинні приватні помічники переходити вище або нижче публічних методів? [зачинено]
Закрито . Це питання ґрунтується на думці . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 5 років тому . Я помітив, що у колег і у мене є протилежні практики щодо впорядкування методів …

3
Боротьба з циклічними залежностями в одиничних тестах
Я намагаюся практикувати TDD, використовуючи його для розробки такого простого, як Bit Vector. Я випадково використовую Swift, але це мовно-агностичне питання. Моє BitVector- це structзберігання синглів UInt64і презентує API, який дозволяє вам ставитися до нього як до колекції. Деталі не мають великого значення, але це досить просто. Високі 57 біт …

8
Операція користувача один раз на день: Скидання 24 годин проти Поночі Скидання [закрито]
Закрито . Це питання має бути більш зосередженим . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно зосередило увагу на одній проблемі, лише відредагувавши цю публікацію . Закрито 12 місяців тому . Коли користувач може виконати дію лише раз на день, наприклад отримати безкоштовний квиток на …

7
Чи слід уникати STL у великих програмах?
Це може здатися дивним питанням, але в моєму відділі у нас виникають проблеми з наступною ситуацією: Ми працюємо тут над серверним додатком, який стає все більшим і більшим, навіть у той момент, коли ми розглядаємо можливість розділити його на різні частини (DLL-файли), динамічно завантажуючи при необхідності та вивантажуючи згодом, щоб …
24 c++  stl 

4
Як поводитися з TODO у запиті на виклик?
Це питання було переміщено із системи забезпечення якості програмного забезпечення та обміну стек-тестуванням, оскільки на нього можна відповісти на сайті Exchange Engineering Stack Exchange. Мігрував минулого року . Коли я переглядаю зміни в запиті на витяг, я іноді натрапляю на коментар із приміткою "TODO", яка може бути там з різних …

1
Модуль, що вимагає введення залежності від залежності в JavaScript
Цими днями у мене в голові спливе запитання: Чи суперечить нам спосіб Javascript майже всьому, що вважається хорошою практикою в традиційній розробці програмного забезпечення? У мене є низка запитань / спостережень, пов'язаних з цим твердженням, але для того, щоб поважати формат StackExchange, буде краще, якщо я розділю їх на різні …

10
Параметр для контролю, чи потрібно викидати виняток чи повертати null - хороша практика?
Я часто стикаюся з методами / функціями, які мають додатковий булевий параметр, який контролює, чи виняток викинуто на помилку, чи нуль повертається. Вже є дискусії про те, який із них є кращим вибором у такому випадку, тому не будемо тут зосереджуватися на цьому. Див., Наприклад, повернення магічного значення, викидання виключення …
24 exceptions 

7
Дев'яносто дев'яносто правило на практиці
На перші 90 відсотків коду припадає перші 90 відсотків часу розробки. Решта 10 відсотків коду припадає на інші 90 відсотків часу розробки. - Том Каргілл, Bell Labs Що це саме означає на практиці? Що програмісти виконують значну кількість роботи і що вони дають 180% з себе чи?

6
Чому ви коли-небудь «чекаєте» методу, а потім негайно допитуєте його повернену вартість?
У цій статті MSDN наведено наступний приклад коду (трохи відредагований для стислості): public async Task<ActionResult> Details(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Department department = await db.Departments.FindAsync(id); if (department == null) { return HttpNotFound(); } return View(department); } FindAsyncМетод повертає Departmentоб'єкт по його ID, і …
24 c#  .net  asp.net-mvc  async 

5
Як моделювати круговий довідник між незмінними об'єктами в C #?
У наступному прикладі коду ми маємо клас для незмінних об'єктів, який представляє кімнату. Північ, Південь, Схід та Захід представляють виходи в інші приміщення. public sealed class Room { public Room(string name, Room northExit, Room southExit, Room eastExit, Room westExit) { this.Name = name; this.North = northExit; this.South = southExit; this.East …

10
Це анти-візерунок, якщо властивість класу створює та повертає новий екземпляр класу?
У мене є клас, який називається Headingдекількома речами, але він також повинен мати можливість повернути протилежне поточному значенню заголовка, яке нарешті має бути використане шляхом створення нового примірника самого Headingкласу. У мене може бути проста властивість, викликана reciprocalдля повернення протилежного заголовка поточного значення, а потім вручну створити новий екземпляр класу …

6
Чи є читабельність поважною причиною не використовувати const у (еталонних) параметрах?
Під час написання деяких функцій я знайшов ключове слово const у таких параметрах: void MyClass::myFunction(const MyObject& obj,const string& s1,const string& s2,const string& s3){ } часто викликає розбиття рядка на 2 рядки в IDE або vim, тому я хочу видалити всі ключові слова const у параметрах: void MyClass::myFunction(MyObject& obj,string& s1,string& s2,string& …

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