Перейти до основного вмісту

Keep It Stupid Simple (KISS)

· 4 хв. читання
Petro Ostapuk

Що означає KISS?

KISS - це абревіатура від Keep It Stupid Simple або Keep It Simple, Stupid

Що це означає?

Цей принцип був ключовим і приніс величезний успіх за роки роботи в галузі програмної інженерії. Поширеною проблемою серед інженерів та розробників програмного забезпечення сьогодні є те, що вони схильні надмірно ускладнювати проблеми.

Зазвичай, коли розробник стикається з проблемою, він розбиває її на менші частини, які, на його думку, він розуміє, а потім намагається реалізувати рішення в коді. Я б сказав, що 8 чи 9 з 10 розробників припускаються помилки, коли не розбивають проблему на достатньо малі чи зрозумілі частини. Це призводить до дуже складних реалізацій навіть найпростіших проблем, ще одним побічним ефектом є спагеті-код, те, що, як ми думали, може зробити лише BASIC з його операторами goto, але в PHP це призводить до класів з 500-1000 рядків коду, методів, кожен з яких має кілька сотень рядків. Цей безлад у коді є результатом того, що розробник усвідомлює випадки винятків з його початкового рішення, коли він реалізовував код. Ці виключні випадки можна було б вирішити, якби розробник розбив проблему на частини.

Яку користь отримаємо від KISS?

  • Зможете вирішувати більше проблем швидше.
  • Зможете створювати код для розв'язання складних проблем за меншу кількість рядків коду.
  • Зможете створювати більш якісний код.
  • Зможете створювати більші системи, простіші в обслуговуванні.
  • Ваша кодова база буде більш гнучкою, її буде легше розширювати, модифікувати або рефакторити, коли з'являться нові вимоги.
  • Зможете досягти більшого, ніж могли собі уявити.
  • Зможете працювати у великих групах розробників та над великими проєктами, оскільки весь код буде дуже простим.

Як можна застосувати принцип KISS у своїй роботі?

Існує декілька кроків, дуже простих, але для декого вони можуть бути складними. Як би легко це не звучало, збереження простоти - це питання терпіння, головним чином до себе.

  • Ваш код дуже простий, тож вам не потрібно бути генієм, щоб з ним працювати.
  • Розбийте свої завдання на підзадачі, які, на вашу думку, займуть не більше 4-12 годин кодування.
  • Розбийте свої проблеми на багато маленьких проблем. Кожна проблема повинна бути вирішена в межах одного або декількох класів.
  • Робіть методи невеликими, кожен метод не повинен бути довшим за 30-40 рядків. Кожен метод повинен вирішувати лише дну маленьку проблему, а не багато варіантів використання. Якщо у вашому методі багато умов, розбийте їх на менші методи. Це не тільки полегшить читання і підтримку, але й дозволить швидше знаходити помилки.
  • Робіть класи невеликими, тут застосовується та ж методологія, яку ми описали для методів.
  • Будь ласка, розв'яжіть проблему, а потім кодуйте її. А не навпаки. Якщо у вас є здатність подумки розбивати речі на дуже маленькі шматочки, то неодмінно робіть це під час кодування. Але не бійтеся рефакторити свій код знову і знову, і знову, і знову, і знову. Важливим є кінцевий результат, а кількість рядків не є показником, якщо ви не вважаєте, що чим менше, тим краще.
  • Не бійтеся викидати код. Рефакторинг і перероблення - дві дуже важливі області. Коли ви зіткнетеся з вимогами, яких не існувало, або про які ви не знали, коли писали код, можливо, ви зможете вирішити старі й нові проблеми ще кращим рішенням. Якби ви дотримувалися наведених вище порад, кількість коду, який потрібно було б переписати, була б мінімальною, а якщо ви не дотримувалися наведених вище порад, то, ймовірно, код все одно потрібно переписати.
  • А для всіх інших сценаріїв намагайтеся зробити його якомога простішим, це найскладніша модель поведінки, але як тільки ви її освоїте, ви озирнетеся назад і скажете: "Я не можу уявити, як я працював раніше".

Чи застосовується KISS лише до кодування на PHP? Ні.

Цей же принцип можна застосовувати й в повсякденному житті ;)