Реклама

Без сумње, програмирање је тешко. То је једна ствар научите језике и учи алгоритми, али то је сасвим друга звер која покушава да кодира сложену радну апликацију која не тера да искочите очи.

На неки начин писање чистог кода много личи на цртање, кување или фотографирање - изгледа лакше него што заправо јесте. Па зашто се гњавити? Па, јер су користи вредне:

  • Проблеме је лакше решити. Једном када почнете да размишљате у чистом коду, ваш приступ решавању проблема се мења. Уместо решења за форсирање, ваши алгоритми и дизајн софтвера постају елегантнији и наменски.
  • Мање времена се троши на одржавање. Чисти код је лакше читати и разумети, па трошите мање времена покушавајући да схватите шта одређени сегменти заправо раде, а више времена за поправљање, ревизију, проширење итд.
  • Идеје се јасније саопштавају. Ако радите са другим програмерима, чисти код смањује вероватноћу неспоразума међу свима вама, што такође значи и мање грешака на дуже стазе.

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

1. Користите описна имена

Шта су променљиве, класе и функције? На то постоји много начина, али када стварно размислите, те ствари нису ништа друго до сучеље између програмера и основне логике апликације.

Дакле, када користите нејасна и некакривна имена за променљиве, класе и функције, у суштини замењујете логику апликације од било којег програмера који чита код, укључујући себе.

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

Шта значи променљива по имену дки заправо значи? Ко зна. Вероватно ћете морати да прочитате цео комад кода да бисте преиспитали његово значење. Са друге стране, значење променљиве попут дистанцеБет БетвеенКСИ је одмах препознатљив.

Исто важи за класе и функције. Не слажите се ЦалцТан () када можете ићи ЦалцулатеТангент () или ЦалцТангентАнгле () уместо тога.

2. Дајте сваком разреду / функцији једну сврху

Да ли сте икада завирили у функцију која је дугачка стотинама или чак хиљадама? Ако имате, онда знате колико бола може бити прегледавање, разумевање и измена. Коментари могу помоћи, али само у ограниченом степену.

„Програмирање раздваја један велики немогућ задатак на неколико могућих задатака.“
- Јаззвант

Чисти код је подељен на атомске комаде. Свака функција треба да има за циљ једну једину ствар и свака класа треба да представља један одређени концепт. Ово је наравно поједностављење, али када је у недоумици једноставније је чистије.

У пракси сложени израчун попут ГетЦредитСцоре () можда ће бити потребно да се разбије на неколико помоћних функција попут ГетЦредитРепортс (), АпплиЦредитХисториАге (), и ФилтерОутстандингМаркс ().

3. Избришите непотребан код

Ова лоша навика је она са којом се још увек борим. Обично се догађа овако: Желим да поправим или оптимизирам комад кода па га коментаришем и направим преписивање одмах испод њега - и иако ради, задржавам стари код тамо за сваки случај.

"Да ли је могуће да софтвер није попут било чега другог, да се мисли на одбацивање: да је смисао увек бити у њему као сапуница?"
- Алан Ј. Перлис

Временом, нагомилавам читав низ коментарисаних блокова кода који више нису потребни и преплићу се моје изворне датотеке. И смешна је ствар што се у многим случајевима околни код развио тако да коментирани код не би функционисао чак и ако би био враћен.

Ствар је у томе што је ова пракса коментарисања резервног кода застарела контролом извора. Ако не користите нешто попут Гита или Мерцуриал-а, то морате одмах почните да користите контролу извора. Очекује вас чистачки код.

Запамтите, такође је важно избегавати писање понављајућег кода, што можете лако постићи помоћу веб оквира. Ево неколико веб оквира вриједно учења као програмер 5 Веб оквира вреди учења за програмереЗаинтересовани сте за учење напредног веб развоја? Избегавајте да умјесто тога пишете понављајуће кодеусе ове оквире за веб развој. Опширније .

4. Читљивост> Спретност

Превише програмера повезује "чисти код" са "паметним кодом", као да је сажимање десет линија у једну некако чистије. Наравно, заузима мање простора на екрану, али је ли то заправо лакше разумети? Понекад, можда. Али већину времена? Не.

„Сви знају да је уклањање грешака двоструко теже од писања програма. Дакле, ако сте толико паметни као што можете да то напишете, како ћете икада отклонити грешку? "
- Бриан В. Кернигхан

Мислим да програмери воле паметне кодове јер се чини као ријешена загонетка или загонетка. Пронашли су посебан и јединствен начин да нешто примене - „пречицу“ ако хоћете - и то скоро делује као потврда вештина програмера.

Али да бисте написали чисту шифру, свој его морате оставити на вратима.

Увек оптимизујте код за следећу особу која ће је прочитати, јер је по свему судећи следећа особа уствари ћеш то бити ВАС и нема ништа срамотније од тога да не будете у стању да прочитате или не разумијете своје паметност.

5. Задржите доследан стил кодирања

ја имам ништа против добрих туторијала за програмирање Шта је добар водич за програмирање?Нису сви програмски приручници једнаки. Неке користи којима ви и други губите време. Ево шта треба потражити у квалитетном програмском водичу. Опширније , али једна од недостатака је та што новорођенче покупају са прегрштом различитих конфликтних навика, посебно када се односе на стил кодирања.

Нисам овде да изјављујем да је један стил бољи од другог. Ако желите наруквице на њиховим линијама, наставите. Ако желите да претходите позивима метода са размацима, у реду. Ако више волите табове за размаке, не дозволите да вас уверим у супротно.

Али шта год да радите, будите доследни!

Лепо је боље него ружно.
Експлицитна је боља него имплицитна.
Једноставно је и боље него сложено.
Комплекс је бољи него компликован.
Стан је бољи него угнијежђен.
Ријетки су бољи од густих.
Читљивост се рачуна.
- Тим Петерс, Зен Питхона

Ако ћете користити цамелЦасеНаминг за променљиве немојте да је понашате подцртавање_именовања. Ако користиш ГетТхисОбјецт () на једном месту, не идите са тим ФетцхТхатОбјецт () негде другде. А ако мешате табоце и размаке, заслужили сте да вам одузму тастатуру.

Одлучите шта ћете радити од самог почетка и придржавајте се тога. Неки језици, попут Питхон-а и Ц #, имају водиче за све језичке стилове које бисте можда желели да следите.

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

Постоји много различитих парадигми и архитектура које можете користити за креирање пројеката. Имајте на уму како се овај савет односи на избор јел тако један за ваше потребе, а не о одабиру најбоље један тамо. Нема ту "најбољег".

„Без захтева и дизајна, програмирање је вештина додавања грешака у празну текстуалну датотеку.“
- Лоуис Сриглеи

На пример, образац Модел-Виев-Цонтроллер (МВЦ) је тренутно веома популаран у веб развоју јер помаже да се ваш код организује и дизајнира на начин који минимизира напоре у одржавању.

Слично томе, образац Ентити-Цомпонент-Систем (ЕЦС) је веома популаран управо у развоју игара, јер је помаже у модуларизацији података и логике игара на начин што је одржавање лакше, а истовремено ствара и код који је лакши читати.

7. Овладајте језичним идиомима

Једна од потешкоћа у савладавање новог програмског језика 7 корисних трикова за савладавање новог програмског језикаУ реду је бити преоптерећен када учите да шифрирате. Вероватно ћете ствари заборавити чим их научите. Ови савети могу вам помоћи да боље задржите све те нове информације. Опширније је учење нијанси које га раздвајају од свих осталих језика. Ове нијансе могу бити разлика између ружног, испреплетаног кода и прекрасног кода који се лако одржава.

Размотрите Питхон, Јава и ЈаваСцрипт. Сви су они изузетно различити једни од других, у мери која захтева а различит начин размишљања у зависности од тога који језик одлучите да користите.

„Језик који не утиче на начин на који размишљате о програмирању не вреди знати.“
- Алан Ј. Перлис

Док се Питхон односи на компактно куцање кода и патки, Јава је више на страни вербосности и експлицитности. Сваки језик има идиоме (попут разумевања листе на Питхон-у) који подстичу одређени начин кодирања. Било би добро да их научите.

Постоје такође „анти-обрасци“ за које треба да се бринете, а то су у суштини оптимални обрасци дизајна који резултирају неефикасним, непоузданим или на други начин лошим кодом. Проучите и научите све уобичајене анти-обрасце који се односе на ваш језик по избору.

8. Проучите кодекс магистара

Ако желите да напишете чисти код, најбоље што можете да урадите је да видите како изгледа чист код и да то покушате схватите зашто је такав какав јесте - и нема бољег начина за то од проучавања изворних датотека мајстори индустрије

Очигледно је да не можете једноставно ући у седиште компаније Мицрософт и завирити у њихове пројекте, али увек можете прегледавање познатих пројеката отвореног кода Како прегледати и уредити изворни код апликације отвореног кодаДок излазак са отвореним кодом може бити добар избор, такође ћете требати да уложите у праву заједницу. ГитХуб је једно од најбољих места за то, не само због скупих количина ... Опширније . Не знате одакле започети? Пробајте изложени пројекти на Гитхубу.

„Свака будала може написати код који рачунар може да разуме. Добри програмери пишу код који људи могу да разумеју. "
- Мартин Фовлер, Рефацторинг: Побољшање дизајна постојећег кода

Уосталом, и то је један од разлога зашто пројекти отвореног кода постоје Зашто људи доприносе пројектима отвореног кода?Развој отвореног кода је будућност софтвера. Одличан је за кориснике јер је софтвер отвореног кода обично доступан бесплатно и често је сигурнији за употребу. Али шта приморава програмере да бесплатно додају код? Опширније : тако да и други могу учити од њих. А ако одлучите да допринесете таквом пројекту, може убрзати процес учења 5 пројектних идеја које ће вам помоћи да научите брже програмирањеПостоји неколико начина за олакшавање кривуље учења за програмирање. Прљајте руке и брже учите уз споредне пројекте које можете започети у било које вријеме. Играјте се са ових петорица. Опширније .

Лично, први пут кад сам видео заиста чист код је када сам налетео на неки пробни пројекат Питхон-а отвореног кода хобија. Код је био тако елегантно елегантан да сам готово престао с програмирањем, али на крају ме научио много.

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

„Напиши добре коментаре“ најстарији је савет у свету програмирања. У ствари, чим се новаци упознају са коментарима, они их прилично охрабрују да коментаришу онолико често колико могу.

Али замало се осећа као да смо се предалеко окренули у супротном смеру. Новаци су нарочито склони прекомерном коментару - описујући ствари које не треба описивати и пропуштају поанту о томе шта је заправо „добар коментар“.

"Увек кодирајте као да ће тип који заврши у одржавању вашег кода бити насилни психопат који зна где живите."
- Јохн Воодс

Ево доброг правила: коментари постоје како би се објаснило ЗАШТО постоји део кода уместо ШТА код заправо ради. Ако је код написан довољно чисто, требало би да само по себи објашњава шта ради - коментар би требало да баци светло на интенцију зашто је написана.

Коментари могу бити добри за упозорења (тј. „Уклањање овога ће прекинути А, Б и Ц“), али углавном би требало да откријте ствари које се не могу одмах уклонити из кода (тј. „користите овај параметар јер су Кс, И и З ”).

10. Рефацтор, Рефацтор, Рефацтор

Баш као што је уређивање део процеса писања, рефакторинг је део процеса кодирања. Аверзија према рефакторингу најбржи је начин да се на крају ријеши недостижног кода, па је у много чему ово најважнији савјет који треба узети у обзир.

Укратко, рефакторинг је само маштовит термин чишћења кода без утицаја на његово стварно понашање.

„Кад год морам да размислим како бих разумео о чему се ради, постављам питање да ли могу поново да га преобликујем да би то разумевање било очигледније.“
- Мартин Фовлер, Рефацторинг: Побољшање дизајна постојећег кода

Једино мало мудрости која је запела за мном је изрека: „Не коментаришите лош код. Препиши га. “ Као што Фовлер објашњава у горњем цитату, ако се код икада довољно збуњује да бисте га морали коментарисати, можда вам је заправо потребно да га поново направите.

Поред тога, док овде и тамо уређујете делове кода током свог пројекта, увек оставите код у бољем стању него када сте га први пут пронашли. У овом тренутку може се чинити сметња, али дугорочно ће се исплатити (и чак може да спречи ментално изгарање Програмирање сагоревања: како повратити изгубљену мотивацијуПисање свих тих редака кода може се исцрпити физички и емоционално. Све што требате да се вратите је свијест да се мотивација може повратити. Опширније ).

Увек постоји нешто ново за научити

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

Неки немају шта је потребно на крају заувијек напусте програмирање 6 Знакови да не треба бити програмерНису сви решени да постану програмер. Ако нисте сасвим сигурни да сте мислили да будете програмер, ево неких знакова који вас могу усмјерити у правом смјеру. Опширније - и то је у реду јер их има доста други технички послови који не укључују кодирање Кодирање није за свакога: 9 техничких послова које можете добити без његаНе обесхрабрујте ако желите да будете део технолошког поља. Има пуно послова за људе без вештина кодирања! Опширније . Али за све остале, чист код је нешто чему треба апсолутно тежити, чак и ако вам треба тамо остатак живота.

Јоел Лее има Б.С. у области рачунарске науке и преко шест година професионалног писања. Главни је уредник МакеУсеОф-а.