Kuidas valida endale ja teie meeskonnale parimad koodikonventsioonid?

Lõpetage lõputu arutelu

- "Kuulge, need privaatsed muutujad peaksid järgima avalikke!"

- "Pole võimalik! Avalikud muutujad lähevad enne privaatsust! "

- "Küsime Debilt ja las ta otsustab"

- "Oota, miks neid konstante kaamelita pole?"

? ‍♂? ‍♀

Tõstke käsi üles, kui olete varem sellises arutelus sattunud. Ok, ärge tõsta seda, kuid miski ütleb mulle, et mõned teist võisid selles stsenaariumis osaleda üks või kaks korda.

Viimase kümnendi arendajana olen sattunud üsna paljudesse, mõned võivad öelda, et liiga palju arutelusid koodikonventsioonide üle. Need arutelud, nii kasulikud kui nad ka pole, halvenevad mõnikord lõpmatuteks filosoofilisteks segadusteks. Ja siis hakkavad nad liikuma teemadeks alates taandest kuni kaustastruktuurini.

See võib olla valus.

Niisiis, kuidas saate tõeliselt otsustada, milline on parim konventsioon, ja mis veelgi parem, kas parimad konventsioonid üldse eksisteerivad? Panen selle siia välja, et saaksite need filosoofilised segadused lõplikult puhata.

Miks me siis üldse konventsioone vajame?

Selleks, et teha kindlaks, mis on parim konventsioon ja kas neid üldse on, peame kõigepealt mõistma, miks me isegi konventsioone vajame.

Põhjuseid on rohkem kui paar, kuid keskendun kõige olulisemale: loetavusele .

Mis oleks, kui otsustaksin minna üle ainult suurtähtedega kirjutamisele. NAGU SEE, MIS VÕIB KUMMASTADA. Märkate seda kohe ja teie aju hakkab töötlema seda, mis on teistsugune.

Võtke see lihtne näide ja mõelge muutujate nimetamisele või taandele. Kui iga kord, kui naasete koodi juurde ja see oleks kirjutatud teisiti, oleksite justkui alustanud esimesest ruudust. Kuid tavadega kodeerimisel on teie kood paremini mõistetav ja seega loetav, isegi kui see oli kirjutatud kuid tagasi.

See muutub veelgi olulisemaks, kui töötate arendajate meeskonnas, kus igaüks kirjutab oma koodi oma eelistatud kokkuleppega. Üksteise koodi mõistmiseks ja ülevaatamiseks kulutatud aeg võtab… hästi ... saate aru.

Tõhusaks ja kvalitatiivseks koostööks teiste arendajatega peab teil olema ühine kokkulepe.

"Programmid tuleb kirjutada inimestele lugemiseks ja ainult juhuslikult masinate käivitamiseks." - Hal Abelson

Parima koodikonventsiooni valimine

Ükskõik, kas alustasite äsja kodeerimist või olete osa kickass devi meeskonnast või kui olete lihtsalt saanud CTO-ks, kuidas oma koodikonventsioone valida?

Siin on minu juhend parima koodikonventsiooni valimiseks:

  1. Hankige inspiratsiooni imetletud arendusmeeskondadest: miski ei ületa kogemusi ning mõned suurimad ja nutikamad ettevõtted avaldavad oma kodeerimisjuhised. Näiteks avaldas Airbnb oma javascripti ja rubiini stiilijuhised ning Google oma Java ja Pythoni stiilijuhised. Sõltumata sellest, kas need ettevõtted teile meeldivad või mitte, aga kui võtta kokku nende arendajate aastatepikkune kogemus, annab see kokku gazillioni. Proovige mõnda neist ettevõtete stiilijuhistest oma meeskonnale rakendada.
  2. Hankige teadmisi oma eakaaslastelt: meil on õnn olla osa sellisest dünaamilisest kogukonnast. Tegelikult on arendajaks olemise üks suurimaid eeliseid tänapäeval meie kogukond. Ükskõik, kas Slackil, Spectrumil, Discordil või mõnel koostööplatvormil, leiate alati asjatundlikke rühmi, et postitada küsimus koodikonventsioonide kohta ja saada vastuseid kogu maailma arendajatelt koheselt.
  3. Ignoreeri koodinäiteid. Jah, lihtsalt ignoreeri neid. Iga natukese aja tagant komistan koodi, mis kopeeriti / kleebiti Stackoverflow vastusest või muust sarnasest. Inimesed unustavad vahel selle, et äsja kopeeritud koodinäidised kirjutati tõenäoliselt vastusena tehnilisele küsimusele või mõne raamatukogu selgituseks. Enamasti ei tahtnud kirjanik koodikonventsioonidega tegeleda ega olnud aega nendega tegeleda.

Need näpunäited peaksid aitama teil alustada ja võivad olla alused teie arendustiimi koodikonventsioonide tutvustamiseks.

Ja nüüd mõni filosoofia.

Kas "parimad" konventsioonid üldse eksisteerivad?

See sõltub sellest, mida tähendab "parim". Kui Airbnb või Google kasutab teatud kokkulepet või kui kümme erinevat CTO-d ütlesid, et nende konventsioon on parim - kas see tähendab, et see on teie jaoks parim konventsioon?

Pealegi võivad konventsioonid muutuda. Kas midagi, mis aja jooksul muutub, võib kunagi nimetada "parimaks"?

Kui alustasin Lemonade'is ainsa kasutajaliidese arendajana, oli mul raske lugeda koodi, mille eelmine arendaja kirjutas. See võis olla tema jaoks parim konventsioon, kuid mitte minu jaoks. Nii kirjutasin ümber iga koodijupi, mille kallal töötasin oma konventsioonide abil. Aja jooksul liitus meeskonnaga rohkem arendajaid ja meie kokkulepped arenesid.

Iga arendaja oli pärit erineva taustaga, erinevate standardite ja tavadega. Konventsioonide vormistamiseks kasutasime lähtepunktiks Airbnbi javascripti stiilijuhendit. Vaatasime üle selles juhendis olevad kokkulepped ja muutsime või eemaldasime need, millega me ei nõustunud, ja võtsime vastu need, mis meile meeldisid. Võtsime vastu isegi nende endi kogemustest saadud konventsioonid ja integreerisime need oma põhikonventsiooni.

Iga konventsiooni hindamise ja selle vastuvõtmise üle otsustamise protsess mitte ainult ei parandanud koodide loetavust, vaid parandas ka meeskonnatööd. (Täpsemalt sellest tulevases postituses!)

Siin on karm tõde: parimate konventsioonide jaoks pole universaalset määratlust, sest neid lihtsalt pole olemas.

Vastupidiselt sellele, mida teile koolis õpetati, ei ole igale küsimusele alati üks õige vastus. Sellisel juhul võib neid olla palju.

Arendajatel on erinevate või isegi samade asjade rakendamiseks erinevad viisid. Mõned meist eelistavad, et kõigi klassiliikmete nimed algaksid eesliitega 'm_'. Mõni meist soovib kasutada kahte tühikut, teine ​​eelistab vahelehti, mõni võib öelda, et sõna Utilskasutamine klassi nimes on vale. Noh, see on lõputu arutelu, kuid kõigi nende eelistustega kaasnevad head põhjendused.

Päeva lõpuks taandub kõik sellele, milline leping parandab teie koodi loetavust. Milline neist võimaldab teie meeskonnal paremini suhelda, kiiremini ja tõhusamalt edasi liikuda.

Pidage meeles, et koodide kokkulepped on ainult soovitused. Jah, kui olete otsustanud kasutada konventsiooni, peaksite seda järgima. Kuid pidage meeles: need pole kivisse raiutud ja võivad muutuda. Lubage endal katsetada erinevaid tavasid, kuni leiate parima, mis sobib teile ja teie meeskonnale.

Millised on siis parimad koodikonventsioonid? Lihtne - teie!