10 savjeta za pisanje čistije i bolji kod

  • Edmund Richardson
  • 0
  • 5154
  • 120
Oglas

Bez sumnje, programiranje je naporno Kako naučiti programirati bez svih stresa Kako naučiti programirati bez ikakvog stresa Možda ste se odlučili baviti programiranjem, bilo za karijeru ili samo kao hobi. Sjajno! Ali možda se počinjete osjećati preplavljeno. Nije tako sjajno. Evo pomoći da vam olakša putovanje. , Jedna je stvar učiti jezike i proučavati algoritme, ali to je posve druga zvijer koja pokušava kodirati složenu radnu aplikaciju zbog koje ne želite stisnuti oči.

Na neki način pisanje čistog koda uvelike podsjeća na crtanje, kuhanje ili fotografiranje sreća. Evo nekoliko kreativnih hobija za koje dokazano pomažu na ovaj način. - izgleda lakše nego što zapravo jest. Pa zašto se gnjaviti? Pa, jer su prednosti koje vrijede:

  • Problemi se lakše rješavaju. Jednom kada počnete razmišljati u čistom kodu, mijenja se i vaš pristup rješavanju problema. Umjesto brzih rješenja, vaši algoritmi i dizajn softvera postaju elegantniji i intencionalniji.
  • Manje vremena se troši na održavanje. Čisti kôd je lakše čitati i razumjeti, tako da trošite manje vremena pokušavajući shvatiti što određeni segmenti zapravo rade, a više vremena za popravljanje, reviziju, produljenje, itd..
  • Ideje se jasnije saopštavaju. Ako radite s drugim programerima, čisti kôd smanjuje vjerojatnost nesporazuma među svima vama, što također znači i manje pogrešaka na duže staze..

Evo kako možete započeti s pisanjem čistog koda.

1. Koristite opisna imena

Što su varijable, klase i funkcije? Na to postoji mnogo načina, ali kada stvarno razmislite, te stvari nisu ništa drugo do sučelje programera i logike aplikacije na kojoj se temelji.

Pa kad koristite nejasna i nenapisana imena za varijable, klase i funkcije, u osnovi zamračujete logiku aplikacije od bilo kojeg programera koji čita kôd, uključujući sebe.

“Nisam sjajan programer; Ja sam samo dobar programer s velikim navikama.”
- Kent Beck

Što znači varijabla s imenom dxy zapravo znači? Tko zna. Vjerojatno ćete morati pročitati čitav komad koda da biste inženjeru preokrenuli njegovo značenje. S druge strane, značenje varijable poput distanceBetweenXY odmah je prepoznatljiv.

Isto vrijedi i za klase i funkcije. Ne slažite se CalcTan () kad možete ići CalculateTangent () ili CalcTangentAngle () umjesto.

2. Dajte svakom razredu / funkciji jednu svrhu

Jeste li ikada zavirili u funkciju dugu stotinu ili čak tisuće linija? Ako imate, onda znate koliko boli može pregledavati, razumjeti i uređivati. Komentari mogu pomoći, ali samo u ograničenom stupnju.

“Programiranje razbija jedan veliki nemoguć zadatak na nekoliko mogućih zadataka.”
- Jazzwant

Čisti kod razgrađuje se na atomske komade. Svaka funkcija treba imati za cilj napraviti jednu jedinu stvar, a svaki razred treba imati za cilj predstavljati jedan određeni koncept. Ovo je naravno pojednostavljenje, ali kad je u nedoumici, jednostavnije je čistije.

U praksi složeni izračun poput GetCreditScore () možda treba razbiti na nekoliko pomoćnih funkcija poput GetCreditReports (), ApplyCreditHistoryAge (), i FilterOutstandingMarks ().

3. Izbrišite nepotreban kôd

Ova loša navika jedna je s kojom se još uvijek borim s vremena na vrijeme. Obično se događa ovako: Želim popraviti ili optimizirati komad koda, pa ga komentiram i napravim prepisivanje odmah ispod njega - i iako radi, zadržavam stari kod tamo za svaki slučaj.

“Je li moguće da softver nije poput bilo čega drugog, da je namijenjen odbacivanju: da je smisao uvijek u tome da ga uvijek vidimo kao mjehurić sapuna?”
- Alan J. Perlis

S vremenom nagomilam čitav niz komentiranih blokova koda koji više nisu potrebni i skupljaju se moje izvorne datoteke. I smiješna je stvar što se u mnogim slučajevima okolni kôd razvio tako da komentirani kôd ne bi djelovao čak i ako se obnovi.

Stvar je u toj praksi komentiranja “rezervni kod” izvršena je zastarjelom kontrolom izvora. Ako ne upotrebljavate nešto poput Gita ili Mercurial-a, odmah trebate započeti koristiti kontrolu izvora Što je Git i zašto biste trebali koristiti kontrolu verzije Ako ste programer Što je Git i zašto biste trebali koristiti kontrolu nad verzijama ako ' re Razvojni programer Kao web programeri, puno vremena radimo na lokalnim razvojnim mjestima, a zatim samo prenosimo sve kad završimo. To je u redu kad ste samo vi, a promjene su male,… Očekuje vas čistač koda.

4. Čitljivost> Spretnost

Previše programera se sukobi “čisti kod” s “pametan kod”, kao da je zbijanje deset linija u jednu nekako čišće. Naravno, zauzima manje prostora na ekranu, ali je li zapravo lakše razumjeti? Ponekad, možda. Ali većinu vremena? Ne.

“Svi znaju da je uklanjanje pogrešaka dvostruko teže od pisanja programa. Dakle, ako ste pametni koliko i kad budete pisali, kako ćete to ikada otkloniti?”
- Brian W. Kernighan

Mislim da programeri vole pametan kod jer se osjeća kao riješena zagonetka ili zagonetka. Pronašli su poseban i jedinstven način da nešto provode - a “prečac” ako hoćete - i gotovo djeluje kao potvrda sposobnosti programera.

Ali da biste napisali čistu šifru, svoj ego morate ostaviti na vratima.

Uvijek optimizirajte kôd za sljedeću osobu koja će ga pročitati, jer po svemu sudeći sljedeća osoba će zapravo biti VAS i nema ništa sramotnije od toga da niste u stanju pročitati ili razumjeti vlastitu pamet..

5. Držite dosljedan stil kodiranja

Nemam ništa protiv dobrih tutorijala o programiranju Što je dobar programski vodič? Što je dobar vodič za programiranje? Nisu svi programski udžbenici jednaki. Neki profitiraju i vi i drugi, gubite vrijeme. Evo što potražiti u kvalitetnom programskom vodiču. , ali jedna od nedostataka je ta što novorođenče pokupaju sa preuzimanjem velikog broja različitih sukobljenih navika, pogotovo ako se odnose na stil kodiranja..

Nisam ovdje da izjavljujem da je jedan stil bolji od drugog. Ako želite narukvice na njihovim vlastitim linijama, idite na to. Ako želite prethoditi pozivima metoda s razmacima, u redu. Ako više volite tabove za razmake, ne dopustite da vas uvjerim u suprotno.

Ali što god radili, budite dosljedni!

Lijepa je bolja nego ružna.
Eksplicitna je bolja nego implicitna.
Jednostavno je bolje nego složeno.
Kompleks je bolji nego kompliciran.
Stan je bolji nego ugniježđen.
Rijetki su bolji od gustih.
Čitljivost se računa.
- Tim Peters, Zen Pythona

Ako ćeš koristiti camelCaseNaming za varijable nemojte preljubiti underscore_naming. Ako koristite GetThisObject () ni na jednom mjestu, nemoj ići FetchThatObject () negdje drugdje. A ako miješate jezičke i razmake, zaslužili ste da vam se oduzme tipkovnica.

Odlučite što ćete raditi od samog početka i držite se toga kroz i kroz. Neki jezici, poput Pythona i C #, sadrže vodiče za sve jezične stilove koje možda želite slijediti.

6. Odaberite ispravnu arhitekturu

Postoji mnogo različitih paradigmi i arhitektura koje možete koristiti za izradu svojih projekata. Imajte na umu kako se ovaj savjet odnosi na odabir pravo jedan za vaše potrebe, a ne o odabiru najbolje jedan tamo. Ne postoji “najbolje” ovdje.

“Bez zahtjeva i dizajna, programiranje je umjetnost dodavanja pogrešaka u praznu tekstualnu datoteku.”
- Louis Srygley

Na primjer, obrazac Model-View-Controller (MVC) trenutno je vrlo popularan u web razvoju jer pomaže u održavanju koda organiziranim i dizajniranim na način koji minimizira napore u održavanju..

Slično tome, obrazac Entity-Component-System (ECS) vrlo je popularan upravo u razvoju igara jer pomaže u modularizaciji podataka o igri i logici na način koji olakšava održavanje, a istovremeno stvara kôd koji je lakši za čitanje.

7. Ovladajte jezičnim idiomima

Jedna od poteškoća u ovladavanju novim programskim jezikom 7 Korisni trikovi za savladavanje novog jezika programiranja 7 Korisni trikovi za savladavanje novog jezika programiranja U redu je biti preopterećen kada učite kodirati. Vjerojatno ćete zaboraviti stvari čim ih naučite. Ovi savjeti mogu vam pomoći da bolje zadržite sve te nove informacije. uči nijanse koje ga odvajaju od svih ostalih jezika. Te nijanse mogu biti razlika između ružnog, zbunjenog koda i lijepog, lako održavajućeg koda.

Razmotrite Python, Java i JavaScript. Svi su oni međusobno iznimno različiti, do te mjere da zahtijevaju diplomu različit način razmišljanja ovisno o tome koji jezik odlučite koristiti.

“Jezik koji ne utječe na način razmišljanja o programiranju ne vrijedi znati.”
- Alan J. Perlis

Dok Python govori o kompaktnom tipkanju koda i patki, Java je više na strani verbosnosti i eksplicitnosti. Svaki jezik ima idiome (poput poimanja popisa u Python-u) koji potiču određeni način kodiranja. Bilo bi dobro da ih naučite.

Ima ih i “anti-obrasce” o čemu se treba brinuti, koji su u osnovi sub-optimalni obrasci dizajna koji rezultiraju neefikasnim, nepouzdanim ili na drugi način lošim kodom. Proučite i naučite sve uobičajene anti-obrasce povezane s odabranim jezikom.

8. Proučite kodeks magistara

Ako želite napisati čisti kôd, najbolje što možete učiniti je vidjeti kako izgleda čisti kôd i pokušati shvatiti zašto je takav kakav jest - a nema boljeg načina za to nego proučavanjem izvornih datoteka industrije majstori.

Očito je da ne možete samo uskočiti u Microsoftovo sjedište i zaviriti u njihove projekte, ali uvijek možete pregledavati poznate projekte otvorenog koda Kako pogledati i urediti izvorni kod aplikacije otvorenog koda Kako pregledati i urediti izvorni kod Aplikacija s otvorenim kodom Iako bi open source mogao biti dobar izbor, također ćete trebati uložiti u pravu zajednicu. GitHub je jedno od najboljih mjesta za to, ne samo zbog čiste količine ... . Ne znate odakle započeti? Isprobajte predstavljene projekte na Githubu.

“Svaka budala može napisati kôd koji računalo može razumjeti. Dobri programeri pišu kôd koji ljudi mogu razumjeti.”
- Martin Fowler, Refactoring: poboljšanje dizajna postojećeg koda

Napokon, to je jedan od razloga zašto projekti otvorenog koda postoje Zašto ljudi doprinose projektima otvorenog koda? Zašto ljudi sudjeluju u projektima otvorenog koda? Razvoj otvorenog koda budućnost je softvera. Korisnicima je izvrstan jer je softver otvorenog koda obično dostupan besplatno i često je sigurniji za upotrebu. Ali što prisiljava programere da besplatno dodaju kod? : tako da i drugi mogu učiti od njih. A ako odlučite pridonijeti takvom projektu, on može ubrzati proces učenja 5 Projektne ideje koje će vam pomoći da naučite programirati Brže 5 Projektne ideje koje će vam olakšati učenje bržeg programiranja Postoji nekoliko načina kako olakšati krivulju učenja za programiranje. Prljajte ruke i brže učite uz sporedne projekte koje možete započeti bilo kada. Igrajte se s ovih petorica. .

Osobno, prvi put kad sam vidio uistinu čist kôd kad sam naišao na izvjesni hobistički otvoreni izvorni projekt Python. Kod je bio tako neodoljivo elegantan da sam gotovo prestao s programiranjem, ali na kraju me naučio puno.

9. Napišite dobre komentare

“Napišite dobre komentare” najstariji je savjet u programu programiranja. U stvari, čim se u početnike upoznaju komentari, oni se prilično ohrabruju da komentiraju što češće.

Ali gotovo se osjeća kao da smo se predaleko zakretali u suprotnom smjeru. Novaci su naročito skloni prekomjernom komentiranju - opisujući stvari koje ne treba opisivati ​​i propuštaju poantu onoga što “dobar komentar” zapravo jest.

“Uvijek se kodirajte kao da će tip koji završi u održavanju vašeg koda biti nasilni psihopat koji zna gdje živite.”
- John Woods

Evo dobrog pravila: komentari postoje kako bi se objasnilo zašto komad koda postoji umjesto ŠTA kod zapravo postoji. Ako je kôd napisan dovoljno čisto, trebalo bi mu objasniti što čini - komentar bi trebao rasvijetliti namjeru koja stoji iza toga.

Komentari mogu biti dobri za upozorenja (tj. “uklanjajući ovo će slomiti A, B i C”), ali uglavnom bi trebali otkriti stvari koje se ne mogu odmah ukloniti iz koda (tj. “koristite ovaj parametar jer su X, Y i Z”).

10. Refactor, Refactor, Refactor

Baš kao što je uređivanje dio procesa pisanja, refaktoring je dio procesa kodiranja. Averzija prema ponovnom faktoringu najbrži je način da se riješite nedostižnog koda, pa je na mnogo načina ovo najvažniji savjet koji treba uzeti u obzir.

Ukratko, refaktoring je samo maštovit pojam za čišćenje koda bez utjecaja na njegovo stvarno ponašanje.

“Kad god moram razmišljati kako bih razumio o čemu se radi, postavljam si pitanje mogu li ponovno korificirati kôd da bi to razumijevanje bilo očiglednije.”
- Martin Fowler, Refactoring: poboljšanje dizajna postojećeg koda

Jedan dio mudrosti koji je zapeo za mene je izreka, “Ne komentirajte loš kôd. Prepiši.” Kao što Fowler objašnjava u gornjem citatu, ako se kôd ikada dovoljno zbunjuje da biste ga trebali komentirati, možda ga zapravo trebate ponovno prilagoditi.

Nadalje, dok ovdje i tamo u toku projekta uređujete bitove koda, uvijek ostavite kod u boljem stanju nego kad ste ga prvi put pronašli. To se u ovom trenutku može činiti smetnjom, ali dugoročno će se isplatiti (i može čak i spriječiti mentalno izgaranje. Programiranje: Izgaranje: Kako povratiti izgubljenu motivaciju Programiranje: Kako povratiti izgubljenu motivaciju Pisanje svih tih redaka kôd može biti iscrpljen fizički i emocionalno. Sve što trebate da se oporavite jest svijest da se motivacija može vratiti.).

Uvijek se može naučiti nešto novo

Programer koji uči pisati čistu šifru sličan je romanopiscu koji uči pisati čistu prozu: ne postoji pravi način da to učinite, ali postoji puno pogrešnih načina da to učinite, a trebat će godina da savladaju.

Neki ljudi nemaju ono što je potrebno i na kraju završe programiranje zbog dobrih 6 znakova da ne treba biti programer. 6 znakova da ne treba biti programer. Nisu svi sigurni da su programeri. Ako niste sasvim sigurni da ste namijenjeni programeru, evo nekoliko znakova koji vas mogu usmjeriti u pravom smjeru. - i to je u redu, jer postoji dosta drugih tehnički posao koji ne uključuju kodiranje. Kodiranje nije za svakoga: 9 tehničkih poslova koje možete dobiti bez njega. Kodiranje nije za svakoga: 9 tehničkih poslova bez kojih ne možete dobiti " Ne biste se obeshrabrili ako želite biti dio tehničkog područja. Puno je poslova za ljude bez vještina kodiranja! .

Ali za sve ostale, čisti kôd je nešto čemu apsolutno treba težiti, čak i ako vam treba tamo ostatak života.

Koliko vam je važan čisti kod? Koja pravila slijedite da biste održali čist i organiziran kôd? Imate li još kakvih dijelova mudrosti za dijeljenje? Javite nam u komentarima u nastavku!




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.