KISS, DRY и YAGNI. Защо ги обичат програмистите?

от | юни 10, 2021 | Блог, Тенденции

Е, заглавието е доста подвеждащо. То кой ли не обича целувките (kiss). Този KISS обаче, заедно с другите две думички в списъка, е изписан с главни букви, което логично ще ви накара да си помислите, че е абревиатура. Не, това не са и рокгрупи, поне не за това ще стане дума на следващите редове.

Заедно със SOLID принципите (за които подробно ще ви разкажем при следваща среща), KISS, DRY и YAGNI са онези базови идеи, с които е добре да започне всеки, поел по пътя на програмирането. Те са и значително по-прости – и като концепция, и като практическо приложение, така че няма нито една причина да не побързате да ги научите колкото може по-бързо. Вярваме, че следващите 1000 думи ще са напълно достатъчни за това.

Днес има толкова много програмни езици (а ако тепърва избирате кой от тях да започнете за учите – четете тук). И все пак, тези правила важат за всички тях. А и огромен процент от софтуерните инженери днес изкарват хляба си с компютърни езици, базирани на С (Защо е така? Ето защо.). При тях с пълна сила важат трите абревиатури, които споменахме. И така, нека една по една да ги разгърнем – и като думички, и като значение зад тях.

 

Програмистка целувка

KISS, или с други думи, Keep It Simple, Stupid. Остави го просто, тъпо дори.

Да, програмирането е страшно увличащо занимание и много често имаш желанието да направиш нещата „по-така“. Неслучайно сред по-опитните програмисти винаги го има малко или повече стремежа да се покажеш, да изпъкнеш, да докажеш, че си най-добрият. Ако не вярвате, влезте за кратко в някой от фейсбук форумите за програмисти и бързо ще се убедите.

Тук обаче си говорим за кода. Това е и идеята на този принцип. Ако възможно най-простото решение на една задача работи, това е. Не бива да го усложняваме, допълваме, украсяваме. Да го правим по-заплетено, демонстративно и… самоцелно.

От една страна това е важно, защото максимално простият код крие и най-малко опасности от бъгове. И дори те да се появят, е много, много по-лесно да бъдат открити в 20 реда код, отколкото в 2000.

 

Без комплекси

Освен това, програмирането през последните десетилетия е все повече отборен спорт. Повечето специалисти прекарват значително по-дълго време в това да гледат, разчитат и променят вече написан код, отколкото да създават чисто нови редове.

Ненужната комплексност, излишната сложност на кода със сигурност е нещо, което може само да ви навреди, но не и да ви помогне в работата. Затова и немалка част от времето в работа на програмистите е редно да минава в рефакториране. Както стана дума, обикновено кодът в отделните файлове се пише на части, променя се, добавя се нещо или се променя друго. Понякога в един момент това прави редовете компютърен език нечетими, създава допълнителни бъгове. И идва време да приложим KISS принципа, да отделим достатъчно време, за да попренапишем всичко, така че да е максимално просто. Просто съвършено.

 

Остани на сухо

Какво ли пък е това DRY? Да, хубаво е компютрите да стоят на сухо, иначе може да прехвърчат искри (буквални). Тук обаче съкращението идва от Don’t Repeat Yourself. Не се повтаряй.

Сигурно и вие имате в родатата си някой далечен чичо, който на всяка фамилна среща разказва една и съща история с едни и същи думи и подробности и така 30 години. Еми, досадно е. Но когато говорим за код е и излишно, и вредно.

Основополагащо правило е да избягваме повторенията, без, разбира се, да се вманиачаваме. Колко точно е добре да задълбаваме, зависи и от анализа на кода ни на базата на споменатите SOLID принципи, но, както стана дума, за тях ще поговорим подробно нататък. Уф, ето че и ние се повторихме.

 

Не се повтаряй. Не се повтаряй.

И така – усещате, че трябва да хванете и да копирате едни 10-20-100 реда код. Пръстите механично цъкат Ctrl + C, Ctrl + V, работата потръгва, функционалността работи. И изведнъж имате едни огромни хиляди редове код, които правят едно и също. Едно на ръка, че файлът с код бързо става доста по-обемен и труден за поддържане във всеки един смисъл. И друго – ако откриете малка грешчица в името на променлива, дребен бъг, хрумва ви да подобрите нещо и… пак трябва да включвате запаметената в пръстите ви комбинация, този път Ctrl + F, за да намерите всеки от копираните редове и да смените навсякъде дреболията. После в бързината объркате някоя буква… Уж сте искали да спестите време, а става точно обратното.

Затова е толкова просто, както и с другите принципи, които събрахме тук. Трябва ли да копирате код, особено повечко, просто го изведете в отделна функция или променлива. И навсякъде, където ви е нужен, я викайте с подходящите променливи, за да ви свърши работата. Логично, нали?

 

Я, агне?

Не, нищо общо с „агне“, казано на някой от по-меките български говори. YAGNI също може да асоциираме с фамилен пример. Със сигурност имате по-възрастни роднини, които пък си имат килер, пълен с празни кутии, неработещи електроуреди… Да, едно време никак не обичаха да изхвърлят каквото и да било.

Понякога обаче просто знаеш, че нещо няма да ти е необходимо и е време да се разделиш с него. Точно това има да ни каже YAGNI – You Ain’t Gonna Need It. Това няма да ти трябва!

Пак се връщаме оттам, откъдето започнахме – с основната черта на програмирането и мнозина от програмистите – да се изкушават да правят нещата по красивия, сложния, модерния начин, всичко да става „яко“, fancy.

И после изведнъж се оказва, че съвършената алгоритмична функция… просто не ти трябва. Откриваш прост начин, но пък си я оставяш, ей тъй, за зор-заман, ако пък нещо се промени и пак се окаже необходима…

 

Гробище за код

И така в някакъв момент в проекта се трупат ли, трупат стотици редове неизползван код, които заемат място, затрудняват четимостта и… никога не идва време да ни дотрябват.

„Мъртвият код“ има само едно място – в коша. Това е и принципът YAGNI. Нищо сложно, нали? Впрочем, и трите принципа със сигурност могат да са полезни в доста повече страни от живота, отколкото само и единствено в програмирането. Там обаче са най-доказани и ясно формулирани, спокойно можете да питате когото искате сред по-опитните програмисти около вас.

 

Пате на сбогуване

И за финал – малък бонус. След като четете този материал, значи най-вероятно сте сравнително в началото на своя път в програмирането, или планирате да го започнете.

Може би сте видели патето най-отгоре, а и другаде ви е попадала гумената играчка за баня като нещо, асоцииращо се с програмирането.

Това идва от колкото забавната, толкова и полезна понякога концепция за „дебъгването с гумено пате“ – Rubber Duck Debugging. Идеята? Човек често „запецва“ на някой проблем в толкова абстрактна област като програмирането. Тогава пътят да се измъкне е… да формулира нещата така, че да може да ги разкаже и на гуменото пате, което никак не разбира от софтуер. Да обясни кода си спокойно, ред по ред. Един вид – да погледне някак отстрани на въпроса, да опрости проблема и да го реши.

Стана ви интересно? Програмирането наистина е много „зарибяващо“ занимание, което, освен всичко друго, може да ви осигури и добри доходи. Грабвайте гуменото пате и захващайте курсовете по езика, който ще изберете. После ви чакаме ние с хостинга (за начало дори напълно безплатен!), чрез който да покажете на света на какво сте способни.

<a href="https://www.zettahost.bg/author/georgik/" target="_self">Георги Караманев</a>

Георги Караманев

Георги е журналист, писател и Front-end програмист – част от екипа на ZETTAHOST.bg. Има повече от 15 години опит в подготвянето на публикации на технологична тематика за Списание 8, в. „24 часа“ и други медии. През 2019 г. и 2021 г. получи наградите в категория „Технологии и иновации“ от конкурса на Dir.bg за чиста журналистика Web Report.
Последвайте ни

Най-нови публикации:

Какво е CDN и кога има смисъл да го използваме

Отваряш си сайта и се зарежда на микросекундата. Отваря го някой на другия край на света и… същата работа. Да, бързината е страшно важна онлайн, но нещо такова просто не би трябвало да е възможно?! Нали все пак има физически ограничения за скоростта, с която...

Stack Overflow. Светая светих на програмистите

Пуснете на някой програмист мийм или шегичка, че ако този сайт спре, всички програмисти са обречени. Ще видите, ще ви се посмее. Ама най-често ще се смее плахо и леко притеснено, защото може да се замисли по темата. Ами ако наистина един ден Stack Overflow реши да си...

Като на картинка. Как да намерим най-хубавите безплатни снимки?

Сайтовете се нуждаят от яки снимки, за да привличат гости? Не думай! Обаче търсенето на изображения, които няма да те изправят пред съд, защото си пропуснал бащиното име на автора на една снимка, понякога е предизвикателство. Изображенията много често са обект на...

7 случая, в които най-големите избират WordPress

„WordPress е най-доброто решение за сайта ви, ако тепърва започвате“. Тази манта, може би сте я чували и чели доста често. Особено, ако наистина за вас е дошъл моментът да си направите сайт и избирате най-подходящата технология, чрез която това да се случи. (Ето тук...

По буквите посрещат… Изберете си шрифт!

Време е да си направите сайт? Ако се чудите за хостинга – тук е мястото, където можете да опитате това, което ние предлагаме, съвсем безплатно. Има обаче и толкова много други въпроси, на които трябва да дадете своите отговори. На пръв погледът изборът на подходящи за...

Личен сайт безплатно!

Регистрирай се безплатно и си направи сайт още днес.

Безплатната хостинг услуга на ZETTAHOST.bg няма скрити такси и изисквания за ползване.

Безплатен хостинг

Pin It on Pinterest

Share This