Zarez naprijed, ostali stoj - programerske dvojbe

programiranje

U programskom kodu u kojem se zarez važan, te njegovo izostavljanje ili ostavljanje može izazvati grešku, pojedini programeri se snalaze na taj način da zarez postave na početak reda, a ne na njegov kraj. Tu praksu najčešće sam susretao u JavaScript i SQL kodu, ali primjenjuje se svuda gdje je zarez sporan. Navodim primjer koda u JavaScriptu pripremljenog na jedan i drugi način.



// zarez naprijed
var converted = new MojComboBox({
typeAhead: true
,triggerAction: 'all'
,transform:'state'
,width:155
,forceSelection:true
});

// zarez u pozadini
var converted = new MojComboBox({
typeAhead: true,
triggerAction: 'all',
transform:'state',
width:155,
forceSelection:true
});


Meni je draži drugi način jer mi onaj zarez na početku bode oči (a i poravnanje s razlikom od jednog razmaka mi je nakaradno), a stara programerska kaže da se kod jednom piše, a puno puta čita. Pristalice zareza naprijed kažu da je njihov stil bolji jer ako se briše zadnji red onda je potrebno obrisati samo taj red dok u pozadinskom načinu treba obrisati zadnji red te zarez u prethodnom redu. Njima se može kontrirati da se brisanjem prvog reda također mora brisati jedan red te zarez u drugom redu.


Koja je vaša omiljena poza za zarez?



Komentari

12. rujna 2010. 16:32

nedavno sam se poceo ozbiljnije susretati sa zarez-na-pocetku filozofijom i moram priznati da mi se svidja, bas zato sto sam nebrojeno puta popusio foru sa brisanjem i dodavanjem novih redova, osobito u javascriptu

dodavanje jos nije problem jer ti je jasno da moras nastaviti niz, ali u brisanju kada ostane zarez na kraju pa se to polomi samo u smece browserima coughIEcough, to je stvarno timesuck koji ako se moze izbjeci primjenom neke druge tehnike, super

poravnavanje me, unatoc mom OCDu, ne smeta :)

12. rujna 2010. 18:18

U posljednje vrijeme se intenzivno družim sa SQL-om na zadatku preuzimanja gomila podatka iz različitih baza podataka i zarez na početku mi je praktičniji kod razvoja i debugiranja. Sa zarezom na početku lakše mi je na kraj upita dodati "--, *" i po potrebi vidjeti sve kolone, a slično je i sa common table expressions kada zarez na početku uz pomoć komentara omogućuje lako izvršavanje CTE samo do određenog koraka.

12. rujna 2010. 18:32

Mene je navika stavljanja zareza na kraj jednom opalila u glavu u Pythonu, i to na najneobičniji način. Ukratko, trebalo mi je dosta vremena dok sam shvatio zašto sljedeći kod ne radi baš onako kako sam očekivao:

;)

12. rujna 2010. 18:54

@Berislav: tu ti ne bi pomoglo da si stavio zarez naprijed. :-)

12. rujna 2010. 20:06

Meni definitivno zarez na kraju. Jer, u programskim jezicima koji dopuštaju da se na kraju zadnjeg člana niza ostavlja zarez (što uvijek činim), bi zarez na početku značio da na kraju imam jednu praznu liniju samo zbog tog zadnje zareza.

U pythonu bih uvijek pisao:

converted = { 'a': 1, 'b': 2, 'c': 3, }

Alternativa je:

converted = { 'a': 1, ,'b': 2 ,'c': 3 , }

Naravno, to je samo zbog mog običaja da ostavljam zadnji zarez iako nema elementa prije njega.

Drugi razloe -- prirodnije mi je jer u običnom ne-programerskom tekstu nećeš nikad vidjeti zarez na početku. Dakle, nekako je prirodnije ljudskom oku ;)

12. rujna 2010. 20:07

Ops, u drugom primjeru je jedan zarez ostao viška ;)

13. rujna 2010. 07:50

Zarez iza je moja poza (zanimljiv izraz za jednog programera ;-) ), to je nekako old school i ja sam čovjek koji robuje navikama, kao što sam kažeš imaju i jedni i drugi dobrih argumenata, ali navika je navika ... ili kako kažu naši susjedi Slovenci "Navada je železna srajca" ili tako nešto ... :-)

13. rujna 2010. 07:53

Preodgojile me godine rada sa raznim bazama pa su moji zarezi počeli bježati na početak linija :)

Ali zato robujem navici da vitičastu zagradu za početak funkcije pišem u red ispod :) Ovo bi isto mogla biti posebna diskusija.

13. rujna 2010. 08:49

Preferiram zarez na kraju linije jer mi je to čitljivije, a na "zarez viška" pogrešku pazim kod samog pisanja koda i mislim da bi promjena stila bila kontraproduktivna.

13. rujna 2010. 10:37

@vuk: Naravno da bi pomoglo, jer bi onda bacio syntax error. Ovako sam pola sata razbijao glavu da shvatim zašto dobijam listu umjesto stringa... :)

@3kolone: Jel ti to hoćeš reći da vrijedi stari stereotip da programeri ne znaju što je seks? To je možda nekad bilo točno, danas više nije... ;)

16. rujna 2010. 14:29

nemam dvojbi ~ zarez uvijek stavljam na početak

kaj se tiče vitičaste, nju navek devam iza

public static void main(String args[]){

kome tak smeta, nek mu smeta

ima jena poslovica: lošem k i dlaka smeta ;-)

16. rujna 2010. 15:39

Uvijek iza. . Ni varijantu if(2 == a) ... ne prakticiram.

16. rujna 2010. 15:43

@Dado

iz moje prakse:

jednom zgodom je moj čif tjedan dana tražil bug kojega je napravil napisavši if ( a = 2 )

e, onda sam mu rekel da drugi put napiše if ( 2 = a ) pa mu bude javac rekel kako je glup ;-)

pametnom dosta ~ na budalu ne treba trošiti vrijeme...

16. rujna 2010. 15:49

@Deda

A čuj, dogodi se, ali kad godinama kodiraš onda si već programiran ;) za "zareze u prethodnom redu", "vitičaste odmah iza", "fali još jedan =" itsl.

18. rujna 2010. 21:53

Old School - zarez iza.

Iako argumenti za ispred stoje, stoje i argumenti za puno stvari u zivotu (nemoj voziti brzo..) pa ih ne slijedimo slijepo :)