Блог

Гівнокод чи код гівно? Що це за явище і чому всі й постійно пишуть гівнокод

Багато хто з нас чув про це явище — гівнокод, але мало хто може надати йому чітке визначення. А знаєте, чому? 

Бо гівнокод — це ваш код. Усі пишуть гівнокод. Постійно. Щодня. Просто не всі ще це усвідомили. А коли ви це усвідомили, вітаю — ви стали синьйором.

І ви тут такі чекаєте, що я напишу зразу «Жартую. Синьйори не пишуть гівнокод». Нє. Пишуть. Ще й добірний такий. Просто вони це абсолютно чітко й свідомо усвідомлюють. І не корчать із себе снобів, а просто пишуть код, який вирішує задачу і який можна буде підтримувати найближчі пів року-два, до того моменту, коли проєкт стане нахєр нікому не потрібний, або допоки синьйор не звільниться, або не прийде джуніор з палаючими очима і перепише старий некрасівий код на новий і красівий (в уяві джуна).

Якщо коротко, то гівнокод, це код, який:
а) Написаний не вами
б) Написаний вами, але давно
в) Написаний вами й недавно, але ТАК ТРЕБА БУЛО

І абсолютно нічого немає такого в тому, що який то код — гівно. Бо він увесь такий. Чим раніше ви з цим змиритесь, тим легше вам буде жить в цьому буремному світі. А знаєте, чому будь-який код — гівно? Тому що, я вважаю, що найкращий код — це код, який не треба було й писати. А той, який треба було писати, рано чи пізно зіпсується і начне вонять. Просто тому, що плине час, зростають гори, міліють ріки й міняють свої обриси океани.

Процес переписування коду — постійний та невпинний, наче сам час. І лише в моменті нам здається, що роблячи рефакторинг (який по суті є просто процесом переміщення стану вашого коду по бристольській шкалі калу) ми створюємо щось витончене та прекрасне на противагу тому лайну, що лишили по собі попередники, а вам доводиться мучитися. А насправді просто в цей же момент ви стаєте тим самим попередником для поколінь, що прийдуть після вас, і будуть братися за голову «Який **вбень це писав?!».

Тим паче, що це ви будете вигукувати й самі, приблизно вже за місяць від моменту написання коду. І чим більше часу мине, тим більший подив та а**й ви будете відчувати, дивлячись на огидні й неприємні рядочки, і тим більшим буде сором від усвідомлення того, що автор цього гівна — ви.

Не морочте собі сраку через гівнокод, ані свій, ані чужий. Приймайте його існування як даність, бо задача будь-якого коду — щось робить, а не красиво виглядать. Ясне діло, що мають бути рамки, але знову ж таки — ваш код не житиме вічно, і він однозначно не переживе свіжонайнятого трейні, якому дали задачу посунуть кнопку, а він рішив зарефакторить вам пів проєкту.

Тому моя вам порада — перестаньте паритись і замість писати прекрасний код, навчіться вирішувати задачі. Бо ваш неймовірно, сліпуче божественний код нікому на пісюн не впав, якщо ви його виношували три місяці, коли задача робиться за три дні. Видихніть. Вдихніть. Робіть роботу. Живіть життя.

P. S. Допис бажано читати очима, а не дупою. Це так, про всяк випадок.
P. P. S. Якщо вже геть неясно, то текст написано з дещицею сарказму та іронії.
Хто дочитав, подзвоніть в редакцію, ви виграли резінового динозавра.