Kuinka valita parhaat kooditavat sinulle ja tiimillesi

Lopeta loputon keskustelu

- "Kuuntele, näiden yksityisten muuttujien pitäisi seurata julkisia!"

- "Ei onnistu! Julkiset muuttujat menevät ennen yksityistä! "

- "Kysytään Debiltä ja annetaan hänen päättää"

- "Odota, miksi nämä vakiot eivät ole kamelirakenteisia?"

? ‍♂? ‍♀

Nosta kätesi, jos olet löytänyt itsesi tällaisessa keskustelussa aiemmin. Ok, älä todellakaan nosta sitä, mutta jokin kertoo minulle, että jotkut teistä ovat voineet osallistua tähän skenaarioon kerran tai kahdesti.

Kehittäjänä viime vuosikymmenen aikana olen löytänyt itseni melko moniin, jotkut saattavat sanoa liian moniin keskusteluihin koodisopimuksista. Nämä keskustelut, niin hyödyllisiä kuin ne ovatkin, joskus huonontuvat loputtomiksi filosofisiksi hämmennyksiksi. Ja sitten he alkavat siirtyä aiheisiin, jotka vaihtelevat sisennyksestä kansiorakenteeseen.

Se voi olla tuskallista.

Joten miten voit todella päättää, mikä on paras konventti, ja mikä vielä parempaa, onko parhaita konventteja edes olemassa? Panen sen tänne, jotta voit laittaa nuo filosofiset sekoitukset lopullisesti.

Joten miksi me edes tarvitsemme konventteja?

Jotta voimme selvittää, mikä on paras yleissopimus ja onko niitä olemassa, meidän on ensin ymmärrettävä, miksi me edes tarvitsemme sopimuksia.

Syitä on enemmän kuin muutama, mutta keskityn tärkeimpään: luettavuuteen .

Entä jos päätän siirtyä vain isoilla kirjaimilla kirjoittamiseen. NÄIN TÄMÄ, JOTKA VOIVAT NÄKYVÄSTÄ. Huomaat heti, ja aivosi alkavat käsitellä mitä erilaista.

Ota tämä yksinkertainen esimerkki ja ajattele muuttujien nimeämistä tai sisennystä. Jos joka kerta kun palaat koodiin ja se kirjoitetaan eri tavalla, se olisi kuin aloittaisit neliöstä. Mutta koodattaessa käytäntöjä koodisi on helpommin ymmärrettävä ja siten luettavissa, vaikka se kirjoitettaisiin kuukausia sitten.

Tästä tulee entistäkin tärkeämpää työskennellessä kehittäjien tiimissä, jossa kukin kirjoittaa oman koodinsa haluamallaan tavalla. Toistensa koodin ymmärtämiseen ja tarkistamiseen käytetty aika vie… no ... ymmärrät.

Jotta voisit tehdä yhteistyötä muiden kehittäjien kanssa tehokkaasti ja laadullisesti, sinulla on oltava yhteinen käytäntö.

"Ohjelmat on kirjoitettava ihmisten lukemista varten ja vain satunnaisesti koneiden suoritettaviksi." - Hal Abelson

Kuinka valita paras koodisopimus

Olitpa juuri aloittanut koodaamisen, vai oletko osa kickass dev -tiimiä vai oletko juuri tullut CTO: ksi, miten valitset koodisopimuksesi?

Tässä on oppaani parhaan koodin käytännön valitsemiseksi:

  1. Hanki inspiraatiota ihailijoiltasi: mikään ei voita kokemusta, ja jotkut suurimmista ja älykkäimmistä yrityksistä julkaisevat koodausohjeet. Esimerkiksi Airbnb julkaisi javascript- ja ruby-tyylioppaansa ja Google julkaisi omat Java- ja Python-tyylioppaansa. Pidätkö näistä yrityksistä vai ei, mutta jos yhteenveto kunkin kehittäjän vuosien kokemuksesta, se lisää gazillionia. Yritä soveltaa joitain näiden yritysten tyylioppaita omaan tiimiisi.
  2. Lähde tietoa ikäisiltäsi: Olemme onnekkaita olla osa tällaista dynaamista yhteisöä. Itse asiassa yksi kehittäjänä olemisen suurimmista eduista on yhteisömme. Olipa Slack, Spectrum, Discord tai mikä tahansa yhteistyöalusta, löydät aina asiantuntevia ryhmiä lähettämään kysymyksen koodikäytännöistä ja vastauksia kehittäjiltä ympäri maailmaa välittömästi.
  3. Ohita koodinäytteet. Yup, sivuuttaa heidät. Satunnaisesti törmään koodiin, joka kopioitiin / liitettiin Stackoverflow-vastauksesta tai vastaavasta. Ihmiset joskus unohtavat, että juuri kopioimansa koodinäytteet kirjoitettiin todennäköisesti vastauksena tekniseen kysymykseen tai selityksenä jollekin kirjastolle. Useimmissa tapauksissa kirjoittaja ei tarkoittanut koodikäytäntöjä eikä hänellä ollut aikaa käsitellä niitä.

Näiden vinkkien pitäisi auttaa sinua pääsemään alkuun, ja ne voivat luoda perustan koodikäytäntöjen käyttöönotolle suunnittelutiimillesi.

Ja nyt filosofiasta.

Onko "parhaita" yleissopimuksia edes olemassa?

Se riippuu siitä, mitä "paras" tarkoittaa. Jos Airbnb tai Google käyttää tiettyä sopimusta tai jos 10 erilaista teknologiajohtajaa kertoi sinulle, että heidän yleissopimuksensa on paras - tarkoittaako se, että se on sinulle paras käytäntö?

Lisäksi sopimuksia voidaan muuttaa. Voiko jotain, joka muuttuu ajan myötä, koskaan nimetä "parhaaksi"?

Kun aloitin Lemonadessa ainoana käyttöliittymän kehittäjänä, minusta oli vaikea lukea edellisen kehittäjän kirjoittamaa koodia. Se olisi voinut olla hänelle paras tapa, mutta se ei ollut minulle. Joten kirjoitin uudestaan ​​jokaisen koodinpätkän, jonka parissa työskentelin käytänne käytänne. Ajan myötä tiimiin liittyi enemmän kehittäjiä, ja käytäntömme kehittyivät.

Jokainen kehittäjä tuli eri taustalta, erilaisilla standardeilla ja käytänteillä. Muodostamaan sopimuksemme käytimme lähtökohtana Airbnb: n javascript-tyyliopasta. Tarkastimme kyseisen oppaan yleissopimukset ja muutimme tai poistimme ne, joista emme olleet samaa mieltä, ja hyväksyimme ne, joista pidimme. Hyväksyimme jopa heidän omasta kokemuksestaan ​​tuodut yleissopimukset ja integroimme ne mestarikokoukseemme.

Kunkin käytännön arviointi ja päätös siitä, pitäisikö meidän ottaa se käyttöön, paransi koodin luettavuuden lisäksi myös ryhmätyötämme. (Lisää siitä tulevassa viestissä!)

Tässä on kova totuus: parhaille sopimuksille ei ole universaalia määritelmää, koska niitä ei yksinkertaisesti ole.

Toisin kuin koulussa opetettiin, kuhunkin kysymykseen ei ole aina yksi oikea vastaus. Tässä tapauksessa niitä voi olla paljon.

Kehittäjillä on erilaisia ​​tapoja toteuttaa erilaisia ​​tai jopa samoja asioita. Jotkut meistä haluavat, että kaikkien luokan jäsenten nimet alkavat 'm_' -etuliitteellä. Jotkut meistä haluavat käyttää kahta välilyöntiä, toiset mieluummin välilehtiä, jotkut saattavat sanoa, että sanan Utilskäyttäminen luokan nimessä on väärä. Geez, tämä on loputon keskustelu, mutta kaikki nämä mieltymykset perustuvat hyvin.

Päivän lopussa kaikki riippuu siitä, mikä käytäntö parantaa koodisi luettavuutta. Minkä avulla tiimisi voi kommunikoida paremmin, edetä nopeammin ja tehokkaammin.

Muista, että kooditavat ovat vain ehdotuksia. Kyllä, kun olet päättänyt käyttää konventtia, sinun tulee noudattaa sitä. Mutta muista: niitä ei ole kaiverrettu kiveen ja ne voivat muuttua. Anna itsesi kokeilla erilaisia ​​käytäntöjä, kunnes löydät parhaan, joka sopii sinulle ja tiimillesi.

Joten mitkä ovat parhaat koodikäytännöt? Helppo - sinun!