Den 100% korrekte kodningsstilguide

Faner eller mellemrum? Krøllet bøjle på samme linje eller en ny linje? 80 tegn bredde eller 120?

Kodere elsker at argumentere for denne slags ting. Tabs vs. rumdebatten gjorde endda det til en berømt episode af HBO-showet Silicon Valley .

Nå i denne artikel vil jeg endelig give dig de endelige svar, du søger.

Tidligt i min karriere deltog jeg i alle slags hellige krige. Jeg ville læse en artikel om, hvorfor en bestemt konvention var korrekt, mens en anden var helt forkert. Jeg kom lige deroppe på min høje og mægtige hest og proklamerede for alle, der ville lytte, at de havde forkert, og at jeg havde ret.

Det tog mig år at finde de rigtige svar, men jeg har endelig gjort det, og det viser sig, at svaret er ...

Disse ting betyder ikke noget.

Konsistens betyder noget. Læsbarhed betyder noget. At diskutere og understrege om en konference over en anden betyder ikke noget.

I løbet af de sidste 20+ år har jeg fulgt alle tænkelige tendenser. Jeg har fulgt de forskellige konventioner på forskellige sprog. Intet af det har påvirket min fejltælling eller gjort min kode mere effektiv.

Gør mig ikke forkert, ren og velformateret kode vil være lettere at ændre og vedligeholde over tid, og det er en god ting.

Der er heller ikke noget galt med, at din kode skal se smuk ud. Men alt for ofte bruges dette til at retfærdiggøre, hvad der i det væsentlige koger til udsættelse.

Vi udsætter sådan her, fordi kodning er hård. Ting kan blive komplicerede i en fart, og vi - især de af os, der måske er nye på dette niveau af kompleksitet - kan blive skræmt af denne kompleksitet og blive usikre på vores evne til at tæmme den.

Det er meget mere sikkert at argumentere over trivielle ting. Vores opfattede inkompetence er mindre tilbøjelige til at blive udsat for den måde.

Fænomenerne med at diskutere trivialiteter for at undgå hårde problemer er så almindelige, at der er en række populære teorier, der beskriver det.

En af de mest populære er Parkinsons Triviality-lov, der siger, at medlemmer af en organisation lægger uforholdsmæssigt stor vægt på trivielle spørgsmål.

For at illustrere denne lov brugte Parkinson det fiktive eksempel på et udvalg, hvis opgave det var at godkende planer for et nyt atomkraftværk, men som brugte størstedelen af ​​deres tid på at diskutere, hvilke materialer der skulle bruges til personalets cykelskur. De forsømte det foreslåede design af selve anlægget, hvilket var et langt vigtigere, men også langt mere komplekst spørgsmål.

På grund af henvisningen til et cykelskur i dette kanoniske eksempel, dannede den danske udvikler, Poul-Henning Kamp senere udtrykket "cykelskureffekt" eller blot "cykelskur" for at beskrive det.

Hvis du arbejder med softwareudvikling - og især hvis du hænger sammen med andre kodere på sociale medier - vil du sandsynligvis støde på en eller anden form for cykelskur næsten hver dag.

Hvis du finder dig selv i en usædvanlig heftig debat med dine andre kodere, online eller personligt, er det sandsynligvis også værd at huske Sayres lov ...

"I enhver tvist er følelsesintensiteten omvendt proportional med værdien af ​​de spørgsmål, der står på spil."

Som konsulent hopper jeg fra klient til klient, og hver har deres egne regler og konventioner. Jeg besluttede for længe siden, at den eneste måde for mig at få succes på var at give slip på trivialiteterne og fokusere på de hårde problemer. Når det kommer til kodningsstandarder, tager jeg det, jeg får, og jeg bliver ikke ked af det.

Hvis du tilfældigvis finder dig selv i stand til at vælge din egen stilguide, anbefaler jeg, at du stiller dig selv disse to enkle spørgsmål:

  1. Er der værktøj, der automatisk vil anvende stilreglerne på min kode uden lidt eller ingen indgriben fra mig?
  2. Vedligeholdes og / eller bruges værktøjerne og de underliggende stilarter af velrenommerede organisationer?

Hvis du kan svare “ja” på begge disse spørgsmål, er du klar til at gå. Så simpelt er det.

Her er nogle muligheder, der passer til regningen for nogle af nutidens mere populære websprog:

DotNet-kodeformatering

Java: Google-Java-format

Javascript Standard Style (NB dette er et produktnavn, ikke en faktisk, officiel JavaScript-standard)

PHP kodningsstandarder Fixe r

Python: Googles YAPF

Ruby: Rubocop

Hvis du kunne lide denne artikel, skal du smadre klappikonet nederst i dette indlæg gentagne gange for at hjælpe med at sprede ordet. Og hvis du vil læse flere ting som dette, skal du tilmelde dig mit ugentlige Dev Mastery-nyhedsbrev nedenfor.