Справжнє програмування – це нудно


Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.

Гнівається автор блогу Divide By Zero


Програмування є дуже нудним. Це буденне, монотонне заняття, в якому мало місця для здивування. Чи воно хоча б має бути таким! Програмування, звичайно, не завжди нудне і сумне – є його окремі захоплюючі аспекти, в яких Вам доводиться розв’язувати цікаві нестандартні проблеми. Але вони, як правило, все одно супроводжуються величезною кількістю нудних і одноманітних тестів.

 

Багато відомих мені програмістів стверджують зворотне: за їх словами, програмування – це дуже цікаво! Вони стрибають від задачі до задачі, і за ними тягнеться шлейф модного цього тижня фреймворка або технології. Вони нехтують тестами, документацією, і що найстрашніше – реальним розумінням середовища і наявної проблеми. Так от що я хочу таким програмістам сказати: “А не чи не піти Вам до біса?”.

Не сперечаюся, у них може є справжній талант в області розв’язання різного роду проблем, але в результаті вони вирішують не ті питання, пишуть розв’язання, які до задачі мало відносяться, і не залишають жодних “ниточок”, за якими можна прийти до розуміння того, чому рішення вийшло саме таким.

Програмування, по суті, зводиться до наступного алгоритму:

  1. Зрозуміти проблему.
  2. Розв’язати проблему.
  3. Переконатися, що рішення легко підтримувати і розвивати.

Щоб проблему розв’язати, треба поспілкуватися з колегами, задокументувати Ваші наміри і, можливо, застосувати певну методологію, agile, наприклад – вона дозволить швидко перебирати рішення, поки не знайдеться найбільш оптимальне.

І ось після цього Ви проблему вирішуєте – якісно, вивірено. Паралельно з цим Ви не створюєте парочку непомітних проблем на майбутнє. Не підганяєте рішення під те, що подобається Вам зараз, цей інструмент називається “оверінжиніринг”. Щоб в майбутньому Ваше рішення було простіше підтримувати і модернізувати, Ви пишете документацію, тести і робите все це акуратним і зрозумілим для інших. Ось це – професіоналізм.

Уявіть: у Вас раптом щось заболіло в грудях, і Ви пішли до лікаря. Доктор негайно припустив, що для лікування точно підійде потрійне шунтування: “Навіщо щось документувати або витрачати час на базікання? Це ж вражаючий спосіб! Ах, не підходить? Тоді я йду, тому що якби Ви подивилися на моє резюме, то знали б – я роблю потрійні шунтування, як Бог!”.

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

Програмування переповнене всілякими ініціалами і акронімами, так що я придумаю ще один. Ось: TYKD. Розшифровується як “Test, YAGNI, KISS, Document” – “Тестуй, YAGNI, KISS, Документуй”. Так, і тут повно абревіатур, вийшла ціла супер-абревіатура, проте це неважливо. Важливо тут ось що: тестуй; you are’t gonna need it (тобі це не знадобиться); keep it simple stupid (роби речі простіше); документуй. Нудно? Однак саме це є професіоналізмом.


Тим, хто надихнувся матеріалом, буде цікавий наш переклад іншої цікавої замітки  “Чому я (все ще) пишу код?”.

Джерело: Блог Divide By Zero

Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?


Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *