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

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

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

7
Як ви називаєте функцію, коли той самий вхід завжди повертатиме один і той же вихід, але також має побічні ефекти?
Скажімо, у нас є нормальна чиста функція, така як function add(a, b) { return a + b } А потім ми його змінюємо таким чином, щоб він мав побічну дію function add(a, b) { writeToDatabase(Math.random()) return a + b; } Наскільки я знаю, це не є чистою функцією, оскільки я …

9
Це хороша практика запускати одиничні тести на гачках управління версіями?
З технічної точки зору можна додати кілька виштовхувальних гачків до / після, які будуть виконувати тести одиниць, перш ніж дозволити об'єднати певну комісію до віддаленої гілки за замовчуванням. Моє запитання - чи краще зберігати одиничні тести в конвеєрному конвеєрі (таким чином, вводячи розбиті коміти на репо) або краще просто не …

7
Повна незмінність та об'єктно-орієнтоване програмування
У більшості мов OOP об'єкти, як правило, змінюються з обмеженим набором винятків (наприклад, кортежі та рядки в python). У більшості функціональних мов дані незмінні. Як змінні, так і непорушні об'єкти приносять цілий список своїх переваг і недоліків. Є мови, які намагаються одружитися з обома поняттями, наприклад скала, де у вас …

3
Булевий метод іменування стверджувального проти негативного
Чи повинні булеві методи завжди приймати стверджувальну форму, навіть коли вони лише коли-небудь будуть використовуватися в негативній формі? Скажімо, я хотів перевірити, чи існує сутність, перш ніж створити її, мій аргумент полягає в тому, що перша форма нижче є кращою за другу форму, незалежно від того, застосовується чи ні метод …
43 naming  functions 

4
огляд коду за допомогою git-flow та github
За допомогою регулярних git та github я можу зробити перевірку коду, просто створивши запит на виклик гілки функцій, над якою працюю до гілки master. Як я можу робити огляди коду за допомогою git-flow? З робочим процесом, як "закінчення функції git flow", я плутаюся в тому, де насправді відбувається перегляд коду …

3
Програмування твердих принципів
З часом я міг зрозуміти дві частини SOLID - "S" і "O". «О» - Я навчився принципу відкритого закритого типу за допомогою структури спадкування та стратегії. “S” - я засвоїв принцип єдиної відповідальності під час вивчення ORM (логіка стійкості забирається з об’єктів домену). Аналогічним чином, які найкращі регіони / завдання …

16
Дата як номер версії програмного забезпечення
Зазвичай розробники програмного забезпечення не використовують дату як номер версії, хоча формат YYYYMMDD (або його відхилення) виглядає досить міцним для використання. Чи щось не так у цій схемі? Або це стосується лише обмежених "типів" програмного забезпечення (наприклад, власних виробництв)?
43 versioning 

11
Які найкращі практики щодо непідписаних літер?
Я використовую неподписані вставки скрізь, і я не впевнений, чи варто. Це може бути від стовпчиків ідентифікаторів первинного ключа бази даних до лічильників тощо. Якщо число ніколи не повинно бути негативним, я завжди буду використовувати непідписаний int. Однак я помічаю з коду інших людей, що, схоже, ніхто більше не робить …

6
Найбільш читаний спосіб форматування довгого, якщо умови? [зачинено]
ifЯкщо взагалі можливо, слід уникати тривалих умов намотування , але іноді ми все пишемо їх. Навіть якщо це дуже проста умова, заяви, що стосуються, іноді просто дуже багатослівні, тому вся умова закінчується дуже тривалою. Який самий читабельний спосіб їх форматування? if (FoobarBaz::quxQuux(corge, grault) || !garply(waldo) || fred(plugh) !== xyzzy) { …

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


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

1
Зміна імен авторів у ліцензії MIT [закрито]
Деякі роки тому я написав і випустив деяке програмне забезпечення під ліцензією MIT. Нещодавно я помітив, що один (чи якийсь?) Вилок змінив провідне повідомлення про авторські права у верхній частині ліцензії, тобто Copyright (c) 2014 <my name> MIT License Permission is hereby granted, free of charge, to any person obtaining …

9
Чи "уникнути проблеми йо-йо" є вагомою причиною, щоб дозволити "примітивну одержимість"?
Згідно Коли коли примітивна одержимість не є кодовим запахом? , Я повинен створити об'єкт ZipCode, щоб представляти поштовий індекс, а не об'єкт String. Однак, зі свого досвіду, я волію бачити public class Address{ public String zipCode; } замість public class Address{ public ZipCode zipCode; } тому що я думаю, що …

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