Sprievodca štýlom správneho kódovania 100%

Karty alebo medzery? Kučeravá zátvorka na rovnakom alebo novom riadku? Šírka 80 znakov alebo 120?

Programátori sa radi hádajú o tomto druhu vecí. Debata medzi kartami a priestormi sa dostala dokonca do slávnej epizódy relácie HBO v Silicon Valley .

V tomto článku vám teda konečne dám definitívne odpovede, ktoré hľadáte.

Na začiatku svojej kariéry som sa zapojil do všetkých druhov svätých vojen. Čítal by som nejaký článok o tom, prečo bol konkrétny dohovor správny, zatiaľ čo iný sa úplne mýlil. Dostal by som sa tam hore na svojom vysokom a mocnom koni a vyhlásil by každému, kto bude počúvať, že sa mýlil, a mal som pravdu.

Trvalo mi roky, kým som našiel správne odpovede, ale nakoniec som to urobil a ukázalo sa, že odpoveď je ...

Na týchto veciach nezáleží.

Na dôslednosti záleží. Na čitateľnosti záleží. Nie je dôležité dohadovať sa a zdôrazňovať jeden dohovor nad iným.

Za posledných 20 a viac rokov som sledoval všetky predstaviteľné trendy. Držal som sa rôznych konvencií v rôznych jazykoch. Nič z toho neovplyvnilo počet mojich chýb ani neprispôsobilo môj kód.

Nechápte ma zle, dobre vyzerajúci a dobre naformátovaný kód sa bude časom ľahšie meniť a udržiavať, a to je dobré.

Tiež nie je nič zlé na tom, ak chcete, aby váš kód vyzeral nádherne. Toto sa však príliš často používa na ospravedlnenie toho, čo sa v podstate spája s prokrastináciou.

Takto otáľame, pretože kódovanie je náročné. Veci sa môžu narýchlo skomplikovať a my - najmä tí z nás, pre ktorých je táto úroveň zložitosti nová - sa môžeme touto zložitosťou zastrašiť a stratiť neistotu ohľadom našej schopnosti skrotiť ju.

Je oveľa bezpečnejšie polemizovať nad malichernými vecami. Je menej pravdepodobné, že takto bude odhalená naša vnímaná nekompetentnosť.

Fenomény diskutovania o maličkostiach, aby sa zabránilo ťažkým problémom, sú také bežné, že ich existuje veľa populárnych teórií.

Jedným z najpopulárnejších je Parkinsonov zákon o triviálnosti, v ktorom sa uvádza, že členovia organizácie prikladajú triviálnym problémom neprimeranú váhu.

Na ilustráciu tohto zákona použil Parkinson fiktívny príklad výboru, ktorého úlohou bolo schvaľovať plány na novú jadrovú elektráreň, ale ktorý sa väčšinu času dohadoval o tom, aké materiály majú byť použité v kôlni pre zamestnancov. Zanedbali navrhovaný dizajn samotného závodu, čo bola oveľa dôležitejšia, ale aj oveľa zložitejšia otázka.

Kvôli odkazu na bicykel, ktorý je v tomto kanonickom príklade uvedený, dánsky vývojár, Poul-Henning Kamp, zaviedol na jeho označenie termín „efekt búdy“ alebo jednoducho „búranie“.

Ak pracujete v oblasti vývoja softvéru - a najmä ak sa stretávate s inými programátormi na sociálnych sieťach - je pravdepodobné, že takmer každý deň narazíte na nejakú formu vylučovania bicyklov.

Ak sa ocitnete v neobvykle búrlivej diskusii s kolegami programátormi, online alebo osobne, pravdepodobne tiež stojí za to spomenúť si na Sayreov zákon ...

"V každom spore je intenzita pocitu nepriamo úmerná hodnote predmetných problémov."

Ako konzultant sa odrážam od klienta k klientovi a každý z nich má svoje vlastné pravidlá a konvencie. Dávno som sa rozhodol, že jediný spôsob, ako uspieť, je opustiť maličkosti a sústrediť sa na ťažké problémy. Pokiaľ ide o štandardy kódovania, beriem to, čo dostanem, a nerozčuľujem sa.

Ak sa vám stane, že si vyberiete svojho vlastného sprievodcu štýlom, odporúčam vám položiť si tieto dve jednoduché otázky:

  1. Existujú nástroje, ktoré automaticky použijú pravidlá štýlu na môj kód bez toho, aby som musel zasahovať?
  2. Sú nástroje a základné štýly aktívne udržiavané a / alebo používané renomovanými organizáciami?

Ak môžete na obidve tieto otázky odpovedať „áno“, môžete vyraziť. Také jednoduché.

Tu je niekoľko možností, ktoré zodpovedajú faktúre pre niektoré z dnes populárnejších webových jazykov:

Formátor kódu DotNet

Java: Google-Java-Format

Javascript Standard Style (Poznámka: toto je názov produktu, nie skutočný, oficiálny štandard JavaScriptu)

Štandardy kódovania PHP Oprava r

Python: YAPF spoločnosti Google

Rubín: Rubocop

Ak sa vám tento článok páčil, opakovane rozbite ikonu tlieskania v dolnej časti tohto príspevku, aby ste tak pomohli šíriť slovo. A ak si chcete prečítať viac takýchto vecí, zaregistrujte sa nižšie v mojom týždennom bulletine Dev Mastery.