Reklāma

Bez šaubām, programmēšana ir sarežģīta. Tā ir viena lieta mācīties valodas un studēt algoritmi, bet tas ir pavisam cits zvērs, kurš mēģina kodēt sarežģītu darba lietojumprogrammu, kas neliecina jums piespiest acis.

Savā ziņā tīra koda rakstīšana ir līdzīga zīmēšanai, ēdiena gatavošanai vai fotografēšanai - tas izskatās vienkāršāk nekā patiesībā. Tad kāpēc uztraukties? Tā kā ieguvumi ir tā vērti:

  • Problēmas kļūst vieglāk atrisināt. Tiklīdz jūs sākat domāt tīrā kodā, mainās jūsu pieeja problēmu risināšanai. Tā vietā, lai piespiestu piespiest risinājumus, jūsu algoritmi un programmatūras dizains kļūst eleganti un tīši.
  • Apkopei tiek tērēts mazāk laika. Tīrs kods ir vieglāk lasāms un saprotams, tāpēc jūs tērējat mazāk laika, mēģinot izdomāt, ko konkrēti segmenti patiesībā dara, un vairāk laika veltāt labošanai, pārskatīšanai, paplašināšanai utt.
  • Idejas tiek izteiktas skaidrāk. Ja strādājat ar citiem programmētājiem, tīrais kods samazina pārpratumu iespējamību starp jums visiem, kas nozīmē arī mazāk kļūdu ilgtermiņā.

Lūk, kā jūs varat sākt rakstīt tīru kodu.

1. Izmantojiet aprakstošos nosaukumus

Kas ir mainīgie, klases un funkcijas? Ir daudzi veidi, kā uz to atbildēt, bet, kad jūs par to domājat, šīs lietas nav nekas cits kā interfeiss starp programmētāju un lietojumprogrammas loģiku.

Tātad, kad mainīgajiem, klasēm un funkcijām izmantojat neskaidrus un neaprakstāmus nosaukumus, jūs būtībā noklusējat lietojumprogrammas loģiku no jebkura programmētāja, kurš nolasa kodu, ieskaitot sevi.

“Es neesmu lielisks programmētājs; Es esmu tikai labs programmētājs ar lieliem ieradumiem. ”
- Kents Bērks

Ko nozīmē mainīgais ar nosaukumu dxy patiesībā nozīmē? Kas zina. Jums, iespējams, būs jāizlasa viss koda fragments, lai mainītu tā nozīmi. No otras puses, tāda mainīgā nozīme kā distanceBetweenXY ir uzreiz atpazīstams.

Tas pats attiecas uz klasēm un funkcijām. Nesamierinieties ar CalcTan () kad jūs varat doties uz CalculateTangent () vai CalcTangentAngle () tā vietā.

2. Dodiet katrai klasei / funkcijai vienu mērķi

Vai jūs kādreiz esat ieraudzījis funkciju, kas bija simtiem vai pat tūkstošiem līniju gara? Ja jums ir, tad jūs zināt, cik daudz sāpju var radīt pārlūkošana, izpratne un rediģēšana. Komentāri var palīdzēt, bet tikai ierobežotā mērā.

“Programmēšana sadala vienu lielu neiespējamu uzdevumu vairākos mazos iespējamos uzdevumos.”
- Džeisvants

Tīrs kods ir sadalīts atomu daļās. Katrai funkcijai jābūt vērstai uz vienas lietas izdarīšanu, un katrai klasei jācenšas attēlot vienu noteiktu jēdzienu. Tas, protams, ir vienkāršojums, bet, ja rodas šaubas, vienkāršāks ir tīrāks.

Praksē tāds sarežģīts aprēķins kā GetCreditScore () iespējams, vajadzēs sadalīt vairākās palīgu funkcijās, piemēram GetCreditReports (), ApplyCreditHistoryAge (), un FilterOutstandingMarks ().

3. Izdzēsiet nevajadzīgo kodu

Šis sliktais ieradums ir tāds, ar kuru es joprojām ik pa laikam cīnos. Parasti tas notiek šādi: es vēlos salabot vai optimizēt koda daļu, tāpēc es to komentēju un pārrakstīšu tieši zem tā - un, kaut arī tas darbojas, es turu veco kodu turpat katram gadījumam.

"Vai ir iespējams, ka programmatūra nav tāda kā kaut kas cits, ka tā ir paredzēta atmešanai: ka visa jēga ir vienmēr redzēt to kā ziepju burbuli?"
- Alans Dž. Perlis

Laika gaitā es uzkrāju ļoti daudz komentētu kodu bloku, kas vairs nav nepieciešami, bet vēl netraucē manus avota failus. Smieklīgi ir tas, ka daudzos gadījumos apkārtējais kods ir attīstījies, tāpēc komentētais kods nedarbosies, pat ja tas tiks atjaunots.

Lieta ir tāda, ka šo “rezerves koda” komentēšanas praksi novecoja avota vadība. Ja jūs neizmantojat kaut ko līdzīgu Git vai Mercurial, jums tas ir jādara sāciet izmantot avota kontroli uzreiz. Tīrāks kods gaida jūs.

Atcerieties, ka ir svarīgi arī izvairīties no atkārtota koda rakstīšanas, ko varat viegli paveikt, izmantojot tīmekļa ietvaru. Šeit ir daži tīmekļa ietvari, kurus vērts mācīties kā izstrādātājiem 5 tīmekļa ietvari, kurus vērts mācīties izstrādātājiemVai vēlaties uzzināt padziļinātu tīmekļa attīstību? Tā vietā neizvairieties no atkārtotas kodu izmantošanas šīm tīmekļa attīstības shēmām. Lasīt vairāk .

4. Lasāmība> Gudrība

Pārāk daudz programmētāju saista “tīru kodu” ar “gudru kodu”, it kā desmit līniju sablīvēšana būtu kaut kā tīrāka. Protams, tas aizņem mazāk vietas ekrānā, bet vai to tiešām ir vieglāk saprast? Dažreiz varbūt. Bet lielāko daļu laika? Nē.

“Visi zina, ka atkļūdošana ir divreiz grūtāka nekā programmas rakstīšana. Tātad, ja jūs esat tik gudrs, cik varat būt, rakstot to, kā jūs to kādreiz atkļūstat? ”
- Braiens V. Kernighan

Es domāju, ka programmētāji mīl gudru kodu, jo tas jūtas kā atrisināta mīkla vai mīkla. Viņi atrada īpašu un unikālu veidu, kā kaut ko īstenot - “saīsni”, ja vēlaties, un tas gandrīz darbojas kā programmētāja prasmju apstiprināšana.

Bet, lai uzrakstītu tīru kodu, jums jāatstāj savs ego pie durvīm.

Vienmēr optimizējiet kodu nākamajai personai, kura to lasīs, jo, ļoti iespējams, ka nākamā persona ir patiesībā būsi TU, un nav nekas apkaunojošāks par nespēju lasīt vai saprast savu apķērība.

5. Saglabājiet konsekventu kodēšanas stilu

Man ir nekas pret labām programmēšanas pamācībām Kas padara labu programmēšanas apmācību?Ne visas programmēšanas konsultācijas ir vienādas. Daži labumi jums, un citi galu galā tērē savu laiku. Lūk, ko meklēt kvalitātes programmēšanas apmācībā. Lasīt vairāk , bet viens no negatīvajiem punktiem ir tas, ka iesācēji galu galā izvēlas visdažādākos konfliktējošos ieradumus, it īpaši, ja tie attiecas uz kodēšanas stilu.

Es neesmu šeit, lai paziņotu, ka viens stils ir labāks par citu. Ja vēlaties, lai breketes būtu savās līnijās, meklējiet to. Ja vēlaties aizstāt metodiskos zvanus ar atstarpēm, labi. Ja dodat priekšroku cilnēm, nevis atstarpēm, neļaujiet man pārliecināt jūs citādi.

Bet lai ko jūs darītu, esiet konsekvents!

Skaisti ir labāk nekā neglīti.
Nepārprotama ir labāka nekā netieša.
Vienkāršs ir labāks nekā sarežģīts.
Komplekss ir labāks nekā sarežģīts.
Dzīvoklis ir labāks nekā ligzdots.
Spades ir labāks nekā blīvs.
Lasāmība ir svarīga.
- Tims Peters, Python Zen

Ja jūs gatavojaties izmantot camelCaseNaming mainīgajiem neveiciet to viltošanu pasvītrojums. Ja jūs izmantojat GetThisObject () vienā vietā neej ar FetchThatObject () kaut kur citur. Ja sajaucat cilnes un atstarpes, esat pelnījis, lai tastatūra tiktu noņemta.

No sākuma izlemiet, ko darīsit, un pieturieties pie tā cauri un cauri. Dažās valodās, piemēram, Python un C #, ir valodas stila rokasgrāmatas, kuras jūs varētu vēlēties ievērot.

6. Izvēlieties pareizo arhitektūru

Ir daudz dažādu paradigmu un arhitektūru, kuras varat izmantot, lai izveidotu savus projektus. Ņemiet vērā, kā šis padoms ir par taisnība viens jūsu vajadzībām, nevis par labākais viens tur. Šeit nav “labāko”.

"Bez prasībām un dizaina programmēšana ir māksla kļūdu pievienošanu tukšam teksta failam."
- Luiss Srīglijs

Piemēram, modelis Model-View-Controller (MVC) šobrīd ir ļoti populārs tīmekļa izstrādē, jo tas palīdz jūsu kodu organizēt un veidot tā, lai samazinātu uzturēšanas centienus.

Līdzīgi, Entity-Component-System (ECS) modelis šobrīd ir ļoti populārs spēles attīstībā, jo tas palīdz modulēt spēles datus un loģiku tādā veidā, kas atvieglo uzturēšanu, vienlaikus radot vieglāk pieejamu kodu lasīt.

7. Apgūstiet valodas idiomas

Viena no grūtībām jaunas programmēšanas valodas apguve 7 noderīgi triki jaunas programmēšanas valodas apguveiIr pareizi satriecties, kad mācāties kodēt. Jūs, iespējams, aizmirsīsit lietas tik ātri, kā jūs tos uzzināsit. Šie padomi var palīdzēt labāk saglabāt visu šo jauno informāciju. Lasīt vairāk mācās nianses, kas to atšķir no visām citām valodām. Šīs nianses var būt atšķirība starp neglītu, izliektu kodu un skaistu, viegli kopjamu kodu.

Apsveriet Python, Java un JavaScript. Viņi visi ir ārkārtīgi atšķirīgi viens no otra, tādā mērā, ka nepieciešams: atšķirīgs domāšanas veids atkarībā no tā, kuru valodu izvēlaties lietot.

“Valodu, kas neietekmē jūsu domāšanu par programmēšanu, nav vērts zināt.”
- Alans Dž. Perlis

Lai gan Python ir saistīts tikai ar kompaktu kodu un pīļu rakstīšanu, Java ir vairāk vērsta uz skaidrību un skaidru pusi. Katrā valodā ir idiomas (piemēram, saraksta izpratne Python), kas veicina noteiktu kodēšanas veidu. Jums būtu labi, ja tos iemācītos.

Ir arī jāuztraucas par “anti-modeļiem”, kas būtībā nav optimāli dizaina modeļi, kuru rezultāts ir neefektīvs, neuzticams vai citādi slikts kods. Izpētiet un apgūstiet visus parastos veidus, kas saistīti ar jūsu izvēlēto valodu.

8. Izpētiet maģistru kodeksu

Ja vēlaties rakstīt tīru kodu, labākais, ko varat darīt, ir redzēt, kā izskatās tīrais kods, un mēģināt to izdarīt saprotiet, kāpēc tas tā ir, un nav labāka veida, kā to izdarīt, nekā izpētot vietnes avota failus nozares meistari.

Acīmredzot jūs varat ne tikai ienākt Microsoft galvenajā mītnē un palūrēt uz viņu projektiem, bet jūs vienmēr varat pārlūkojiet labi zināmus atvērtā koda projektus Kā apskatīt un rediģēt atvērtā koda lietotnes avota koduLai arī atvērtā koda izmantošana varētu būt laba izvēle, jums būs jāiegulda arī pareizajā kopienā. GitHub ir viena no labākajām vietām, kur to izdarīt, ne tikai milzīgā daudzuma dēļ ... Lasīt vairāk . Vai nezināt, kur sākt? Izmēģiniet demonstrēti projekti vietnē Github.

“Ikviens muļķis var rakstīt kodu, ko dators var saprast. Labi programmētāji raksta kodu, ko cilvēki var saprast. ”
- Martins Fowlers, Refaktorēšana: esošā koda dizaina uzlabošana

Galu galā tas ir viens no iemesliem kāpēc pastāv atvērtā pirmkoda projekti Kāpēc cilvēki piedalās atvērtā koda projektos?Atvērtā koda izstrāde ir programmatūras nākotne. Tas ir lieliski piemērots lietotājiem, jo ​​atvērtā pirmkoda programmatūra parasti ir pieejama bez maksas un bieži ir drošāka lietošanai. Bet kas liek izstrādātājiem bez maksas ievadīt kodu? Lasīt vairāk : lai citi no viņiem varētu mācīties. Un, ja jūs nolemjat dot ieguldījumu šādā projektā, tas var paātrināt mācību procesu 5 projekta idejas, kas palīdzēs ātrāk apgūt programmēšanuIr daži veidi, kā atvieglot programmēšanas mācīšanās līkni. Netīriet rokas un ātrāk apgūstiet blakusprojektus, kurus varat sākt jebkurā laikā. Spēlē apkārt ar šiem pieciem. Lasīt vairāk .

Personīgi es pirmo reizi redzēju patiesi tīru kodu, kad paklupu pie kāda hobita atklātā pirmkoda projekta Python. Kods bija tik ļoti elegants, ka es gandrīz atteicos no programmēšanas, bet tas beidza mani daudz mācīt.

9. Rakstiet labus komentārus

“Rakstiet labus komentārus” ir vecākais padoms programmēšanas pasaulē. Faktiski, tiklīdz iesācēji tiek iepazīstināti ar komentāriem, viņi tiek ļoti mudināti komentēt tik bieži, cik vien iespējams.

Bet gandrīz jūtams, ka mēs esam pārāk tālu aizvirzījušies pretējā virzienā. Īpaši iesācējiem ir tendence pārmērīgi komentēt - aprakstīt lietas, kuras nav jāapraksta, un tām trūkst jēgas, kas patiesībā ir “labs komentārs”.

"Vienmēr kodējiet tā, it kā puisis, kurš galu galā uztur jūsu kodu, būs vardarbīgs psihopāts, kurš zina, kur jūs dzīvojat."
- Džons Vuds

Šis ir labs īkšķa noteikums: ir komentāri, kas izskaidro, KĀPĒC pastāv koda gabals, nevis KĀDS patiesībā ir. Ja kods ir uzrakstīts pietiekami tīri, tam būtu pašsaprotami, ko tas dara - komentāram vajadzētu parādīt nodomu, kāpēc tas tika uzrakstīts.

Komentāri var būt noderīgi brīdinājumiem (t.i., “noņemot tos sagraus A, B un C”), bet lielākoties vajadzētu atklājiet lietas, kuras nevar uzreiz novākt no koda (t.i., “izmantojiet šo parametru, jo X, Y un Z ”).

10. Reaktoru, reaktoru, reaktoru

Tāpat kā rediģēšana ir daļa no rakstīšanas procesa, reaktora veidošana ir kodēšanas procesa sastāvdaļa. Nelabvēlība pret reakciju ir ātrākais veids, kā nonākt pie nesagremojama koda, tāpēc tas daudzējādā ziņā faktiski ir vissvarīgākais padoms, kas jāņem vērā.

Īsāk sakot, reaktorreakcija ir tikai izdomāts kods, lai iztīrītu kodu, neietekmējot tā faktisko uzvedību.

"Ikreiz, kad man ir jādomā, lai saprastu, ar ko kods tiek darīts, es sev jautāju, vai es varu atjaunot kodu, lai šī izpratne būtu uzreiz redzamāka."
- Martins Fowlers, Refaktorēšana: esošā koda dizaina uzlabošana

Viena no gudrībām, kas man ir iestrēdzusi, ir teiciens “Nekomentējiet slikto kodu. Pārrakstiet to. ” Kā Fowlers paskaidro iepriekš minētajā citātā, ja kods kādreiz jūtas pietiekami neskaidrs, ka jums tas ir jākomentē, varbūt jums tas tiešām ir jāreaģē.

Turklāt, visā projektā rediģējot koda bitus šeit un tur, vienmēr atstājiet kodu labākā stāvoklī nekā tad, kad pirmo reizi to atradāt. Tas šobrīd var šķist nepatīkams, taču ilgtermiņā tas atmaksāsies (un pat var novērst garīgo izdegšanu Programmu izdegšana: kā atgūt zaudēto motivācijuRakstot visas šīs koda līnijas, var iztukšot fiziski un emocionāli. Viss, kas jums jāsaņem, ir apziņa, ka var atgūt motivāciju. Lasīt vairāk ).

Vienmēr ir kaut kas jauns, ko iemācīties

Programmētājs, kurš mācās rakstīt tīru kodu, ir līdzīgs romānistam, kurš mācās rakstīt tīru prozu: pats par sevi nav pareizs veids, kā to izdarīt, taču ir daudz nepareizu veidu, kā to izdarīt, un būs nepieciešami gadi, lai meistars.

Dažiem cilvēkiem nav tā, kas vajadzīgs un kas vajadzīgs galu galā pārtraucat programmēšanu uz labu 6 pazīmes, ka jūs nevēlaties būt programmētājsNe visi ir izgriezti, lai būtu programmētāji. Ja neesat pilnīgi pārliecināts, ka esat domāts kā programmētājs, šeit ir dažas pazīmes, kas var norādīt jūs pareizajā virzienā. Lasīt vairāk - un tas ir labi, jo to ir daudz citi moderni darbi, kas nav saistīti ar kodēšanu Kodēšana nav paredzēta visiem: 9 tehnikas darbi, kurus varat iegūt bez tāNeuztraucieties, ja vēlaties būt daļa no tehnoloģiju jomas. Cilvēkiem ir daudz darba vietu bez kodēšanas prasmēm! Lasīt vairāk . Bet visiem pārējiem tīrs kods ir kaut kas, uz ko noteikti ir vērts tiekties, pat ja tur nokļūt nepieciešams visu atlikušo dzīvi.

Džoelam Lī ir B.S. datorzinātnēs un vairāk nekā sešu gadu profesionālajā rakstīšanas pieredzē. Viņš ir MakeUseOf galvenais redaktors.