Існує багато розмов про кращі практики 1 в розробці програмного забезпечення. Я бачив, що принаймні три основні моменти отримують багато дискусій як щодо SE, так і деінде:
- Що кваліфікується як найкраща практика і чому?
- Невже найкращі практики навіть варто обговорити в першу чергу, тому що розумно стверджувати, що жодна практика не є "найкращою" практикою?
- Коли вам слід відмовитися від найкращої практики - або, можливо, більшості найкращих практик - або тому, що вона не здається застосовною, або через зовнішні обмеження (час, гроші тощо), які роблять компроміс непрактичним?
Те, що, здається, з’являється набагато рідше, але більше, ніж ніколи, - це поняття здорового глузду в розробці програмного забезпечення. Останній досвід знову сприйняв це поняття перед моїми думками.
Моє первісне враження, що це інша дискусія, ніж найкраща практика, але, можливо, з деяким перехресним запиленням.
Коли я думаю про здоровий глузд взагалі, я думаю про набір правил, які ви або підбирали, або вчили, що дають вам основу для міркування та прийняття рішень. Дотримуйтесь здорового глузду - це хороший спосіб уникнути відстрілу всієї ноги. Але поза досить низькою базовою лінією здоровий глузд поступається необхідністю приймати освічені рішення, а освічені рішення можуть навіть перемогти здоровий глузд, коли докази здаються досить вагомими. Я можу трохи грати з визначенням тут, але я думаю, що це досить близько, щоб очолити мій приклад.
Коли я думаю про здоровий глузд в розробці програмного забезпечення, я думаю про всі правила основної гігієни, щоб запобігти швидкому розкладанню кодової бази в незрозумілий безлад. Як приклад, такі речі: не використання єдиної глобальної структури для підтримки та спілкування стану в рамках нетривіальної програми; не використовуйте назви змінних / методів / класів, які є лише випадковим безладом; речі, які, ймовірно, нагадують те, що ми дуже близько називали анти-шаблонами. При застосуванні передового досвіду практичний аналог до моделей навчання, застосування здорового глузду може розглядатися як практичний аналог вивчення антимоделей.
Маючи це на увазі, я хотів би поставити кілька питань, які, бачачи відповіді інших, можуть допомогти мені розібратися в цьому.
Чи інші вірять, що в розробці програмного забезпечення існує поняття здорового глузду? Було б цікаво знати міркування в будь-якому випадку.
Якщо так, то чи варто це поняття обговорювати? Це щось, на що ми повинні наполягати настільки, наскільки ми іноді робимо найкращі практики? Чи варто на щось наполегливіше наполягати?
Якщо аналогія антидіаграмам здається розумною, загальним правилом є те, що антидіаграми застосовуються лише тоді, коли іншого способу немає, і навіть тоді лише за дуже обмежених обставин. Наскільки гнучким слід бути у дозволі кодовій базі відхилитися від здорового глузду? Здається невиправданим, що відповідь "зовсім не", тому що іноді доцільність вимагає відхилень. Але це здається різним аргументом, ніж коли застосовувати "найкращу практику". Можливо, це не так; якщо ви так не вважаєте, я хотів би дізнатися чому.
Це набагато відкритіший кінець і, можливо, вартий подальшого питання, яке саме , які рекомендації ви б вказували на це, здається, питання здорового глузду?
Інші думки також вітаються.
1 Можливо, я б краще назвав їх "часто повторюваними моделями домену", але назва "кращі практики" є досить поширеною, щоб усі знали, що вони є, навіть якщо вони не згодні з тим, що вони є. Якщо "найкраща" частина вас турбує, уявіть, що я замінив "кращі практики" чимось менш авторитетним звучанням.