Hogyan válasszuk ki a legjobb kódmegállapításokat az Ön és csapata számára

Vessen véget a soha véget nem érő vitának

- "Figyeljen, azoknak a magánváltozóknak a nyilvánosak után kellene menniük!"

- "Semmiképpen! A nyilvános változók a privátok elé kerülnek! ”

- "Kérdezzük Debet, és hagyjuk, hogy ő döntsön"

- "Várj, miért nem tevésednek ezek az állandók?"

? ‍♂? ‍♀

Emelje fel a kezét, ha már korábban ilyen vitában találta magát. Ok, ne igazán emeld meg, de valami azt mondja nekem, hogy néhányan részt vehettek ebben a forgatókönyvben egyszer-kétszer.

Fejlesztőként az elmúlt évtizedben jó néhány, esetleg túl soknak mondható vitában találtam magam a kódegyezményekről. Ezek a viták, bármennyire hasznosak is, néha véget nem érő filozófiai tülekedésekké romlanak. Aztán elkezdődnek a témák, kezdve a behúzástól a mappastruktúráig.

Fájdalmas lehet.

Tehát, hogyan döntheti el igazán, mi a legjobb egyezmény, és még jobb, hogy a legjobb egyezmények még léteznek is? Ide rakom ki, hogy egyszer és mindenkorra nyugodtan nyugodhassa azokat a filozófiai kavargásokat.

Akkor miért is van szükségünk egyezményekre?

Annak megállapításához, hogy mi a legjobb egyezmény, és hogy léteznek-e, először meg kell értenünk, miért is van szükségünk egyezményekre.

Több ok is van, de a legfontosabbra fogok koncentrálni: az olvashatóságra .

Mi lenne, ha úgy döntenék, hogy csak nagybetűs írásra váltok. HOGYAN EZEK, AMELYEK IDEGENNEK tűnhetnek. Azonnal észreveszed, és az agyad elkezd feldolgozni a mást.

Vegyük ezt az egyszerű példát, és gondolkodjunk a változó elnevezésén vagy behúzásán. Ha minden alkalommal, amikor visszatér a kódhoz, és azt másképp írják, akkor olyan lenne, mintha az első négyzetből indulna ki. De konvenciókkal történő kódoláskor a kódod könnyebben érthető, és így olvasható, még akkor is, ha hónapokkal ezelőtt írták.

Ez még fontosabbá válik, ha egy fejlesztői csapatnál dolgoznak, ahol mindegyik a saját kódját írja meg a preferált konvencióval. Az egymás kódjának megértésére és felülvizsgálatára fordított idő… jól fog érteni.

A hatékony és minőségi együttműködéshez más fejlesztőkkel közös konvencióval kell rendelkeznie.

"Programokat kell írni az emberek számára az olvasáshoz, és csak mellékesen a gépek végrehajtásához." - Hal Abelson

Hogyan válasszuk ki a legjobb kódmegállapodást

Akár most kezdte a kódolást, akár egy kickass dev csapat tagja, vagy ha épp CTO lett, hogyan választhatja ki a kódegyezményeket?

Itt található az útmutató a legjobb kódmegállapodás kiválasztásához:

  1. Merítsen ihletet a csodált fejlesztői csapatoktól: Semmi sem múlja felül a tapasztalatokat, és a legnagyobb és legokosabb vállalatok egy része közzéteszi kódolási irányelveit. Például az Airbnb közzétette javascript és rubin stílusú útmutatóit, a Google pedig saját Java és Python stílus útmutatókat. Akár tetszik ezeknek a cégeknek, akár nem, ha összegzi az összes fejlesztőjük éves tapasztalatát, az gazilliót jelent. Próbáld meg alkalmazni ezeknek a cégeknek a stílusstílusait a saját csapatodban.
  2. Társaiból szerezzen ismereteket: Szerencsénk, hogy egy ilyen dinamikus közösség részesei lehetünk. Valójában a fejlesztői lét egyik legnagyobb előnye a közösségünk. Akár a Slack, akár a Spectrum, a Discord, akár bármelyik kollaborációs platformon, mindig találhat hozzáértő csoportokat, hogy feltegyen egy kérdést a kódmegállapításokról, és azonnal válaszokat kaphasson a fejlesztőktől a világ minden tájáról.
  3. Hagyja figyelmen kívül a kódmintákat. Igen, hagyd figyelmen kívül őket. Hébe-hóba belebotlom egy olyan kódba, amelyet a Stackoverflow válaszából másoltak / illesztettek be, vagy valami hasonlót. Amit az emberek néha elfelejtenek, az az, hogy az imént másolt kódmintákat valószínűleg egy műszaki kérdésre adott válaszként, vagy valamilyen könyvtár magyarázataként írták. Az esetek többségében az író nem akart, és nem is volt ideje foglalkozni a kódexekkel.

Ezeknek a tippeknek segíteniük kell az indulásban, és megalapozhatják a fejlesztői csapat kódexek bevezetését.

És most valami filozófia.

Még léteznek „legjobb” egyezmények?

Ez attól függ, hogy mit jelent a „legjobb”. Ha az Airbnb vagy a Google egy bizonyos egyezményt alkalmaz, vagy ha 10 különböző CTO elmondta, hogy a legjobb a konvenciójuk - ez azt jelenti, hogy ez a legjobb egyezmény az Ön számára?

Sőt, az egyezmények változhatnak. Valamit az idő múlásával változónak lehet-e a „legjobbnak” nevezni?

Amikor a Lemonade-nál kezdtem, mint egyetlen front-end fejlesztő, nehéz volt elolvasnom az előző fejlesztők által írt kódot. Lehet, hogy ez volt a legjobb konvenció neki, de nem nekem. Átírtam tehát minden kódrészletet, amin dolgoztam a konvencióim segítségével. Idővel több fejlesztő csatlakozott a csapathoz, és a konvencióink tovább fejlődtek.

Minden fejlesztő különböző háttérrel rendelkezett, eltérő szabványokkal és konvenciókkal. A konvencióink formalizálásához kiindulópontként az Airbnb javascript stílusú útmutatóját használtuk. Áttekintettük az útmutatóban szereplő konvenciókat, és megváltoztattuk vagy eltávolítottuk azokat, amelyekkel nem értettünk egyet, és elfogadtuk azokat, amelyek tetszettek. Még olyan konvenciókat is elfogadtunk, amelyeket saját tapasztalataikból hoztak létre, és beépítettük őket a fő egyezményünkbe.

Az egyes egyezmények kiértékelésének és annak eldöntésének folyamata, hogy nem csak a kód olvashatóságunkat javítottuk, hanem a csapatmunkánkat is. (Erről bővebben egy későbbi bejegyzésben!)

Ez a kemény igazság: a legjobb konvencióknak nincs egyetemes meghatározása, mert egyszerűen nem léteznek.

Ellentétben azzal, amit az iskolában tanítottak, nem mindig van minden kérdésre egy helyes válasz. Ebben az esetben nagyon sok lehet belőlük.

A fejlesztőknek különböző módjaik vannak különböző vagy akár ugyanazok megvalósítására. Néhányan közülünk inkább az összes osztálytag neve „m_” előtaggal kezdődik. Néhányan közülünk két szóközöt szeretnek használni, mások a füleket kedvelik, mások azt mondhatják, hogy Utilshelytelen a szó használata az osztály nevében. Geez, ez egy végtelen vita, de mindezek a preferenciák jó érveléssel járnak.

A nap végén minden kiderül, hogy melyik konvenció javítja a kód olvashatóságát. Melyik teszi lehetővé a csapatának a jobb kommunikációt, gyorsabb és hatékonyabb előrelépést.

Ne feledje, hogy a kódegyezmények csupán javaslatok. Igen, ha egyszer úgy dönt, hogy használ egy konvenciót, akkor kövesse ezt. De ne feledje: nem kőbe vannak faragva, és változhatnak. Engedje meg, hogy kísérletezzen a különböző konvenciókkal, amíg meg nem találja a legjobbat, amely megfelel Önnek és csapatának.

Tehát melyek a legjobb kódegyezmények? Egyszerű - a tiéd!