100% teisingo programavimo gidas

Tarpeliams naudoti Tab ar Space? Skliausteliai toje pačioje eilutėje ar naujoje? 80 ar 120 ženklų ilgio eilutės?

Programuotojai labai mėgsta ginčytis dėl tokių dalykų. Naudoti Tab ar Space diskusija net įkvėpė juokingą epizodą iš garsaus serialo “Silicon Valley”(„Silicio Slėnis“).

Šiame straipsnyje mes pagaliau atskleisime teisingus atsakymus į šiuos klausimus.

Žinomas programuotojas ir konsultantas Bill Sourour sako, jog ankstyvoje karjeroje jis buvo įsitraukęs į nuolatinius konfliktus dėl programavimo skyrybos. Viename jo perskaitytame straipsnyje būdavo rašoma, kodėl vienoks ar kitoks kodo rašymo būdas yra teisingas, o kitas visiškai klaidingas. „Aš tuomet visiems išdidžiai aiškindavau, kodėl dėl šio formulavimo aš esu teisus, o jie klysta. Tai užtruko keletą metų, bet aš galiausiai radau tikrai teisingą atsakymą… tai nesvarbu!“.

Šie dalykai nesvarbūs

Pastovumas yra svarbu. Aiškumas yra svarbu. Nuoseklumas ir kodo skaitomumas yra svarbu. Ginčytis kodėl vienas būdas yra geresnis už kita – visiškai nesvarbu.

Dauguma programuotojų mėgsta sekti tendencijas ir kodo rašymo madas. Tačiau visi anksčiau ar vėliau pripažįsta, jog tai nieko iš esmės nepakeitė – kodas netapo efektyvesnis ir klaidų skaičius nesumažėjo.

Nesupraskite klaidingai – švariai atrodantį, tvarkingai rašomą kodą bus daug lengviau keisti ir atnaujinti bėgant laikui, o tai yra geras dalykas. Ir nėra nieko blogo norėti, kad jūsų rašomas kodas atrodytų nuostabiai. Tačiau labai dažnai visa tai atsiremia į norą vilkinti laiką ir atidėlioti tikrą darbą.

Mes atidėliojame darbus ir vilkiname laiką, nes programuoti yra sunku. Jeigu skubėsime, problemų sprendimai gali greitai tapti komplikuoti, o būtent šis komplikuotumas gali didinti mūsų nepasitikėjimą savo jėgomis. Daug lengviau yra diskutuoti apie nereikšmingus dalykus, nei susikoncentruoti ir spręsti tą sudėtingą problemą.

Toks reiškinys, kai žmonės diskutuoja apie nesvarbius dalykus, kad išvengtų sunkių užduočių yra toks dažnas, jog yra sukurta net ne viena populiari teorija, apibūdinanti šį reiškinį. Vienas populiariausių – Parkinsono nereikšmingumo dėsnis, kuris teigia, jog organizacijų nariai neproporcingai daug dėmesio skiria smulkmenoms.

Kad iliustruoti šį dėsnį, Parkisonas naudojo vieno komiteto pavyzdį, kurio darbas buvo patvirtinti planus dėl naujai statomos branduolinės jėgainės. Tačiau jie praleisdavo didžiąją dalį savo laiko ginčydamiesi, kokias medžiagas naudoti jiems statomoje dviračių pastogėje. Komiteto nariai nepaisė branduolinės jėgaines statymo svarbos, nors tai buvo daug sudėtingesnis ir svarbesnis darbas.

Jeigu dirbate programuotoju – ir ypač jeigu leidžiate laiką su kitais programuotojais socialiniuose tinkluose – daug šansų, jog beveik kasdien susiduriate su panašiomis, ‘dviračių pastogės’ tipo situacijomis.

„Kaip konsultantas, aš dirbu su daugybe klientų ir visi jie turi savo taisykles bei programavimo nuostatas. Jau ilgą laiką esu nusprendęs, jog vienintelis kelias į sėkmę yra nebesigilinti į smulkmenas ir susikoncentruoti į sunkias problemas. Kas yra susiję su kodo rašymo standartais aš priimu, kaip tai daro mano klientai ir nebetrikdau savęs bei jų” – sako Bill Sourour.

Jeigu jūs irgi jaučiatės atsidūrę panašioje situacijoje, mes rekomenduojame savęs paklausti dviejų paprastų klausimų:

  1. Ar yra kokių įrankių, kurie automatiškai pritaikytų mano kodo stiliaus taisykles su jokio, ar minimaliu mano įsitraukimu?
  2. Ar yra tokių įrankių, kuriuos aktyviai palaiko ir naudoja žinomos organizacijos?

Jeigu galite atsakyti „taip“ į abu šiuos klausimus, išbandykite šį įrankį.

Čia keletas pasirinkimų, tinkančių populiaresnėms šių dienų Web programavimo kalboms:

DotNet Code Formatter

Java: Google-Java-Format

Javascript Standard Style

PHP Coding Standards Fixer

Python: Google’s YAPF

Ruby: Rubocop

Galiausiai nepamirškite, jog programavime svarbiausias standartas ne stilius, o pastovumas bei nuoseklumas. Kai pradedate naują projektą, kad ir kokį rašymo stilių bepasirinktumėte, svarbiausia, kad jį visur naudotume nuosekliai. Jeigu tarpeliams naudojate Tab, tai visur ir naudokite Tab. Jeigu Space – tai Space. Tai padės net tik jums, bet ir kitiems programuotojams, kuriems gali tekti skaityti ir suprasti jūsų kodą.