Keep It Stupid Simple (KISS)
Що означає 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? Ні.
Цей же принцип можна застосовувати й в повсякденному житті ;)