Како одабрати најбоље конвенције кода за вас и ваш тим

Ставите тачку на бескрајну расправу

- „Слушајте, те приватне променљиве треба да иду за јавним!“

- "Не долази у обзир! Јавне променљиве прелазе приватне! “

- „Питајмо Деб, а она нека одлучи“

- „Чекај, зашто ове константе нису обрубљене камилама?“

? ‍♂? ‍♀

Подигните руку ако сте се и раније нашли у оваквој дискусији. Ок, немојте то стварно подизати, али нешто ми говори да су неки од вас можда учествовали у овом сценарију једном или два пута.

Као програмер у протеклој деценији, нашао сам се у доста, можда неких превише, расправа о конвенцијама кода. Ове расправе, колико год биле корисне, понекад се погоршавају до бескрајне филозофске бесмислице. А онда почињу да прелазе на теме у распону од увлачења до структуре фасцикли.

Може бити болно.

Па, како заиста одлучити која је најбоља конвенција, а још боље, постоје ли најбоље конвенције? Изложићу то овде, тако да можете једном заувек одморити те филозофске брбљарије.

Па зашто су нам уопште потребне конвенције?

Да бисмо утврдили која је најбоља конвенција и да ли уопште постоје, прво морамо да схватимо зашто су нам уопште потребне.

Постоји више од неколико разлога, али фокусираћу се на најважнији: читљивост .

Шта ако бих одлучио да пређем само на писање великих слова. ОВАКО, ШТО МОЖЕ ЧИНИТИ ЧУДНО. То одмах приметите и ваш мозак почиње да обрађује оно што је другачије.

Узмите овај једноставан пример и размислите о именовању променљивих или увлачењу. Ако бисте се сваки пут вратили коду и он је био написан другачије, било би као да почињете од квадрата. Али када кодирате према конвенцијама, ваш код је лакше разумљив, а самим тим и читљив, чак и ако је написан пре неколико месеци.

Ово постаје још важније када радите у тиму програмера, где сваки пише свој код са жељеном конвенцијом. Количина времена утрошеног за разумевање и преглед међусобних кодова потрајаће ... па ... схватате.

Да бисте ефикасно и квалитетно сарађивали са другим програмерима, морате имати заједничку конвенцију.

„Програми морају бити написани да их људи читају, а само успут да их извршавају машине.“ - Хал Абелсон

Како одабрати најбољу конвенцију кода

Без обзира да ли сте тек започели са кодирањем, или сте део развојног тима кицкасс-а, или ако сте тек постали технички директор, како се одлучите за одабир конвенција кода?

Ево мог водича за одабир најбоље конвенције кода:

  1. Добијте инспирацију од развојних тимова којима се дивите: Ништа не прелази искуство, а неке од највећих и најпаметнијих компанија објављују своје смернице за кодирање. На пример, Аирбнб је објавио своје водиче за јавасцрипт и рубин стил, а Гоогле је објавио сопствене водиче за стил Јава и Питхон. Без обзира да ли вам се свиђају ове компаније или не, ако сумирате дугогодишње искуство сваког од њихових програмера, то чини милион. Покушајте да примените неке од стилских водича ових компанија на свој тим.
  2. Знање о радним групама од ваших вршњака: Срећни смо што смо део такве динамичне заједнице. Заправо, једна од највећих предности данашњег програмера је наша заједница. Било да се ради о Слацку, Спецтруму, Дисцорду или било којој платформи за колабирање, увек можете пронаћи образоване групе које ће одмах поставити питање о конвенцијама кода и добити одговоре од развојних програмера широм света.
  3. Занемари узорке кода. Да, само их игнориши. Свако мало налетим на код који је копиран / налепљен из одговора на Стацковерфлов или нешто слично. Оно што људи понекад забораве је да су узорци кода које су управо копирали вероватно написани као одговор на техничко питање или као објашњење неке библиотеке. У већини случајева писац није хтео, нити је имао времена да се бави кодексима конвенција.

Ови савети би требало да вам помогну да започнете и могу да поставе темеље за увођење конвенција кода за ваш развојни тим.

А сада мало филозофије.

Да ли уопште постоје „најбоље“ конвенције?

То зависи од тога шта значи „најбоље“. Ако Аирбнб или Гоогле користе одређену конвенцију или ако вам је 10 различитих техничких директора рекло да је њихова конвенција најбоља - да ли то значи да је то најбоља конвенција за вас?

Штавише, конвенције су подложне променама. Да ли нешто што се временом мења може бити проглашено „најбољим“?

Када сам започео Лемонаде као једини фронт-енд програмер, било ми је тешко да прочитам код који је написао претходни дев. Можда је то била најбоља конвенција за њега, али није за мене. Тако сам преписао сваки део кода на којем сам радио користећи своје конвенције. Временом се тиму придружило још програмера и наше конвенције су еволуирале.

Сваки програмер је дошао из различите позадине, са различитим стандардима и конвенцијама. Да бисмо формализовали наше конвенције, користили смо Аирбнб-ов водич за стил јавасцрипта као полазну тачку. Прегледали смо конвенције у том водичу и променили или уклонили оне са којима се нисмо сложили и усвојили оне који су нам се свидели. Чак смо усвојили конвенције које су произашле из сопственог искуства и интегрисали их у нашу главну конвенцију.

Процес процене сваке конвенције и одлуке да ли да је усвојимо, не само да је побољшао читљивост кода, већ и тимски рад. (Више о томе у наредном посту!)

Ево тешке истине: не постоји универзална дефиниција најбољих конвенција, јер оне једноставно не постоје.

За разлику од онога што су вас учили у школи, не постоји увек један тачан одговор на свако питање. У овом случају их може бити пуно.

Програмери имају различите начине да примене различите или чак исте ствари. Неки од нас преферирају да имена свих чланова разреда почињу са префиксом 'м_'. Неки од нас воле да користе две размакнице, неки више воле језичке, неки могу рећи да је употреба речи Utilsу имену класе погрешна. Исусе, ово је бескрајна дискусија, али све ове преференције долазе са добрим образложењем.

На крају, све се своди на то која конвенција побољшава читљивост вашег кода. Који од њих омогућава вашем тиму да боље комуницира, брже напредује и са бољом ефикасношћу.

Запамтите, конвенције кода су само предлози. Да, након што се одлучите за конвенцију коју ћете користити, требало би да је следите. Али запамтите: нису уклесани у камену и подложни су променама. Дозволите себи да експериментишете са различитим конвенцијама док не пронађете ону најбољу која одговара вама и вашем тиму.

Па, које су најбоље конвенције кода? Полако - твоје!