Reklama
Programovanie je nepochybne ťažké. Je to jedna vec učiť sa jazyky a študovať algoritmy, ale je to celá iná šelma, ktorá sa pokúša kódovať zložitú pracovnú aplikáciu, ktorá vás núti vytrhnúť oči.
V istom zmysle je písanie čistého kódu veľa podobné kresbe, vareniu alebo fotografii - vyzerá to jednoduchšie, ako v skutočnosti je. Tak prečo sa obťažovať? Pretože výhody stoja za to:
- Problémy sa ľahšie riešia. Keď začnete premýšľať v čistom kóde, váš prístup k zmenám v riešení problémov. Namiesto riešenia na hrubé presadenie sa vaše algoritmy a softvérový dizajn stávajú elegantnejšími a úmyselnejšími.
- Na údržbu sa stráca menej času. Čistý kód je ľahšie čitateľný a zrozumiteľnejší, takže trávite menej času pokusom zistiť, čo určité segmenty skutočne robia, a viac času opravovaním, revíziou, rozširovaním atď.
- Myšlienky sú jasnejšie oznamované. Ak pracujete s inými programátormi, čistý kód znižuje pravdepodobnosť nedorozumení medzi vami, čo tiež z dlhodobého hľadiska znamená menej chýb.
Takto môžete začať písať čistý kód.
1. Použite popisné názvy
Čo sú premenné, triedy a funkcie? Existuje veľa spôsobov, ako na to odpovedať, ale keď na to skutočne premýšľate, tieto veci nie sú ničím iným ako rozhraním medzi programátorom a logikou aplikácie.
Ak teda používate nejasné a nepopisné názvy pre premenné, triedy a funkcie, zásadne zakrývate aplikačnú logiku od každého programátora, ktorý číta kód, vrátane vás.
„Nie som skvelý programátor; Som len dobrý programátor so skvelými návykmi. “
- Kent Beck
Čo je premenná pomenovaná DXY
vlastne znamená? Kto vie. Pravdepodobne by ste si museli prečítať celý kúsok kódu, aby ste si mohli prečítať jeho význam. Na druhej strane význam premennej ako distanceBetweenXY
je okamžite rozpoznateľný.
To isté platí pre triedy a funkcie. Neuspokojte sa CalcTan ()
kedy môžete ísť CalculateTangent ()
alebo CalcTangentAngle ()
miesto.
2. Každej triede / funkcii dajte jeden účel
Už ste niekedy nahliadli do funkcie, ktorá bola dlhá stovky alebo dokonca tisíce riadkov? Ak áno, viete, aká veľká bolesť môže byť pri prehliadaní, porozumení a úprave. Komentáre môžu pomôcť, ale iba v obmedzenej miere.
„Programovanie rozdeľuje jednu veľkú nemožnú úlohu na niekoľko malých možných úloh.“
- Jazzwant
Čistý kód je rozdelený na atómové kúsky. Každá funkcia by sa mala zameriavať na jednu vec a každá trieda by sa mala snažiť reprezentovať jeden konkrétny koncept. Toto je samozrejme zjednodušenie, ale v prípade pochybností je jednoduchšie čistejšie.
V praxi je to napríklad zložitý výpočet GetCreditScore ()
môže byť potrebné rozdeliť na niekoľko pomocných funkcií, ako napríklad GetCreditReports ()
, ApplyCreditHistoryAge ()
a FilterOutstandingMarks ()
.
3. Vymažte nepotrebný kód
Tento zlý zvyk je problém, s ktorým stále občas bojujem. Zvyčajne sa to stane takto: Chcem opraviť alebo optimalizovať kúsok kódu, aby som ho okomentoval a prepísal tesne pod ním - a hoci to funguje, starý kód tam ponechám len pre prípad.
„Je možné, že softvér nie je ako čokoľvek iné, že sa má zahodiť: že ide o to, aby sme ho vždy videli ako mydlovú bublinu?“
- Alan J. Perlis
Postupom času som nazhromaždil veľa komentovaných blokov kódu, ktoré už nie sú potrebné, ale neporiadok v zdrojových súboroch. A zábavné je, že v mnohých prípadoch sa okolitý kód vyvinul, takže kód bez komentára by nefungoval, ani keby bol obnovený.
Ide o to, že tento postup komentovania „záložného kódu“ bol riadením zdroja zastaraný. Ak nepoužívate niečo ako Git alebo Mercurial, musíte ihneď začnite používať ovládanie zdroja. Čaká vás čistiaci kód.
Pamätajte, že je tiež dôležité vyhnúť sa písaniu opakovaného kódu, ktorý môžete ľahko dosiahnuť pomocou webového rámca. Tu je niekoľko webové rámce, ktoré sa oplatí učiť ako vývojár 5 webových rámcov stojí za to sa učiť pre vývojárovMáte záujem naučiť sa pokročilý vývoj webových aplikácií? Nepoužívajte opakujúce sa kódovanie týchto rámcov vývoja webových stránok. Čítaj viac .
4. Čitateľnosť> Rozumnosť
Príliš veľa programátorov spája „čistý kód“ s „dômyselným kódom“, akoby bolo skombinovanie desiatich riadkov do jedného čistejšie. Určite to zaberá menej miesta na obrazovke, ale je to vlastne ľahšie pochopiteľné? Niekedy možno. Ale väčšinu času? Nie.
„Každý vie, že ladenie je na prvom mieste dvakrát také ťažké ako písanie programu. Takže ak ste takí chytrí, ako to dokážete, keď to napíšete, ako to vôbec odladíte? “
- Brian W. Kernighan
Myslím, že programátori milujú šikovný kód, pretože to vyzerá ako vyriešená hádanka alebo hádanka. Našli špeciálny a jedinečný spôsob, ako niečo implementovať - ak chcete, skratkou - a funguje takmer ako potvrdenie zručností programátora.
Ale aby ste mohli písať čistý kód, musíte nechať svoje ego pri dverách.
Vždy optimalizujte kód pre ďalšiu osobu, ktorá ju bude čítať, pretože s najväčšou pravdepodobnosťou je ďalšou osobou v skutočnosti to bude VÁS a nie je nič hanebnejšie ako neschopnosť čítať alebo rozumieť svojim vlastným chytrosť.
5. Zachovajte konzistentný štýl kódovania
mám nič proti dobrým programovacím tutoriálom Čo robí dobrý programovací výukový program?Nie všetky programovacie návody sú rovnaké. Niektoré z vás a iných nakoniec stratia čas. Tu je to, čo hľadať v kvalitnom programovacom návode. Čítaj viac , ale jednou z nevýhod je to, že nováčikovia nakoniec vyberú širokú škálu protichodných návykov, najmä pokiaľ ide o štýl kódovania.
Nie som tu, aby som vyhlásil, že jeden štýl je lepší ako iný. Ak chcete rovnátka na svojich vlastných tratiach, choďte na to. Ak chcete predchádzať volaniam s metódami medzerami, dobre. Ak dávate prednosť kartám pred medzerami, nenechajte ma presvedčiť inak.
Ale nech robíte čokoľvek, zostaňte konzistentní!
Krása je lepšia ako škaredá.
Explicitné je lepšie ako implicitné.
Jednoduché je lepšie ako zložité.
Komplex je lepší ako komplikovaný.
Byt je lepší ako vnorený.
Zriedkavé je lepšie ako husté.
Číta sa čitateľnosť.
- Tim Peters, Zen z Pythonu
Ak sa chystáte použiť camelCaseNaming
pokiaľ ide o premenné, neznečisťujte ho underscore_naming
. Ak používate GetThisObject ()
na jednom mieste, nechoď s tým FetchThatObject ()
niekde inde. A ak kombinujete karty a medzery, zaslúžite si, aby bola vaša klávesnica odstránená.
Rozhodnite sa, čo budete robiť od začiatku, a držte sa ho skrz a skrz. Niektoré jazyky, napríklad Python a C #, majú sprievodcov štýlom v celom jazyku, ktorý by ste mohli chcieť sledovať.
6. Vyberte správnu architektúru
Existuje mnoho rôznych paradigiem a architektúr, ktoré môžete použiť na vytvorenie svojich projektov. Všimnite si, ako tento tip je o výbere správny jeden pre vaše potreby, nie o výbere najlepší jeden tam. Nie je tu „najlepšie“.
„Bez požiadaviek a dizajnu je programovanie umením pridávať chyby do prázdneho textového súboru.“
- Louis Srygley
Napríklad vzor Model-View-Controller (MVC) je v súčasnosti vo vývoji webových aplikácií veľmi populárny, pretože pomáha udržiavať kód usporiadaný a navrhnutý tak, aby sa minimalizovalo úsilie na údržbu.
Podobne vzorec Entity-Component-System (ECS) je práve teraz vo vývoji hier veľmi populárny, pretože je pomáha modularizovať herné údaje a logiku spôsobom, ktorý uľahčuje údržbu, a to všetko pri súčasnom vytváraní ľahšie dostupného kódu čítať.
7. Zvládnite jazykové idiómy
Jedným z problémov v zvládnutie nového programovacieho jazyka 7 užitočných trikov na zvládnutie nového programovacieho jazykaKeď sa učíte kódovať, je to v poriadku. Pravdepodobne zabudnete na veci tak rýchlo, ako sa ich naučíte. Tieto tipy vám môžu pomôcť lepšie si uchovať všetky tieto nové informácie. Čítaj viac sa učia nuansy, ktoré ho oddeľujú od všetkých ostatných jazykov. Tieto nuansy môžu byť rozdielom medzi škaredým, stočeným kódom a krásnym a ľahko udržiavateľným kódom.
Zvážte Python, Java a JavaScript. Všetci sa navzájom veľmi líšia do tej miery, že to vyžaduje iný spôsob myslenia v závislosti od jazyka, ktorý sa rozhodnete používať.
„Jazyk, ktorý nemá vplyv na spôsob, akým si myslíte o programovaní, nestojí za to poznať.“
- Alan J. Perlis
Zatiaľ čo Python je o kompaktnom kóde a písaní kačíc, Java je skôr na strane výrečnosti a jednoznačnosti. Každý jazyk má idiómy (ako sú napríklad zoznamy v Pythone), ktoré podporujú určitý spôsob kódovania. Mali by ste sa ich naučiť.
Existujú tiež „anti-vzory“, o ktoré sa treba starať, čo sú v podstate suboptimálne vzory, ktoré vedú k neefektívnemu, nespoľahlivému alebo inak zlému kódu. Študujte a odhaľte všetky bežné anti-vzory týkajúce sa vášho jazyka výberu.
8. Preštudujte si Kódex majstrov
Ak chcete písať čistý kód, najlepšie môžete urobiť, aby ste videli, ako čistý kód vyzerá a skúste to pochopiť, prečo to tak je - a neexistuje lepší spôsob, ako to urobiť, ak si neštudujete zdrojové súbory majstri priemyslu.
Je zrejmé, že sa nemôžete len dostať do sídla spoločnosti Microsoft a pozerať sa na ich projekty, ale vždy môžete prezerať známe open-source projekty Ako zobraziť a upraviť zdrojový kód aplikácie s otvoreným zdrojomHoci otvorený zdroj môže byť dobrou voľbou, musíte investovať aj do správnej komunity. GitHub je jedným z najlepších miest na to, a to nielen kvôli samotnému množstvu ... Čítaj viac . Neviete, kde začať? Vyskúšajte predstavené projekty na Github.
„Každý blázon môže napísať kód, ktorému počítač dokáže porozumieť. Dobrý programátori napíšu kód, ktorému ľudia rozumejú. ““
- Martin Fowler, Refaktoring: Zlepšenie návrhu existujúceho kódexu
Koniec koncov, to je jeden z dôvodov prečo existujú open-source projekty Prečo ľudia prispievajú k projektom s otvoreným zdrojovým kódom?Vývoj otvoreného zdroja je budúcnosť softvéru. Je to skvelé pre používateľov, pretože softvér s otvoreným zdrojovým kódom je zvyčajne k dispozícii zadarmo a často sa používa bezpečnejšie. Čo však núti vývojárov, aby prispievali kódom zadarmo? Čítaj viac : aby sa od nich mohli ostatní učiť. A ak sa rozhodnete prispieť k takémuto projektu, môže to urýchliť proces učenia 5 nápadov na projekty, ktoré vám pomôžu naučiť sa rýchlejšie programovaťExistuje niekoľko spôsobov, ako uľahčiť učenie sa pri programovaní. Znečistite si ruky a učte sa rýchlejšie pomocou vedľajších projektov, ktoré môžete začať kedykoľvek. Hrať si s týmito piatimi. Čítaj viac .
Osobne som prvýkrát, keď som videl skutočne čistý kód, narazil na otvorený Pythonov projekt s otvoreným zdrojom. Kód bol tak elegantný, že som skoro ukončil programovanie, ale nakoniec ma to veľa naučilo.
9. Napíšte dobré komentáre
„Napíšte dobré komentáre“ je najstaršia rada v oblasti programovania. Hneď ako sa začiatočníci dostanú do komentárov, veľmi sa odporúča, aby komentovali tak často, ako môžu.
Zdá sa však, že sme sa prehnali príliš ďaleko opačným smerom. Najmä nováčikovia majú tendenciu nadmerne komentovať - opisujú veci, ktoré nemusia byť opísané, a chýba im bod toho, čo je „dobrý komentár“.
"Vždy kód, ako keby ten, kto skončí s udržiavaním svojho kódu, bude násilný psychopat, ktorý vie, kde žiješ."
- John Woods
Toto je dobré pravidlo: existujú komentáre, ktoré vysvetľujú, PREČO určitý kus kódu existuje, a nie ČO kód skutočne robí. Ak je kód napísaný dostatočne čisto, malo by to samovysvetľovať, čo robí - komentár by mal objasniť zámer, pre ktorý bol napísaný.
Komentáre môžu byť dobré pre varovania (t. J. „Odstránením sa zrušia A, B a C“), ale z väčšej časti by mali odkryte veci, ktoré z kódu nie je možné okamžite získať (t. j. „použite tento parameter, pretože X, Y a Z ").
10. Refaktor, Refaktor, Refaktor
Rovnako ako editácia je súčasťou procesu písania, refaktoring je súčasťou procesu kódovania. Averzia k refaktoringu je najrýchlejší spôsob, ako skončiť s neudržateľným kódom, takže v mnohých ohľadoch je to v skutočnosti najdôležitejší tip, ktorý treba zvážiť.
Stručne povedané, refaktoring je iba vymyslený termín na vyčistenie kódu bez toho, aby to ovplyvnilo jeho skutočné správanie.
"Kedykoľvek musím premýšľať, aby som pochopil, čo kód robí, pýtam sa sám seba, či dokážem tento kód zmeniť, aby bolo toto porozumenie okamžite zrejmé."
- Martin Fowler, Refaktoring: Zlepšenie návrhu existujúceho kódexu
Trochu múdrosti, ktorá ma uchvátila, je príslovie: „Nepripomínaj zlý kód. Prepíš to. “ Ako Fowler vysvetľuje v citácii vyššie, ak sa kód niekedy cíti dosť mätúci, že ho potrebujete komentovať, možno ho musíte skutočne zmeniť.
Okrem toho, keď počas projektu upravujete kúsky kódu, kód vždy ponechajte v lepšom stave, ako keď ste ho prvýkrát našli. Môže sa to zdať ako nepríjemnosť, ale z dlhodobého hľadiska sa vyplatí (a dokonca môže zabrániť duševnému vyhoreniu Programovanie vyhorenia: Ako znovu získať stratenú motiváciuPísanie všetkých týchto riadkov kódu môže byť vyčerpávajúce fyzicky a emocionálne. Všetko, čo potrebujete, aby ste sa dostali späť, je vedomie, že motiváciu možno znovu získať. Čítaj viac ).
Naučiť sa vždy niečo nové
Programátor, ktorý sa učí, ako písať čistý kód, je podobný novinárovi, ktorý sa učí, ako písať čistú prózu: nie je správny spôsob, ako to urobiť samo o sebe, ale existuje veľa nesprávnych spôsobov, ako to urobiť, a bude trvať roky, kým master.
Niektorí ľudia nemajú, čo to znamená a nakoniec skončí ukončenie programovania navždy 6 Známky toho, že nemáte v úmysle stať sa programátoromNie každý je vyrezaný ako programátor. Ak si nie ste úplne istí, či ste programátorom, tu sú niektoré náznaky, ktoré vás môžu nasmerovať správnym smerom. Čítaj viac - a to je v poriadku, pretože ich je veľa iné technické úlohy, ktoré nezahŕňajú kódovanie Kódovanie nie je pre každého: 9 technických pracovných miest, ktoré môžete získať bez tohto riešeniaNenechajte sa odradiť, ak chcete byť súčasťou technickej oblasti. Existuje veľa pracovných miest pre ľudí bez kódovacích schopností! Čítaj viac . Ale pre všetkých ostatných je čistý kód niečo, čo stojí za to sa snažiť, aj keď sa doňho dostanete po zvyšok života.
Joel Lee má titul B.S. v odbore informatiky a viac ako šesť rokov odbornej praxe v písaní. Je šéfredaktorom organizácie MakeUseOf.