Skelbimas

Be abejo, programavimas yra sunkus. Tai vienas dalykas mokytis kalbų ir mokytis algoritmai, bet tai yra visai kitas žvėris, bandantis užkoduoti sudėtingą veikiančią programą, kuri nereiškia, kad norite atmerkti akis.

Tam tikra prasme gryno kodo rašymas yra panašus į piešimą, maisto gaminimą ar fotografavimą - atrodo lengviau, nei yra iš tikrųjų. Taigi kodėl nerimauti? Na, nes nauda verta:

  • Problemos tampa lengviau išspręstos. Pradėjus galvoti švariu kodu, pasikeičia požiūris į problemų sprendimą. Užuot žiauriai verčiantys sprendimus, jūsų algoritmai ir programinės įrangos dizainas tampa elegantiškesni ir sąmoningesni.
  • Mažiau laiko eikvojama priežiūrai. Švarų kodą lengviau skaityti ir suprasti, todėl jūs praleidžiate mažiau laiko bandydami išsiaiškinti, ką iš tikrųjų daro tam tikri segmentai, ir daugiau laiko skiriate taisymui, peržiūrėjimui, išplėtimui ir pan.
  • Idėjos aiškiau perduodamos. Jei dirbate su kitais programuotojais, švarus kodas sumažina nesusipratimų tarp jūsų tikimybę, o tai reiškia ir mažiau klaidų ilgainiui.
instagram viewer

Štai kaip galite pradėti rašyti švarų kodą.

1. Naudokite aprašomuosius vardus

Kas yra kintamieji, klasės ir funkcijos? Yra daug būdų, kaip į tai atsakyti, tačiau kai pagalvoji apie tai, tai nėra kas kita kaip sąsaja tarp programuotojo ir pagrindinės programos logikos.

Taigi kai kintamiesiems, klasėms ir funkcijoms naudojate neaiškius ir neaprašomus pavadinimus, jūs iš esmės suklaidinate programos logiką iš bet kurio programuotojo, kuris skaito kodą, įskaitant save.

„Aš nesu puikus programuotojas; Aš tiesiog geras programuotojas, turintis didelius įpročius “.
- Kentas Beckas

Ką reiškia kintamasis dxy iš tikrųjų reiškia? Kas žino. Tikriausiai turėtumėte perskaityti visą kodo dalį, kad pakeistumėte jo reikšmę. Kita vertus, kintamojo reikšmė kaip distanceBetweenXY yra iškart atpažįstamas.

Tas pats pasakytina apie klases ir funkcijas. Negalima atsiskaityti už „CalcTan“ () kai gali eiti „CalculateTangent“ () arba „CalcTangentAngle“ () vietoj to.

2. Skirkite kiekvienai klasei / funkcijai vieną tikslą

Ar kada nors žvilgčiojai į funkciją, kurios ilgis buvo šimtas ar net tūkstančiai eilučių? Jei turite, tada žinote, koks skausmas gali būti naršymas, supratimas ir redagavimas. Komentarai gali padėti, tačiau tik ribotai.

„Programavimas padalija vieną didelę neįmanomą užduotį į keletą mažų galimų užduočių“.
- Džiazantas

Švarus kodas suskaidomas į atomines dalis. Kiekviena funkcija turėtų būti siekiama padaryti vieną dalyką, o kiekviena klasė turėtų atitikti vieną konkrečią sąvoką. Tai, žinoma, supaprastinimas, tačiau kai kyla abejonių, paprasčiau yra švaresnis.

Praktiškai toks sudėtingas skaičiavimas kaip „GetCreditScore“ () gali tekti suskaidyti į keletą pagalbininkų funkcijų, pvz „GetCreditReports“ (), „ApplyCreditHistoryAge“ ()ir „FilterOutstandingMarks“ ().

3. Ištrinkite nereikalingą kodą

Šis blogas įprotis yra tas, su kuriuo aš vis dar kovoju. Paprastai tai atsitinka taip: noriu ištaisyti arba optimizuoti kodo dalį, todėl komentuoju ją ir perrašau šiek tiek žemiau - ir, nors ji veikia, aš visam atvejui pasilieku seną kodą.

„Ar gali būti, kad programinė įranga nepanaši į nieką kitą, kad ji yra skirta atsisakyti: kad esmė yra visada ją matyti kaip muilo burbulą?“
- Alanas J. Perlis

Laikui bėgant susikaupiau daugybę komentuojamų kodų blokų, kurie nebereikalingi, tačiau netvarkau mano šaltinio failai. Juokinga yra tai, kad daugeliu atvejų aplinkinis kodas pasikeitė, todėl komentuotas kodas neveiks, net jei būtų atkurtas.

Reikalas tas, kad ši „atsarginio kodo“ komentavimo praktika paseno šaltinio kontrolės dėka. Jei nenaudojate kažko panašaus į „Git“ ar „Mercurial“, turite tai padaryti iš karto pradėkite naudoti šaltinio valdymą. Jūsų laukia švaresnis kodas.

Atminkite, kad taip pat svarbu vengti pasikartojančio kodo rašymo, kurį galite lengvai atlikti naudodami žiniatinklio sistemą. Štai keletas žiniatinklio sistemos, kurias verta išmokti kaip kūrėją 5 internetinės sistemos, kurias verta mokytis kūrėjamsNorite išmokti pažangių interneto svetainių kūrimo? Venkite rašyti pasikartojančius kodus, naudodamiesi šiomis interneto plėtros sistemomis. Skaityti daugiau .

4. Perskaitomumas> Protingumas

Per daug programuotojų susieja „švarų kodą“ su „protingu kodu“, tarsi dešimties eilučių sutelkimas į vieną pusę būtų švaresnis. Žinoma, tai užima mažiau vietos ekrane, bet ar iš tikrųjų tai lengviau suprasti? Kartais, galbūt. Bet dažniausiai? Ne.

„Visi žino, kad derinti pirmiausia yra dvigubai sunkiau, nei parašyti programą. Taigi, jei jūs esate toks protingas, koks galite būti rašydamas, kaip jūs jį kada nors derinimo padarysite? “
- Brianas W. Kernighanas

Manau, kad programuotojai mėgsta protingą kodą, nes tai atrodo išspręsta mįslė ar mįslė. Jie rado ypatingą ir unikalų būdą ką nors įgyvendinti - jei norite, „nuorodą“ - ir tai beveik veikia kaip programuotojo įgūdžių patvirtinimas.

Bet norėdami parašyti švarų kodą, turite palikti savo ego prie durų.

Visada optimizuokite kodą kitam asmeniui, kuris jį skaitys, nes greičiausiai yra kitas asmuo iš tikrųjų būsi TU ir nėra nieko gėdingiau už tai, kad negali skaityti ar suprasti savo sumanumas.

5. Laikykitės nuoseklaus kodavimo stiliaus

Aš turiu nieko prieš gerus programavimo vadovus Kas daro gerą programavimo pamoką?Ne visos mokymo programos yra lygios. Kai kurie naudos jums, o kiti eikvoja savo laiką. Štai ko ieškoti kokybės programavimo vadove. Skaityti daugiau , tačiau vienas iš neigiamų aspektų yra tas, kad naujokai pasirenka daugybę prieštaringų įpročių, ypač susijusių su kodavimo stiliumi.

Aš ne čia, norėdamas pareikšti, kad vienas stilius yra geresnis už kitą. Jei norite petnešų savo linijomis, eikite į jas. Jei norite pirmauti prieš metodinius skambučius su tarpais, gerai. Jei jums labiau patinka skirtukai nei tarpai, neleiskite man įtikinti jus kitaip.

Bet kad ir ką darytum, būk nuoseklus!

Graži yra geriau nei negraži.
Aiškus yra geriau nei netiesioginis.
Paprasta yra geriau nei sudėtinga.
Kompleksas yra geriau nei sudėtingas.
Butas yra geriau nei įdėtas.
Retas yra geriau nei tankus.
Skaitomumas yra svarbus.
- Timas Petersas, Python zenas

Jei ketini naudoti „camelCaseNaming“ jei tai kintamieji, neteisk jo apatinis brėžinys. Jei naudojate „GetThisObject“ () vienoje vietoje, nevažiuok su „FetchThatObject“ () kažkur kitur. Jei sumaišysite skirtukus ir tarpus, nusipelnėte, kad atimtumėte klaviatūrą.

Nuspręskite, ką ketinate daryti nuo pat pradžių, ir laikykitės to. Kai kuriose kalbose, pavyzdžiui, „Python“ ir „C #“, yra visos kalbos stiliaus vadovai, kurių galbūt norėsite laikytis.

6. Pasirinkite tinkamą architektūrą

Yra daugybė skirtingų paradigmų ir architektūrų, kurias galite naudoti kurdami savo projektus. Atminkite, kaip šis patarimas yra apie pasirinkimą teisingai vienas jūsų poreikiams, o ne pasirinkimas geriausia vienas ten. Čia nėra „geriausio“.

„Be reikalavimų ir dizaino programavimas yra klaidų pridėjimo prie tuščio tekstinio failo menas.“
- Luisas Sryglis

Pvz., „Model-View-Controller“ (MVC) modelis šiuo metu yra labai populiarus kuriant interneto svetaines, nes jis padeda išlaikyti jūsų kodo struktūrą ir dizainą taip, kad išlaikymas būtų kuo mažesnis.

Panašiai, „Entity-Component-System“ (ECS) modelis šiuo metu yra labai populiarus kuriant žaidimus, nes jis padeda moduliuoti žaidimų duomenis ir logiką taip, kad būtų lengviau prižiūrėti, tuo pačiu sukuriant lengviau pritaikomą kodą skaityti.

7. Įvaldyk kalbos idėjas

Vienas iš sunkumų įsisavinti naują programavimo kalbą 7 naudingi patarimai, kaip įvaldyti naują programavimo kalbąGerai būti priblokštam, kai moki koduoti. Tikriausiai pamiršite dalykus taip greitai, kaip juos išmoksite. Šie patarimai gali padėti geriau išsaugoti visą tą naują informaciją. Skaityti daugiau mokosi niuansų, išskiriančių jį iš visų kitų kalbų. Šie niuansai gali būti skirtumas tarp negražaus, išlenkto kodo ir gražaus, lengvai prižiūrimo kodo.

Apsvarstykite „Python“, „Java“ ir „JavaScript“. Jie visi labai skiriasi vienas nuo kito tiek, kiek reikia skirtingas mąstymo būdas, atsižvelgiant į tai, kurią kalbą pasirinksite naudoti.

„Kalbos, kuri neturi įtakos jūsų mąstymui apie programavimą, neverta žinoti.“
- Alanas J. Perlis

Tuo tarpu „Python“ yra kompaktiškų kodų ir ančių spausdinimas, „Java“ labiau nukreipta į aiškumą ir aiškumą. Kiekviena kalba turi idiomų (pavyzdžiui, sąrašo supratimą „Python“), kurios skatina tam tikrą kodavimo būdą. Jums būtų gerai juos išmokti.

Taip pat reikia nerimauti dėl „anti-modelių“, kurie iš esmės yra neoptimalūs, dėl kurių kodas yra neveiksmingas, nepatikimas ar kitaip netinkamas. Studijuokite ir įsiminkite visus įprastus anti-modelius, susijusius su jūsų pasirinkta kalba.

8. Studijuokite magistrantūros kodeksą

Jei norite parašyti švarų kodą, geriausia, ką galite padaryti, tai pamatyti, kaip atrodo švarus kodas, ir pabandyti suprask, kodėl yra taip, ir nėra geresnio būdo tai padaryti, nei ištyręs šaltinio failus pramonės meistrai.

Akivaizdu, kad jūs galite ne tik užeiti į „Microsoft“ būstinę ir žvalgytis į jų projektus, bet ir visada naršyti žinomus atvirojo kodo projektus Kaip peržiūrėti ir redaguoti atvirojo kodo programos šaltinio kodąNors atvirojo kodo naudojimas gali būti geras pasirinkimas, taip pat turėsite investuoti į tinkamą bendruomenę. „GitHub“ yra viena geriausių vietų tai padaryti ne tik dėl didelio kiekio ... Skaityti daugiau . Nežinai nuo ko pradėti? Išbandykite demonstruojami projektai „Github“.

Bet kuris kvailys gali parašyti kodą, kurį supranta kompiuteris. Geri programuotojai rašo kodą, kurį žmonės gali suprasti. “
- Martinas Fowleris, Refaktoringas: esamo kodo dizaino tobulinimas

Galų gale, tai yra viena iš priežasčių kodėl egzistuoja atvirojo kodo projektai Kodėl žmonės prisideda prie atvirojo kodo projektų?Atvirojo kodo plėtra yra programinės įrangos ateitis. Tai puikiai tinka vartotojams, nes atvirojo kodo programinė įranga paprastai yra nemokama ir dažnai saugesnė naudoti. Bet kas verčia kūrėjus nemokamai įvesti kodą? Skaityti daugiau : kad kiti galėtų iš jų pasimokyti. Ir jei nuspręsite prisidėti prie tokio projekto, tai gali paspartinti mokymosi procesą 5 projekto idėjos, padėsiančios greičiau išmokti programavimoYra keletas būdų, kaip palengvinti programavimo mokymosi kreivę. Nusiplaukite rankas ir mokykitės greičiau naudodamiesi šalutiniais projektais, kuriuos galite pradėti bet kada. Žaisk su šiais penkiais. Skaityti daugiau .

Asmeniškai aš pirmą kartą pamačiau tikrai švarų kodą, kai užkliūvau prie tam tikro mėgėjų atvirojo kodo projekto „Python“. Kodas buvo toks nepaprastai elegantiškas, kad beveik atsisakiau programavimo, bet jis baigė mane daug ko išmokyti.

9. Rašykite gerus komentarus

„Rašyk gerus komentarus“ yra seniausias patarimas programavimo pasaulyje. Tiesą sakant, kai tik naujokai yra supažindinami su komentarais, jie yra gana skatinami komentuoti taip dažnai, kaip gali.

Tačiau beveik atrodo, kad per daug pasukome priešinga kryptimi. Visų pirma naujokai yra linkę per daug komentuoti - aprašyti dalykus, kurių nereikia aprašyti, ir trūksta prasmės, kas iš tikrųjų yra „geras komentaras“.

„Visada koduok taip, tarsi vaikinas, kuris galų gale išlaikytų tavo kodą, bus žiaurus psichopatas, žinantis, kur tu gyveni“.
- Johnas Woodsas

Tinkama nykščio taisyklė: yra komentarų, paaiškinančių, kodėl egzistuoja kodo fragmentas, o ne KODAS. Jei kodas parašytas pakankamai aiškiai, jis turėtų aiškiai suprasti, ką jis daro - komentaras turėtų parodyti, kodėl jis buvo parašytas.

Komentarai gali būti naudingi perspėjimams (t. Y. „Pašalinus tai sugadins A, B ir C“), tačiau dažniausiai reikėtų atskleiskite dalykus, kurių negalima iš karto išsiaiškinti iš kodo (t. y. „naudokite šį parametrą, nes X, Y ir Z “).

10. Reaktorius, reaktorius, reaktorius

Kaip ir redagavimas yra rašymo proceso dalis, taip ir reagavimas yra kodavimo proceso dalis. Pasipriešinimas reagavimui yra greičiausias būdas sukurti neišmatuojamą kodą, taigi daugeliu atžvilgių tai iš tikrųjų yra svarbiausias patarimas, į kurį reikia atsižvelgti.

Trumpai tariant, reaktorių reagavimas yra tik išgalvotas kodas, norint išvalyti kodą nepažeidžiant jo tikrojo elgesio.

„Kai turiu galvoti, kad suprastum, kas yra kodas, aš klausiu savęs, ar galiu kodą atgaivinti, kad tas supratimas būtų akivaizdesnis“.
- Martinas Fowleris, Refaktoringas: esamo kodo dizaino tobulinimas

Viena išminties įstrigusi mintis yra posakis: „Nekomentuok blogo kodo. Perrašykite. “ Kaip paaiškino Fowleris aukščiau esančioje citatoje, jei kodas kada nors atrodo pakankamai painus, kad jums reikia jį komentuoti, galbūt jums iš tikrųjų reikia jį sureaguoti.

Be to, redaguodami kodo bitus čia ir ten savo projekto metu, visada palikite kodą geresnės būklės nei tada, kai pirmą kartą jį radote. Šiuo metu tai gali atrodyti nepatogiai, tačiau ilgainiui tai atsipirks (ir netgi gali sustabdyti protinį perdegimą Programavimo perdegimas: kaip susigrąžinti prarastą motyvacijąRašydamas visas tas kodo eilutes gali nustumti fiziškai ir emociškai. Viskas, ko jums reikia norint susikurti, yra supratimas, kad galima atgauti motyvaciją. Skaityti daugiau ).

Visada reikia ką nors naujo išmokti

Programuotojas, kuris mokosi rašyti švarų kodą, yra panašus į romanistą, mokantį rašyti švarią prozą: nėra teisingas būdas tai padaryti per se, tačiau yra daugybė klaidingų būdų tai padaryti, ir tai užtruks metų meistras.

Kai kurie žmonės neturi to, ko reikia galų gale baigti mesti programavimą į gera 6 požymiai, kad jums nesinori būti programuotojuNe visi suprantami kaip programuotojai. Jei nesate visiškai tikri, kad turite būti programuotoju, štai keli ženklai, kurie gali nukreipti jus tinkama linkme. Skaityti daugiau - ir tai gerai, nes yra daugybė kiti šiuolaikiški darbai, kurie nėra susiję su kodavimu Kodavimas tinka ne visiems: 9 technikos darbai, kurių galite gauti be joNebijokite, jei norite būti technikos srities dalimi. Žmonėms, neturintiems kodavimo įgūdžių, yra daugybė darbo vietų! Skaityti daugiau . Tačiau visiems kitiems švarus kodas yra kažkas, ko tikrai verta siekti, net jei ten patekti reikia likusio gyvenimo.

Joelis Lee turi B.S. Kompiuterijos mokslas ir daugiau nei šešerių metų profesinio rašymo patirtis. Jis yra „MakeUseOf“ vyriausiasis redaktorius.