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

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

4
Чому деякі способи сортування сортують за 1, 10, 2, 3…?
Я помітив, ніж багато чисельних методів сортування, схоже, сортуються на 1, 10, 2, 3 ... замість очікуваних 1, 2, 3, 10 ... У мене виникають проблеми зі створенням сценарію, де я б потрібен перший метод, і, як користувач, я засмучуюся, коли бачу це на практиці. Чи є законні випадки використання …
31 sorting 

9
'<' versus '! =' як умова в циклі 'for'?
Скажіть, у вас є наступний forцикл *: for (int i = 0; i &lt; 10; ++i) { // ... } що це також може бути записано як: for (int i = 0; i != 10; ++i) { // ... } Кінцеві результати однакові, тож чи існують реальні аргументи щодо використання …
31 syntax 

4
Коли зобов'язання не має позначати версію?
Контекст: Нещодавно я дізнався про семантичну версію і намагаюся визначити, як найкраще її використовувати практично для власних проектів. Зважаючи на те, що semver враховує основні зміни, незначні зміни та виправлення для версій, коли комісія не повинна позначатись оновленою версією? Мені здається, що кожна зміна підходила б до однієї з цих …

6
Коли слід оновлювати залежності?
У нас було два основні кризи, пов'язані із залежністю, з двома різними базами коду (Android та веб-додаток Node.js). Android Repo потребував переходу від шквалу до Firebase, що вимагало оновлення бібліотеки Служб Google Play чотирьох основних версій. Аналогічна ситуація трапилася і з нашим додатком Node, розміщеним у Heroku, де наш виробничий …

5
Чому дискримінаційні спілки пов'язані з функціональним програмуванням?
Протягом багатьох років програмування ОО я зрозумів, що таке дискримінаційні спілки, але ніколи їх не пропускав. Нещодавно я займався деяким функціональним програмуванням на C #, і тепер я вважаю, що хочу бачити їх. Це мене бентежить, оскільки, дивлячись на це, концепція дискримінованих спілок виглядає цілком незалежною від функціональної / дихотомії …

10
Чому стандартні бібліотеки не є програмуванням мови примітивів? [зачинено]
Я думав, чому існують (на всіх мовах програмування, які я вивчив, наприклад, C ++, Java, Python) стандартні бібліотеки, такі як stdlib, замість того, щоб подібні "функції" були примітивом самої мови.

9
Проектування класу для прийняття цілих класів як параметрів, а не окремих властивостей
Скажімо, наприклад, у вас є додаток із широко поширеним класом, який називається User. Цей клас розкриває всю інформацію про користувача, його Id, ім'я, рівні доступу до кожного модуля, часовий пояс тощо. Дані користувача, очевидно, широко посилаються у всій системі, але з будь-якої причини система налаштована так, що замість того, щоб …
30 java  c#  design  solid 

7
Чи є кодовим запахом встановити прапор у циклі, щоб використовувати його згодом?
У мене є фрагмент коду, куди я повторюю карту, поки певна умова не відповідає дійсності, а потім пізніше використовувати цю умову, щоб зробити ще якісь речі. Приклад: Map&lt;BigInteger, List&lt;String&gt;&gt; map = handler.getMap(); if(map != null &amp;&amp; !map.isEmpty()) { for (Map.Entry&lt;BigInteger, List&lt;String&gt;&gt; entry : map.entrySet()) { fillUpList(); if(list.size() &gt; limit) { …

2
Яке походження препроцесора С?
Препроцесор C приєднаний до C, але він має зовсім інший синтаксис від основної мови: синтаксично значущий пробіл (кінець рядка завершує оператор, пробіл після макросу визначає початок списку заміни) Блоки на основі ключових слів замість дужок, elifзамістьelse if визначення на основі ключових слів, а не декларація-відображає використання, немає =для визначення значення …
30 c  history  macros 

6
Тисячі помилок!
Нещодавно мене призначили на новий проект. Ну, власне, старий проект, написаний класичним ASP. Тепер нова версія програми записується в останню версію ASP.NET, але очікується, що вона не буде RTM через деякий час (орієнтовна дата випуску - січень 2017 року), тому мені доведеться виконати деяке обслуговування старого додатка, поки воно не …

6
Краще мати 2 методи з чітким значенням, або просто 1 метод подвійного використання?
Щоб спростити інтерфейс, краще просто не мати getBalance()методу? Перехід 0до charge(float c);волі дасть той самий результат: public class Client { private float bal; float getBalance() { return bal; } float charge(float c) { bal -= c; return bal; } } Можливо, запишіть у javadoc? Або просто залиште це користувачеві класу, …
30 interfaces  cqrs 

9
Чи існують шаблони дизайну, які можливі лише на динамічно набраних мовах, як-от Python?
Я прочитав відповідне запитання. Чи існують непотрібні шаблони дизайну в таких динамічних мовах, як Python? і згадав цю цитату на Wikiquote.org Дивовижна річ щодо динамічного набору тексту - це дозволяє висловити все, що можна обчислити. А системи типів не типу типів, як правило, можна вирішити, і вони обмежують вас підмножиною. …

5
Якщо число завелике, воно перекинеться на наступне місце пам'яті?
Я переглядав програмування на С і є лише кілька речей, які мене турбують. Візьмемо для прикладу цей код: int myArray[5] = {1, 2, 2147483648, 4, 5}; int* ptr = myArray; int i; for(i=0; i&lt;5; i++, ptr++) printf("\n Element %d holds %d at address %p", i, myArray[i], ptr); Я знаю, що …

4
Чому мені не потрібна ОРМ на такій функціональній мові, як Scala?
Мені цікаво, чи зможу я перейти з Java на Scala у проекті Spring + Hiber, щоб скористатися деякими функціями Scala, такими як відповідність шаблонів, Варіант та те, що мені здається чистішим синтаксисом загалом. Я шукав ORM за замовчуванням в екосистемі Scala і знайшов такі думки, як Activate (але в основному …

5
Який ефективний спосіб фіксувати обґрунтування рішень щодо дизайну виробів?
У нашій компанії ми не використовуємо жодної документації на дизайн товару. Всього у нас є три працівники, тому все обговорення дизайну продукту відбувається особисто або на Slack. (Ми також знаходимося на базовому пакеті Slack, який дозволяє переглядати лише останні повідомлення.) Наш продукт все ще знаходиться на ранніх стадіях, і ми …

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