реклама

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

По някакъв начин писането на чист код прилича много на рисуване, готвене или фотография - изглежда по-лесно, отколкото всъщност е. Така че защо да се притеснявам? Е, защото ползите си заслужават:

  • Проблемите стават по-лесни за решаване. След като започнете да мислите с чист код, вашият подход към решаването на проблеми се променя. Вместо груби принудителни решения, алгоритмите ви и софтуерният дизайн стават по-елегантни и умишлени.
  • По-малко се губи време за поддръжка. Чистият код е по-лесен за четене и разбиране, така че отделяте по-малко време, опитвайки се да разберете какво всъщност правят определени сегменти и повече време за фиксиране, ревизиране, разширяване и т.н.
  • По-ясно се предават идеите. Ако работите с други програмисти, чистият код намалява вероятността от недоразумения между всички вас, което също означава по-малко грешки в дългосрочен план.
instagram viewer

Ето как можете да започнете да пишете чист код.

1. Използвайте описателни имена

Какво представляват променливите, класовете и функциите? Има много начини да отговорите на това, но когато наистина мислите за това, тези неща са нищо повече от интерфейса между програмист и основната логика на приложението.

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

„Не съм страхотен програмист; Просто съм добър програмист с големи навици. "
- Кент Бек

Какво означава променлива с име dxy всъщност означава? Кой знае. Вероятно ще трябва да прочетете цялата част от кода, за да обърнете инженерно значението му. От друга страна, значението на променлива като distanceBetweenXY е незабавно разпознаваем.

Същото важи за класовете и функциите. Не се примирявайте CalcTan () когато можете да продължите CalculateTangent () или CalcTangentAngle () вместо.

2. Дайте на всеки клас / функция по една цел

Случвало ли ви се е да надникнете във функция, която беше дълга стотици или дори хиляди редове? Ако имате, тогава знаете колко болка може да бъде да разглеждате, разбирате и редактирате. Коментарите могат да помогнат, но само в ограничена степен.

„Програмирането разбива една голяма невъзможна задача в няколко възможни задачи.“
- Джазуант

Чистият код се разгражда на атомни парчета. Всяка функция трябва да има за цел да направи едно-единствено нещо и всеки клас трябва да се стреми да представлява едно конкретно понятие. Това е опростяване разбира се, но когато се съмнявате, по-просто е по-чисто.

На практика сложно изчисление като GetCreditScore () може да се наложи да се разбият на няколко помощни функции като GetCreditReports (), ApplyCreditHistoryAge (), и FilterOutstandingMarks ().

3. Изтрийте ненужния код

Този лош навик е този, с който все още се боря от време на време. Обикновено се случва така: искам да поправя или оптимизирам парче код, така че го коментирам и правя пренаписване точно под него - и въпреки че работи, запазвам стария код там, за всеки случай.

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

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

Работата е там, че тази практика за коментиране на „резервен код“ беше остаряла от контрола на източника. Ако не използвате нещо като Git или Mercurial, трябва започнете да използвате контрола на източника веднага. Кодът за почистване ви очаква.

Не забравяйте, че е важно също да избягвате да пишете повтарящ се код, който можете лесно да постигнете с уеб рамка. Ето няколко уеб рамки, на които си струва да се научите като програмист 5 Уеб рамки заслужава да се научат за разработчицитеИнтересувате се да научите напреднала уеб разработка? Избягвайте вместо това да пишете повтарящи се кодекси за тези рамки за уеб разработка. Прочетете още .

4. Четене> Умно

Твърде много програмисти свързват „чистия код“ с „умен код“, сякаш компресирането на десет реда в един е по-чисто. Разбира се, заема по-малко място на екрана, но всъщност по-лесно ли е да се разбере? Понякога, може би. Но през повечето време? Не.

„Всички знаят, че отстраняването на грешки е два пъти по-трудно от писането на програма. Така че, ако сте толкова умен, колкото можете да бъдете, когато го пишете, как изобщо ще отстраните грешката си? “
- Брайън У. Kernighan

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

Но за да напишете чист код, трябва да оставите егото си на вратата.

Винаги оптимизирайте кода за следващия човек, който ще го прочете, защото по всяка вероятност е следващият човек всъщност ще бъдете ВАС и няма нищо по-срамно от това да не можете да прочетете или разберете своето интелигентност.

5. Поддържайте последователен стил на кодиране

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

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

Но каквото и да правите, бъдете последователни!

Красивото е по-добре, отколкото грозно.
Изричното е по-добро от неявното.
Простият е по-добър, отколкото сложен.
Комплексът е по-добър, отколкото сложен.
Плоският е по-добър от вложен.
Редкият е по-добър, отколкото гъстият.
Четене на броя.
- Тим Питърс, Дзенът на Питон

Ако ще използвате camelCaseNaming за променливи, не го превъплъщавайте underscore_naming. Ако използвате GetThisObject () на едно място, не отивайте FetchThatObject () някъде другаде. И ако смесвате раздели и интервали, заслужавате да ви отнемат клавиатурата.

Решете какво ще правите от самото начало и се придържайте към него през и през. Някои езици, като Python и C #, имат ръководства за езиков стил, които може да искате да следвате.

6. Изберете правилната архитектура

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

„Без изисквания и дизайн, програмирането е изкуството да добавяте грешки в празен текстов файл.“
- Луис Сригли

Например моделът на Model-View-Controller (MVC) е много популярен в момента в уеб разработката, защото помага да поддържате кода си организиран и проектиран по начин, който минимизира усилията за поддръжка.

По подобен начин моделът на Entity-Component-System (ECS) е много популярен в момента в разработването на игри, защото той помага да модулирате данните и логиката за играта по начин, който улеснява поддържането, като същевременно създавате по-лесен код Прочети.

7. Овладейте идиомите на езика

Една от трудностите при овладяване на нов език за програмиране 7 полезни трика за овладяване на нов език за програмиранеДобре е да бъдете претоварени, когато се научите да кодирате. Вероятно ще забравите нещата толкова бързо, колкото ги научите. Тези съвети могат да ви помогнат да запазите по-добре цялата тази нова информация. Прочетете още научава нюансите, които го отделят от всички останали езици. Тези нюанси могат да бъдат разликата между грозен, объркан код и красив, лесен за поддържане код.

Помислете за Python, Java и JavaScript. Всички те са изключително различни един от друг, до степен, която изисква а различен начин на мислене в зависимост от това кой език сте избрали да използвате.

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

Докато Python се отнася до компактен код и тип патица, Java е по-скоро към страната на многословието и яснотата. Всеки език има идиоми (като разбиране на списъци в Python), които насърчават определен начин на кодиране. Добре ще ги научите.

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

8. Изучавайте Кодекса на магистрите

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

Очевидно не можете просто да влезете в централата на Microsoft и да надникнете в техните проекти, но винаги можете разглеждате добре познати проекти с отворен код Как да прегледате и редактирате изходния код на приложение с отворен кодДокато отиването с отворен код може да бъде добър избор, вие също ще трябва да инвестирате в правилната общност. GitHub е едно от най-добрите места за това, не само заради огромното количество ... Прочетете още . Не знаете откъде да започнете? Опитайте представени проекти на Github.

„Всеки глупак може да напише код, който компютърът може да разбере. Добрите програмисти пишат код, който хората могат да разберат. "
- Мартин Фаулър, Рефакторинг: Подобряване на дизайна на съществуващ код

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

Лично за първи път видях наистина чист код е, когато се натъкнах на проект на отворен код Python с отворен код на определен хобист. Кодът беше толкова невероятно елегантен, че почти напуснах програмирането, но в крайна сметка ме научи на много.

9. Напишете добри коментари

„Пишете добри коментари“ е най-старото съвети в света на програмирането. В действителност, веднага щом новобранците бъдат представени за коментари, те се насърчават да коментират толкова често, колкото могат.

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

„Винаги кодирайте, сякаш човекът, който в крайна сметка поддържа кода ви, е насилствен психопат, който знае къде живеете.“
- Джон Уудс

Ето едно добро правило: коментарите съществуват, за да обяснят ЗАЩО има даден код, а не КАКВО действително прави кодът. Ако кодът е написан достатъчно чисто, трябва да се обясни какво прави - коментарът трябва да хвърли светлина върху намерението, което стои зад него.

Коментарите могат да бъдат полезни за предупреждения (т.е. „премахването на това ще прекъсне A, B и C“), но в по-голямата си част трябва разкрийте неща, които не могат да бъдат незабавно изтрити от кода (т.е. „използвайте този параметър, защото X, Y и Z ").

10. Refactor, Refactor, Refactor

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

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

„Всеки път, когато трябва да се замисля, за да разбера какво прави кодът, се питам дали мога да рефакторирам кода, за да направя това разбиране по-веднага очевидно.“
- Мартин Фаулър, Рефакторинг: Подобряване на дизайна на съществуващ код

Една мъдрост, останала с мен, е поговорката: „Не коментирайте лош код. Препишете го. “ Както Фаулър обяснява в цитата по-горе, ако кодът някога се чувства достатъчно объркващ, че трябва да го коментирате, може би наистина трябва да го префабрикувате.

Освен това, докато редактирате битове код тук и там в целия си проект, винаги оставяйте кода в по-добро състояние, отколкото когато сте го намерили за първи път. В момента може да изглежда като неудобство, но в дългосрочен план ще се изплати (и дори може да спре душевното изгаряне Програмиране изгаряне: Как да възстановим загубената си мотивацияПисането на всички тези редове от код може да се изтощи физически и емоционално. Всичко, което трябва да се възстановите, е осъзнаването, че мотивацията може да бъде възстановена. Прочетете още ).

Винаги има нещо ново за научаване

Програмист, който се учи как да пише чист код, е сходен с романистичния ученик как да пише чиста проза: няма правилният начин сам по себе си, но има много грешни начини да го направите, и ще са необходими години, за да господар.

Някои хора нямат това, което е необходимо и в крайна сметка накрая се откажете от програмирането завинаги 6 признака, че не искате да бъдете програмистНе всеки е изрязан да бъде програмист. Ако не сте напълно сигурни, че имате намерение да бъдете програмист, ето някои признаци, които могат да ви насочат в правилната посока. Прочетете още - и това е добре, защото има много други технически задачи, които не включват кодиране Кодирането не е за всеки: 9 Технически работни места, които можете да получите без негоНе се обезкуражавайте, ако искате да сте част от областта на технологиите. Има много работни места за хора без умения за кодиране! Прочетете още . Но за всички останали, чистият код е нещо, към което си заслужава да се стремите, дори и да отнеме остатъка от живота си, за да стигнете до там.

Джоел Лий има B.S. в областта на компютърните науки и над шест години професионален опит в писането. Той е главен редактор на MakeUseOf.