Vodič za stil ispravnog kodiranja 100%

Kartice ili razmaci? Kovrčava zagrada na istoj liniji ili nova linija? Širina 80 znakova ili 120?

Koderi se vole svađati oko takvih stvari. Rasprava o karticama i svemirima čak je pretvorila u poznatu epizodu HBO-ove emisije Silicijska dolina .

U ovom članku konačno ću vam dati konačne odgovore koje tražite.

Početkom svoje karijere sudjelovao sam u svim vrstama svetih ratova. Pročitao bih članak o tome zašto je određena konvencija bila točna, dok je drugi potpuno pogrešio. Došao bih točno gore na svom visokom i moćnom konju i objavio svima koji bi slušali da su pogriješili i da sam bio u pravu.

Trebale su mi godine da pronađem prave odgovore, ali napokon sam to učinila i ispostavilo se da je odgovor ...

Te stvari nisu važne.

Dosljednost je bitna. Čitljivost je bitna. Svađa i naglašavanje jedne konvencije oko druge nije važno.

Tijekom posljednjih 20+ godina pratio sam svaki zamislivi trend. Slijedio sam različite konvencije različitih jezika. Ništa od toga nije utjecalo na broj mojih grešaka niti je učinilo moj kod učinkovitijim.

Nemojte me pogrešno shvatiti, čistog izgleda, dobro oblikovan kôd s vremenom će biti lakše mijenjati i održavati, a to je dobra stvar.

Također nema ništa loše u tome da želite da vaš kôd izgleda lijepo. Ali prečesto se to koristi kako bi se opravdalo ono što se u biti svodi na odgađanje.

Ovako odgađamo jer je kodiranje teško. Stvari se mogu na brzinu zakomplicirati i mi - posebno oni koji smo možda novi na ovoj razini složenosti - možemo se uplašiti tom složenošću i postati nesigurni u svoju sposobnost da je ukrotimo.

Mnogo je sigurnije raspravljati se oko trivijalnih stvari. Naša je vjerojatnost da ćemo biti izloženi na taj način manja.

Fenomeni rasprave o trivijalnostima kako bi se izbjegli teški problemi toliko su česti da postoje brojne popularne teorije koje to opisuju.

Jedan od najpopularnijih je Parkinsonov zakon trivijalnosti koji kaže da članovi organizacije daju nerazmjernu težinu trivijalnim pitanjima.

Ilustrirajući ovaj zakon, Parkinson se poslužio izmišljenim primjerom odbora čiji je posao bio odobravanje planova za novu nuklearnu elektranu, ali koji je većinu svog vremena proveo raspravljajući se o tome koji će materijali koristiti za osoblje za bicikle. Zanemarili su predloženi dizajn samog postrojenja, što je bilo daleko važnije, ali i daleko složenije pitanje.

Zbog reference na biciklističku šupu u ovom kanonskom primjeru, danski programer Poul-Henning Kamp kasnije je smislio termin "efekt prolijevanja bicikla" ili jednostavno "prolijevanje bicikla" da bi ga opisao.

Ako radite na razvoju softvera - a posebno ako se družite s drugim programerima na društvenim mrežama - vjerojatno ćete gotovo svakodnevno naići na neki oblik prolijevanja bicikala.

Ako naiđete na neobično žestoku raspravu sa svojim kolegama, internetskim ili osobnim, vjerojatno se vrijedi prisjetiti i Sayreova zakona ...

"U bilo kojem je sporu intenzitet osjećaja obrnuto proporcionalan vrijednosti spornih problema."

Kao savjetnik prelazim od klijenta do klijenta i svaki ima svoja pravila i konvencije. Davno sam zaključio da je jedini način da uspijem pustiti trivijalnosti i usredotočiti se na teške probleme. Što se tiče standarda kodiranja, uzimam ono što dobijem i ne uzrujavam se.

Ako se slučajno nađete u situaciji da sami odaberete svoj stil vodič, preporučujem da si postavite ova dva jednostavna pitanja:

  1. Postoji li alat koji će automatski primijeniti pravila stila na moj kôd s malo ili nimalo moje intervencije?
  2. Da li se alati i temeljni stilovi aktivno održavaju i / ili koriste ugledne organizacije?

Ako na oba pitanja možete odgovoriti s "da", onda ste spremni. Jednostavno kao to.

Evo nekoliko opcija koje odgovaraju cijeni nekih od danas popularnijih web jezika:

DotNet kod za oblikovanje koda

Java: Google-Java-format

Javascript standardni stil (NB. Ovo je naziv proizvoda, a ne stvarni, službeni JavaScript standard)

Ispravci standarda PHP kodiranja r

Python: Googleov YAPF

Ruby: Rubocop

Ako vam se svidio ovaj članak, više puta razbijte ikonu pljeskanja na dnu ovog posta kako biste pomogli proširiti vijest. A ako želite pročitati još ovakvih stvari, prijavite se za moj tjedni bilten Dev Mastery u nastavku.