Програмирането е дейност, носеща със себе си подводни камъни. Един от най-определящите моменти в живота на програмиста са първите му сблъсквания с проблеми, които не си е представял, че може да има, и то в такова количество. Осъзнаването на грешката и предприемането на действия за избягването й, или предотвратяването й още в зародиш, са ключови действия за предотвратяването на натрупващите се иначе проблеми.
Без да претендираме за изчерпателност, извадихме няколко от най-важните примери, които описват често допусканите грешки на начинаещите в сферата (а понякога и не толкова начинаещи)
Писане на код без планиране
Авторският код не се създава лесно, и при създаването му, се изисква внимателно обмисляне и разучаване на терена. Задават се въпроси като „това ли е най-ефективният начин?“, „Ще ми свърши ли работа за повече от един елемент в сайта?“, „Ще се счупи ли на мобилна версия?“ … и това е само малка част от тях.
Създаването на код трябва да мине през следните стъпки:
Обмисляне. Проучване. Планиране. Писане. Валидиране. Модифициране.
Колко време е необходимо за всяка от тези стъпки, никой не може да каже със сигурност. Всеки по отделно ще трябва да си създаде навика да отделя правилното количество време, според проекта, който му е зададен.
Както човек трябва да обмисли в главата си едно изречение, преди да го каже, така и при писането на код, трябва да се помисли, преди да се извърши действие, за което може да се съжалява по-нататък. Писането на код е, освен всичко, и още един начин да покажем начинът си на мислене.
„Когато си ядосан, брой до 10, преди да проговориш.
Ако си много ядосан, брой до 100“-Томас Джеферсън
Samer Buna (авторът на статията, която използвахме за някои от примерите) деконструира мисълта на Джеферсън по следния начин:
„ Когато се преглежда код, брой до 10, преди да започнеш да го преработваш.
Ако кодът още не е тестван, брой до 100.“
С други думи, когато се налага преработване на код -например, защото има ъпдейт, и нещо се е счупило, затова трябва да изменим кода така, че вече да изпълнява повече функции – не трябва да се хвърляме с главата напред, импулсивно. Защото това може да доведе само до бъдещи затруднения.
„Два пъти мери, един път режи“ е още един начин за обяснение на думите на Samer – програмирането е повече четене на код, отколкото писане; писането е едва 10-20% от цялото време; затова е важно кодът да е разбираем.
Прекалено планиране преди писането на код
Типичен пример за добри намерения, които водят до обратен ефект, е прекаленото планиране.
Перфектният план не съществува в света на програмирането. Изборът на ориентировъчен план, е понякога по-добър вариант от детайлна схема, която така или иначе ще търпи много промени.
Писането на програма трябва да е адаптивен процес -ще се добавят нови неща, които дори не са обмисляни като възможности в самото начало. Ще се поправят бъгове, които ще трябва да се адаптират към съществуващите промени. И към бъдещите промени, доколкото може да бъде изчислено. За правилното боравене с подобна материя се изисква адаптивност и готовност целият код да се изхвърли в кошчето, ако се налага.
Въпреки, че казахме „прекаленото“ планиране е лош навик, понякога е задължително да се планира няколко стъпки напред. Както ще повтаряме доста в тази статия, трябва да се намери баланс: в случая, между прекалено детайлното планиране, и прекалено сбитото такова. Планирането може да осакати качеството на кода, а качеството на кода не трябва да е нещо, което подлежи на риск.
Четливост на кода
Ако трябва да се спрем на един основен закон при писането на код, той ще е следния: кодът трябва да се разбира. Нечетливият код е отпадък. Отпадък, който не може бъде рециклиран.
Както вече споменахме, качеството на кода е нещо, което не трябва да се подценява. Кодът трябва да се разглежда като инструмент, чрез който се създават нововъведенията. Трябва и да можеш бързо и ясно да обясниш какво си направил. Човекът след теб трябва да се ориентира бързо при четенето на кода.
Да не се отказваш
Ако си прекарал часове наред в това да пишеш код, и в крайна сметка излиза, че всичко трябва да отиде на боклука, често се допуска грешката „ да не се отказваш до края“ – познато на психолозите състояние, което в някои случаи е задължителна част от успеха, но при програмистите може да е фатално. При програмирането, да се проваляш рано и често е един нормален процес, затова трябва да се изгради определена бариера, която позволява на програмиста да расте напред, и да не се вкопчва в старото и познатото.
„ Не се привързвай към кода заради всичките усилия, положени за него. Лошият код трябва да бъде изхвърлен.“
Разваляне на кода
Да кажем, че имаме следната задача – дадена ни е разхвърляна стая, и нашата цел е да сложим един предмет в тази стая. Какво правим?
Най-изкушаващо е да сложим предмета на някоя етажерка, и да затворим вратата.
Но не трябва! По този начин разваляме процеса, защото само допълваме към хаоса, а не предприемаме стъпки към разрешаването му. Правилната постъпка ще е да разчистим стаята – например, ако има дрехи, ги слагаме в гардероба, като преди това създаваме пътека до този гардероб. Това е стъпка към изпълняването на задачата коректно.
(следва продължение)