Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Pocetak i kraj funkcija, petlji... one "viticaste" zagrade

  • 13 odgovora
  • 5.901 pregleda

Najnovija ↓

Pocetak i kraj funkcija, petlji... one "viticaste" zagrade 23.08.2010. u 11:36 · pre 197 meseci #1
Ovo pitanje nije iskljucio za PHP vec se tice "C like" programiranja uopste.
Naime, nije mi jasno zasto se pocetak funcije pise na ovaj nacin:
Code (php):

function naziv_funkcije(parametri){
      kod_funkcije();
}
 

A ne ovako:
Code (php):

function naziv_funkcije(parametri)
{
      kod_funkcije();
}
 

Dakle, rec je o otvorenoj viticastoj zagradi. Da li ima neki poseban razlog zasto se ona otvara neposredno posle definisanja funcije?
Recimo, meni je uvek preglednije kada se pise ovako (primer sa vise grananja):
Code (php):

function naziv_funkcije(parametri)
{
      kod_funkcije();
      if (neki_uslov)
      {
            echo "prvi uslov ostvaren";
            if (neki_drugi_uslov)
            {
                   echo "drugi uslov ostvaren";
            }
       }
}
 

Po meni je mnogo preglednije nego ovako da stoji:
Code (php):

function naziv_funkcije(parametri){
      kod_funkcije();
      if (neki_uslov){
            echo "prvi uslov ostvaren";
            if (neki_drugi_uslov){
                   echo "drugi uslov ostvaren";
            }
       }
}
 


Pa samim tim moje pitanje, sta je fazon u tom "nerazumljivom" nacinu pisanja koda?
Re: Pocetak i kraj funkcija, petlji... one "viticaste" zagrade 23.08.2010. u 11:55 · pre 197 meseci #4
Ja funkcije pišem ispod kako predlažeš, for/while/foreach petlje takođe, ali if..else pišem u istom redu. Stvar ukusa, oba su sasvim podržana. Ako želiš možeš i ceo skript da napišeš bez prelaska u novi red.
Potpis
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
Re: Pocetak i kraj funkcija, petlji... one "viticaste" zagrade 23.08.2010. u 14:27 · pre 197 meseci #6
Naravno da se može
if(a==b) DoSomething();
isto što i if(a==b){DoSomething();}
Ja preferiram short formu, makar je za početnike nečitka, ali ušpara se vremena npr

a=((b==c) ? 0 : 1);
to bi bilo isto ko i
if(b==c)
a=0;
else
a=1;
npr...
Potpis
there's no place like 127.0.0.1
Re: Pocetak i kraj funkcija, petlji... one "viticaste" zagrade 23.08.2010. u 14:37 · pre 197 meseci #7
Da, da... znam ja taj skraceni nacin, ovo za jedan red sam u momentu zaboravio (pobrkam vise programskih jezika u glavi a PHP nisam bas dugo radio).
Ali kada se zagrade MORAJU otvoriti, nije mi jasno zasto se mora praktikovati taj totalno necitak nacin pisanja...
Mozda neko naidje sa nekim pametnim i logicnim odgovorom. Ocekivao sam nesto tipa "usteda prostora, tj redova koda" ali mi je taj razlog nekako smesan. Sta u danasnje vreme znaci 1KB (to mu dodje 1024 nova reda vise) vise-manje na serveru?
Re: Pocetak i kraj funkcija, petlji... one "viticaste" zagrade 23.08.2010. u 14:53 · pre 197 meseci #8
Pa Predrag ti je vec rekao razlog
Citat:
Predrag Supurovic: To je samo stvar ukusa. Neko voli ovako, neko onako.


Btw, meni je pak mnogo preglednije da otvorena zagrada krece u istom redu, a i vecina koda koju sam sretao kod kolega iz branse isto tako izgleda.

Znam da kad pise foreach, linija ispod toga je odmah u tom foreachu, pading sa leve strane mi to isto daje do znanja, da sledeca linija upada pod foreach. Isto i za if, funciton itd, po meni nema potrebe da naglasavam da sledeci redovi upadaju pod foreach tako sto bi otvorio zagradu u novom redu.
A i eto, duzina fajla je manja, manje je skrolovanja, kod mi je cistiji i pregledniji, izgleda prostije onda, taj if ili foreach psiholoski deluje kao lagana petlja, cim je kraca :)

I da, nikako ne volim da vidim if bez zagrada, neretko je potrebno prosiriti kod i dodati nesto jos u isti If, i onda moram da jurim zagrade da ih dodajem i zamlacujem se sa tim umesto da se fokusiram na resenje problema.
Potpis
http://norway.dakipro.com/
Re: Pocetak i kraj funkcija, petlji... one "viticaste" zagrade 23.08.2010. u 15:04 · pre 197 meseci #9
Citat:
dakipro: 
I da, nikako ne volim da vidim if bez zagrada, neretko je potrebno prosiriti kod i dodati nesto jos u isti If, i onda moram da jurim zagrade da ih dodajem i zamlacujem se sa tim umesto da se fokusiram na resenje problema.


Svaka ti cast na ovome komentaru. Pocetnici treba da znaju da ce sa tim imati problema ako ne postave te zagradice cim pocnu if pa makar i sa jednom operacijom.
Re: Pocetak i kraj funkcija, petlji... one "viticaste" zagrade 23.08.2010. u 15:13 · pre 197 meseci #10
meni je taj tvoj citak nacin poprilicno necitak i nepregledan. Dok ono sto si rekao da je nepregledno je meni savrseno pregledno :). Eto da dodam i ja, da je sve to stvar ukusa i navika
Re: Pocetak i kraj funkcija, petlji... one "viticaste" zagrade 23.08.2010. u 16:01 · pre 197 meseci #12
http://www.oracle.com/technetwork/java/codeconvtoc-136057.html - java styling guide

Bilo je velikih "ratova" gde idu zagrade i naveo si 2 najcesca sistema. Ima i hibridnih:

Za if, for, while koriste { na kraju linije, dok za npr funkcije, klasu { na odvojenim linijama.

Zakljucak ako radis sam, radis kako ti se svidja, ako saradjujes sa nekim dogovorite se o stilu i nemoj da pravis "ratove o {}"
Re: Pocetak i kraj funkcija, petlji... one "viticaste" zagrade 23.08.2010. u 17:16 · pre 197 meseci #13
Postoji mnogo teorija o ovome, slozio bih se sa @tahuti.

Formatiranje teksta se radi iz vise razloga:
1. usteda prostora (ovo vec prestaje da vazi)
2. preglednost koda
3. stadardizacija pisanja

Usteda prostora datira iz perioda pd pre 20-tak godina, kada je memorija racunara bila mnogo manja. Onda se stedelo na karakterima.
Kasnije je memorija povecana, ali je ostao problem izvrsenja nekompajliranog koda, kao i prenos preko mreze (tada je mreza bila na rs232).

Moje je misljenje da trebas pisati kako ti je lakse, bitno da je kod smislen i organizovan tako da se ljudi lako mogu snaci.
Objektni modeli dozvoljavaju da se metode klasa mogu razbijati i treba pisati sto krace metode (funkcije).

Pored toga treba predvideti i komentare. Tu, opet, postoje razlicita vidjenja probblema, ali je standard:
/**
* komentar
*/

da ne zapocnemo sada temu i oko naziva promenljivih i metoda, tu cemo tek otici u ....

----

u svakom slucaju, kada radim timski, volim da sve ove stvari unapred definisem.
Koji god standard da primenimo, njega cemo se pridrzavati.

----
Potpis
Moj Veb Sajt HostCentar Blog
Aleksinac Južna Srbija TimeOut
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme