- A hozzászóláshoz be kell jelentkezni
- 8111 megtekintés
Hozzászólások
Ha többen dolgoznak egy fejlesztésen, akkor gyakran felmerülő kérdés a kód egységes formázása. Mivel az alábbi négy írásmód közül már mindegyikkel találkoztam, ezért érdekelne, hogy ti melyiket részesítitek előnyben ezek közül:
1. változat:
if () {
}
else {
}
2. változat:
if ()
{
}
else
{
}
3. változat:
if () {
} else {
}
4. változat:
if ()
{
} else
{
}
-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)
- A hozzászóláshoz be kell jelentkezni
a 2.-est ki nem allhatom.
1/3 -ast attol fuggoen hogy milyen hosszu a blokk, ha rovid akkor 3. ha nagyon hosszu akkor 1.
Szerintem sokkal jobb kihagyni egy sort, mint beiktatni egy undorito zarojelet a sor elejere, aminek semmi hozzaadott jelentese sincs.
- A hozzászóláshoz be kell jelentkezni
+1
-------
It is our choices that define us.
- A hozzászóláshoz be kell jelentkezni
-1
a tobbi suxx, atlathatatlan, tragya, gany, stb ;))
- A hozzászóláshoz be kell jelentkezni
'undorito zarojel', lol :D
az en szememben sokkal undoritobb pl. a } else { :)
amugy ez teljesen izles dolga, kinek ez tetszik, kinek az, ezzel nincs is semmi problema
en szemely szerint a 2. verziora szavazok, mar csak azert is, mert igy egymas alatt vannak az osszetartozo zarojelek, sokkal konnyebben attekintheto, meg kicsit szellosebb a kod
meg a Pascalos idokben imadtam allat modon osszezsufolni a kodot, aztan rajottem hogy ez bizonyos hataron tul sokkal tobbet art mint hasznal
-
Slackware current / OSX Snow Leopard
- A hozzászóláshoz be kell jelentkezni
-1, az a legjobb
- A hozzászóláshoz be kell jelentkezni
5. változat
if ()
{
}
else
{
}
- A hozzászóláshoz be kell jelentkezni
+1
--
Team PuliSpace
http://www.pulispace.com
http://www.facebook.com/pulispace
- A hozzászóláshoz be kell jelentkezni
+1
----
Hol van a kígyónak farka? Minek annak az a nagy karkötő?
- A hozzászóláshoz be kell jelentkezni
Mindig azt, amelyik az adott projekt kódolási szabályainak megfelel.
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Én szabom meg a kódolási szabályokat :P
- A hozzászóláshoz be kell jelentkezni
Ez egészen addig jó, amíg írásba is foglalod, és be is tartod. Mondjuk amikor fejlesztőként dolgoztam, én kaptam azt a feladatot, hogy dolgozzam ki a kollégákkal egyeztetve a cég belső kódolási szabványait :-) A lényeg az egyeztetett, írásba foglalt (a szó elszáll...) betartható, és mindenki által betartott konvenciók legyenek többszemélyes projektek esetében. Tudom, fölöslegesnek tűnik egy-két tinglitangli programocskára az egésznél jóval nagyobb doksihalmazt legyártani, de a 123. közösen reszelt forrásfájlnál már bőven megtérül a belefeccölt munka és idő.
- A hozzászóláshoz be kell jelentkezni
Egyetértek, pl.: http://drupal.org/coding-standards
-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)
- A hozzászóláshoz be kell jelentkezni
A legjobb ha van rá ide támogatás. Projekt indentálási szabály fájlban, verziókövetőben tárolva, ide ez alapján mentéskor automatikusan beformázza a fájlt.
- A hozzászóláshoz be kell jelentkezni
Vagy fejlessz python-ban :-)
- A hozzászóláshoz be kell jelentkezni
Valóban ott ez nem kérdés. :)
Ha static typed lenne a python, akkor talán használnám is.
- A hozzászóláshoz be kell jelentkezni
Identálás oké, de if -ek formázását ne az ide/verziókezelő döntse már el valami szabályok alapján... Elég bosszantó tud lenni, ha a szépen megformázott kódomat holmi gép átvariálja.
- A hozzászóláshoz be kell jelentkezni
Pedig elég jól működik a gyakorlatban.
- A hozzászóláshoz be kell jelentkezni
Kinek mi.
- A hozzászóláshoz be kell jelentkezni
Ha a formatter a kódolási konvencióknak mgfelelően van felokosítva, vagy a kódolási/formázási konvenciók a formatter által készített kódot írják elő, akkor marhára lényegtelen, hogy szerinted mi a kényelmes/elfogadható.
- A hozzászóláshoz be kell jelentkezni
Most a konvekciók vannak értünk, vagy mi vagyunk a konvenciókért?
Én sem azt mondtam, hogy a konvenciókat nem kell betartani, csak azt, hogy egy emberi lény jobban össze tudja egyeztetni a józan ésszel, mint egy algoritmus.
- A hozzászóláshoz be kell jelentkezni
Igazából az algoritmus pontosabban tudja betartatni, mint az emberi agy, és a konvencióknak csak akkor van értelmük, ha következetesek vagyunk.
----
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
Szvsz. a formázási szabályokat felesleges bemagolni. Ráadásul elég terebélyes is lehet és lehetnek benne ritkán használt szabályok. Pl.: ha a sor túl hosszú és több mint 3 sorba kell törni, akkor a 3. sortól mennyi legyen a behúzás? Általában egy formázási megbeszélés erre nem terjed ki (főleg ha új). Ha ez nincs kőbe vésve akkor mindenkinél más lesz (annyi mint a 2. soré, egy indent-tel beljebb, stb.). Minek erre figyelni? Arra van a számítógép, hogy az ilyen unalmas dolgokat tartsa karban ő.
- A hozzászóláshoz be kell jelentkezni
Látom nem értitek, valószínűleg nem fogalmaztam elég világosan.
_Alapvetően_ egyetértetek veletek (hisz tulajdonképpen trivialitásokat mondtok), csak azt mondom, hogy a határt meg kell húzni valahol. A példád jó: túl hosszú a sor, de mégis _hol_ törjem el a sort? Nyilván könnyedén el lehet azt törni úgy, hogy tükrözzön valamiféle logikát, ami aztán jól olvashatóvá teszi a kódot, de ha az IDE áttördeli, akkor az nagyon buta végeredményt eredményez.
- A hozzászóláshoz be kell jelentkezni
A konvenciók vannak a projektért.
- A hozzászóláshoz be kell jelentkezni
Nem közvetlenül.
A konvenciók vannak a fejlesztőkért (a fejlesztők munkájáért), és a fejlesztők vannak a projektért.
- A hozzászóláshoz be kell jelentkezni
+1. Ha nincs, akkor vagy a meglévő kód alapján döntöm el, hogy mit (amit addig használtak), vagy ha nulláról indul a dolog, akkor az elnevezésekkel, kommentezéssel és formázással kapcsolatban mindenképp egyeztetni kell, és az egyeztetés eredményét mindenkire kötelező érvénnyel el kell fogadtatni. Úgy a nevezéktan, mint a kötelező kommentek, illetve a formázási kérdésekkel kapcsolatban.
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Mindig azt, amelyik az adott projekt kódolási szabályainak megfelel.
aha. tehat ha pistike mondja hogy csinald igy akkor jobban atlatod, ha do"ncike, akkor kevesbe? :)
- A hozzászóláshoz be kell jelentkezni
Szerintem nem értetted meg a mondatot vagy még soha nem kódoltál másokkal :)
----
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
igen, az kerdes hogy az "elonyben reszesit" egy objektiv vagy szubjektiv fogalomko"rre utal. ha elobbi, akkor igazad van, persze; de en a szavazaskerdest inkabb utobbira ertem. legalabbis az "elonyben reszesit" nalam nem szinonimaja az "azt mondtak hogy ugy kell csinalni"-nak.
- A hozzászóláshoz be kell jelentkezni
Az is egy valid álláspont, hogy előnyben részesítem, amit a projekt többi tagja. Bár a szavazás konkrétan nem erre irányult, de ettől még értelmes álláspont. Nem azért, mert befolyásolható vagyok, hanem mert nekem többet ér a csapatmunka, mint a saját kedvteléseim.
----
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
+1
Egyébként szerintem a blokkok kezdésénél és lezárásánál a behúzás sokkal inkább rontani tudja az olvashatóságot, ha többen is dolgoznak ugyanazon a kódon és eltérően kezelik. Pl (2 szóköz, 4 szóköz, tab, előző sor első szava, ...)
- A hozzászóláshoz be kell jelentkezni
2 de néha 1. A 4-es sohasem.
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba és kész!
- A hozzászóláshoz be kell jelentkezni
Itt neve is van a stílusoknak:
http://en.wikipedia.org/wiki/Indent_style
- A hozzászóláshoz be kell jelentkezni
Kösz, bár eszembe sem jutott, hogy erre rákeressek, csak néhány gyakorlatban előforduló példát ragadtam ki. :)
-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)
- A hozzászóláshoz be kell jelentkezni
Egyszer átvergődtem a témán, emlékeztem, hogy van róla szó Wikipedia-n. Ezeken kívül is van még pár variáció, a legtakarékosabb a 3., de én tab helyett 2 space-t használok.
- A hozzászóláshoz be kell jelentkezni
egyeb leirom hozzaszolasban:
if () {...;}
else {...;}
(csak ifnel es elsenel szeretem ezt, fornal kulon sor pl., fuggvenynel meg kulon sor a "}"-nek)
Ja es ha hosszabb a kodreszlet, akkor ugye elso valtozat, de egy { c=i; ++i; } befer egy sorba
- A hozzászóláshoz be kell jelentkezni
/ Rossz helyre irtam, sorry :) /
- A hozzászóláshoz be kell jelentkezni
+1
Ha ismered a Slackware-t, ismered a Linuxot. | Hülyének lenni jog, nem kötelesség!
- A hozzászóláshoz be kell jelentkezni
Ketteskét részesítem előnyben, de sajnos hármaskában kell kódolnom (munkahelyen).
- A hozzászóláshoz be kell jelentkezni
Melyik elsőt? Nálam "Beágyazott (teljes) Dátum - újabbak elöl" beállítással megy, úgyhogy momentán ez lesz az első :-P
- A hozzászóláshoz be kell jelentkezni
Én mindig a 3-as megoldást választom. Viszont ha nem szükséges a {} páros, akkor azokat elhagyom:
if ()
...;
else
...;
- A hozzászóláshoz be kell jelentkezni
A {} páros elhagyása elég veszélyes, ha az utasítást külön sorba írod.
Így én is használom:
if () ...;
else ...;
Elhagyás esetén már többször találkoztam olyannal, hogy odakerült még egy sor és csak nagyon nehezen lehetett észrevenni a hibát.
- A hozzászóláshoz be kell jelentkezni
Tény, ezért is használom akkor, ha tudom, hogy más nem fog tovább dolgozni a kódommal.
Én meg általában tudom, mit, miért csinálok:)
- A hozzászóláshoz be kell jelentkezni
Fu, ezt nagyon utálom (és nem csak én, amennyire észrevettem). Nálunk az a konvenció, hogy inkább rakd ki konzekvensen mindenhova, mint egyszer emiatt szívja meg az ember egy fél napnyi debuggolással.
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
Egyértelműen a második. Sosem értettem mi a jó ebben a "spóroljunk egy sort" dologban.
- A hozzászóláshoz be kell jelentkezni
nem volt meg papiron programozos zh-d ;) (just kidding)
egyebkent szeretem, ha a logikailag egybelevo sorok egybe is tartoznak valamiert
- A hozzászóláshoz be kell jelentkezni
Attol fugg, melyikhez kepest: lehet tobb sor sporolas is :) Masreszt a 3. nekem sokkal attekinthetobb is, nem csak a sporolasrol van szo, en abbol indulok ki, hogy a { mint a blokk kezdete, az adott if-hez vagy else-hez tartozik, tehat egy sorban a helye vele. Mondjuk erdekes modon a fuggvenyek eseten kulon sorba irom ...
- A hozzászóláshoz be kell jelentkezni
Sokaig 2., mostanaban 3.
- A hozzászóláshoz be kell jelentkezni
int funct( int param )
{
int i;
char *p;
unsigned long long buff[BUFFMAX];
for(i=0; i<10; i++) {
} /* end for i */
if(expresion) {
} /* end if expression */
if(expression) {
} else { /* expression */
} /* end else expression */
} /* end of funct */
ez a kedvencem. Azonban igen ritkan programozok from scratch, egyedul, inkabb messzemenokig alkalmazkodok a meglevo stilushoz.
- A hozzászóláshoz be kell jelentkezni
Ez a változat nekem is bejön, szemben a meghirdetettekkel, ezért javaslom felvenni a lehetséges választási lehetőségek közé!
Ebből a változatból ugyanis az is egy szempillantás alatt kiderül, hogy a záró kapcsoszárójel mit is zár le.
Persze az is tény, hogy többletmunkát igényel a program készítőjétől, viszont nagy program esetén a hosszabb távú program karbantartást nagyban megkönnyíti.
G.
============================================
"Share what you know. Learn what you don't."
- A hozzászóláshoz be kell jelentkezni
Mégjobban megkönnyíti, ha egysoros kommentet rak, nem blokkot ;)
----
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
felteve, ha megengedett a C99
es ha nem? mindegy, lassuk be, ez nem lenyegi hozzaszolas :-)
- A hozzászóláshoz be kell jelentkezni
Arról nem volt szó, hogy C a nyelv :) De a legtöbb fordító ha más nem kiegészítésként bevette a //-t.
----
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
+1. Javasolt olvasmány még:
http://www2.iit.uni-miskolc.hu/ficsor/cgi-bin/behoz.cgi?kiir=c_szabvany
http://www2.iit.uni-miskolc.hu/ficsor/cgi-bin/behoz.cgi?kiir=cpp_szabva…
- A hozzászóláshoz be kell jelentkezni
behoz.cgi :DDDDDD
- A hozzászóláshoz be kell jelentkezni
Mi ezzel a probléma? Régi cucc, nincs frissítve - az, hogy miért így, annak is megvan az oka.
- A hozzászóláshoz be kell jelentkezni
Ez nagyon olvasható, én is kb. így szoktam, plusz még ami szerintem nagyon javítja az olvashatóságot, az a "név szerinti paraméterek" C módra:
memcpy( /* TO= */ tmp_buffer, /* FROM= */ buffer, /* SIZE= */ sizeof(char) * BUFLEN);
illetve hosszabb változónevek esetén és/vagy több argumentum esetén:
clusters( /* graph= */ &residual,
/* membership= */ &NtoL,
/* csize= */ 0,
/* no= */ &proj_nodes,
/* mode= */ STRONG );
- A hozzászóláshoz be kell jelentkezni
Kezét törném annak, ha valaki ilyet írna bele abba a projektbe, amibe nekem is kell dolgoznom...
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Miért? Komolyan kérdezem. Te mindig emlékszel egy 10 argumentumos függvénynél az argumentumok sorrendjére?
- A hozzászóláshoz be kell jelentkezni
Nem, de az editorom igen.
--
|8]
- A hozzászóláshoz be kell jelentkezni
+1, a gépek vannak értünk, nem mi a gépekért.
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
Na ja. De egyrészt nem mindig az editorban látod a kódot. Látod amikor patch-et küldenek neked emailen, látod a verziókezelő web-interfaceében, etc. Nem szeretném mindig megnyitni megelelő projekt fileokat és bemásolni az editorba.
Másrészt, egy mai nagy képernyőre sok kód kifér, sok ilyen függvényhívással, így egyszerre látod az összeset, anélkül, hogy végig kellene őket kattintgatni.
Egyébként szerintem a modern nyelvek abba az irányba mennek, hogy lehessen név szerint megadni argumentumokat, pl. Python. Ezzel sokkal olvashatóbb lesz a kód SZVSZ. Ha pl. van egy xycopy függvényed, akkor
xxcopy(from=foo, to=bar);
esetén elég egyértelmű, hogy honnan és hova.
Szerk: még egy példa:
dnaupd(integer *ido, char *bmat, integer *n, char *
which, integer *nev, doublereal *tol, doublereal *resid, integer *ncv,
doublereal *v, integer *ldv, integer *iparam, integer *ipntr,
doublereal *workd, doublereal *workl, integer *lworkl, integer *info)
10-20 argumentum esetén már elég nehéz követni, hogy mi micsoda, még ha segít is az editor.
- A hozzászóláshoz be kell jelentkezni
Aki sorozatosan 10-20 argumentumú függvényeket/eljárásokat/metódusokat készít, azt is tarkón kellene vágni - szvsz.
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
Pl. ARPACK vagy LAPACK. Amiket nem igazán lehet megkerülni ha tudományos programokat ír az ember. De egy csomó más függvénykönyvtár is tele van ami tele van ilyen függvényekkel.
- A hozzászóláshoz be kell jelentkezni
+1
noha lustasagbol neha en is belefutok, hogy kicsit jobban felduzzad neha...
- A hozzászóláshoz be kell jelentkezni
Már akartam mondani...
- A hozzászóláshoz be kell jelentkezni
> De egyrészt nem mindig az editorban látod a kódot. Látod amikor patch-et küldenek neked emailen, látod a verziókezelő web-interfaceében, etc. Nem szeretném mindig megnyitni megelelő projekt fileokat és bemásolni az editorba.
De, mindig editorban latom. Ha patchet kuldenek, akkor azt felrakom es ugy nezem meg, mert ugy sokkal tobb ertelme van, es onnantol rogton az editoromban latom. A verziokezelomet szinten editorbol hajtom meg, igy ott sem gond. Amin epp dolgozom, az ugyis megvan nyitva, nem kell "mindig megnyitni".
> Másrészt, egy mai nagy képernyőre sok kód kifér, sok ilyen függvényhívással, így egyszerre látod az összeset, anélkül, hogy végig kellene őket kattintgatni.
Egyreszt ahogy mas is bolcsen megjegyezte: ha sok ilyen fuggveny van kis helyen, akkor ott mar valami komolyan el van szurva.
Masreszt nem kell kattintgatnom, ha fole allok az egerrel, vagy odaviszem a kurzort, az teljesen elegendo. Megfelelo editort kell hasznalni, ennyi.
> Egyébként szerintem a modern nyelvek abba az irányba mennek, hogy lehessen név szerint megadni argumentumokat, pl. Python
Ha lehet nev szerint megadni, akkor en is szoktam neha ugy hasznalni, bar elsosorban az opcionalis parametereknel csak (a tobbibol altalaban eleve keves van, es tobbnyire logikus a sorrendjuk. Pl xxcopynal from, to sorrend eleg alap, butasagnak tartom kiirni a parameter nevet is).
> 10-20 argumentum esetén már elég nehéz követni, hogy mi micsoda, még ha segít is az editor.
Ha gagyi az editorod, akkor igen. Ha mutatja, hogy epp melyik argumentum folott allsz, akkor nem latom, hogy lenne nehez. Peldanak okaert a fenti funkcio eseteben ha elkezdem irni, hogy:
dnaupd(intp, "blabla", np, "eztetitten",
Akkor kozben az editorom szepen tudja nekem jelezni, hogyy most az "integer *nev" nevu parameter jonne. Sot, jobb helyeken azt is viszonylag egyszeruen meg lehet oldani, hogy ha van valami standard in-code dokumentacio (pl doxygen) akkor meg a relevans dokumentaciot is meg tudja jeleniteni.
Jo editor kerdese az egesz. Nomeg ha borzalmas kodot lat az ember, mint pl a peldaban idezett fuggveny, azt nagyon gyorsan atirja, vagy minimum tokonszurja azt, aki elkovette.
--
|8]
- A hozzászóláshoz be kell jelentkezni
De, mindig editorban latom. Ha patchet kuldenek, akkor azt felrakom es ugy nezem meg, mert ugy sokkal tobb ertelme van, es onnantol rogton az editoromban latom. A verziokezelomet szinten editorbol hajtom meg, igy ott sem gond. Amin epp dolgozom, az ugyis megvan nyitva, nem kell "mindig megnyitni".
Te máshogy dolgozol, mint én, ennyi. Én mondjuk 5 projekten dolgozom egyszerre, nincs mindegyik nyitva. Jön egy email egy patch-el, ehhez nem feltétlenül akarok új projektet megnyitni.
Egyreszt ahogy mas is bolcsen megjegyezte: ha sok ilyen fuggveny van kis helyen, akkor ott mar valami komolyan el van szurva.
Mármint mi? Én rövid függvényeket szeretek írni, ami azt jelenti, hogy sok függvény van, ergó sok függvényhívás is van.
Pl xxcopynal from, to sorrend eleg alap, butasagnak tartom kiirni a parameter nevet is).
Szerintem nem butaság. Ha még azt mondod, hogy felesleges, talán az rendben van, de "butaság", meg "letörném a kezét", szerintem ez meglehetősen túlzás. memcpy esetén pont fordítva van. FYI. Látod, ha kiírod a nevet, akkor ez nem fordulhat elő.
Akkor kozben az editorom szepen tudja nekem jelezni, hogyy most az "integer *nev" nevu parameter jonne.
Nem akkor van gond, amikor írod, hanem amikor olvasod. Értem, hogy akkor is fölé lehet húzni az egeret, de jobban szeretem őket egyszerre látni.
Jo editor kerdese az egesz.
Nem csak magadnak írod a kódot. Az "akkor használjanak ők is olyan editort, mint te" hozzáállás nekem nem tetszik. Szerintem, jó, ha pl. a weben is olvasható a kód.
Nomeg ha borzalmas kodot lat az ember, mint pl a peldaban idezett fuggveny, azt nagyon gyorsan atirja, vagy minimum tokonszurja azt, aki elkovette.
A példában idézett függvény az ARPACK függvénykönyvtárból van, és SZVSZ meglehetősen jó minőségű kód. A flexibilitás miatt van ennyi argumentuma, meg mert eredetileg FORTRAN.
- A hozzászóláshoz be kell jelentkezni
> Te máshogy dolgozol, mint én, ennyi. Én mondjuk 5 projekten dolgozom egyszerre, nincs mindegyik nyitva. Jön egy email egy patch-el, ehhez nem feltétlenül akarok új projektet megnyitni.
Szerintem meger kb 10 secet a megnyitas + apply. Nalam legalabbis kb ennyi idot vesz igenybe, es ebben benne van, hogy a patchet lementem, mert a levelezo programom nem mindig egyezik meg az editorommal. Ha nincs kedvem/idom/lehetosegem/stb megnyitni egy uj projectet, akkor minek nezem az ahhoz tartozo patchet?
Nem tudom nalad hogy van, de szamomra fontos a kontextus, es a patchekben nem mindig van eleg, es szeretem az egeszet a maga teljessegeben latni. Ehhez pedig nagy segitseg, ha a patch fenn van (aztan legfeljebb egy masik ablakban vagy hasonloban nezem a diffet a koddal egyutt, ha epp az kell).
> Mármint mi? Én rövid függvényeket szeretek írni, ami azt jelenti, hogy sok függvény van, ergó sok függvényhívás is van.
Nem a sok fuggveny a gond, hanem a sok fuggveny trillio parameterrel.
> Szerintem nem butaság. Ha még azt mondod, hogy felesleges, talán az rendben van, de "butaság", meg "letörném a kezét", szerintem ez meglehetősen túlzás. memcpy esetén pont fordítva van. FYI. Látod, ha kiírod a nevet, akkor ez nem fordulhat elő.
Nezopont kerdese. En butasagnak tartom azt, ami teljesen felesleges. Az alap fuggvenyeket, mint pl a memcpy, pedig feltetelezem mindenki ismeri, es nem szurja el (plane, ha az editor is van annyira intelligens, hogy eleve mutatja a parameterlistat).
> Nem akkor van gond, amikor írod, hanem amikor olvasod. Értem, hogy akkor is fölé lehet húzni az egeret, de jobban szeretem őket egyszerre látni.
En meg ugy vagyok vele, hogy ha valaminek nem tudom fejbol a szintaxisat, akkor szeretem latni. Egy egeret odahuzni kb semmibe nem kerul, es kapok egy szep tooltipet az adott fuggvenyrol.
> A példában idézett függvény az ARPACK függvénykönyvtárból van, és SZVSZ meglehetősen jó minőségű kód. A flexibilitás miatt van ennyi argumentuma, meg mert eredetileg FORTRAN.
Lehet, hogy jo minosegu kod, de nem szep. A tragya is lehet jo minosegu, de attol nem lesz szep. Az pedig, hogy eredetileg FORTRAN, szerintem nem mentseg. De izlesek es pofonok.
Nyilvan van olyan helyzet, amikor az ember nem egyertelmu koddal dolgozik, ilyenkor egy jo editor sokat segit, es nem kell megjobban elganyolni a kodot.
--
|8]
- A hozzászóláshoz be kell jelentkezni
olvashatatlan
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
-1.
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
?
--
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." John F. Woods
- A hozzászóláshoz be kell jelentkezni
-1
- A hozzászóláshoz be kell jelentkezni
*
(Ez még nem volt a reagálások között. Ha lehet, a maradék néhány ezer karaktert, sőt a sokmillió karakterkombinációt mostantól hagyjuk ki.)
- A hozzászóláshoz be kell jelentkezni
Sok itt a C kernelhekker úgy érzem...
Amúgy én is mindig alkalmazkodom a meglévő kódhoz, de nem az volt a kérdés, hogy mit csinálsz, hanem hogy mit részesítesz előnyben, és akkor egyértelműen a 2.
----
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
Harmadik változat lényege, hogy bármely két sor közé beszúrhatsz egy új kódsort anélkül, hogy megborítanád a már meglévő kódok működését.
Mivel a diff-ek jellemzően soralapúak, így ebben a stílusban kevesebb fölösleges különbség látszik a patch-ekben, az egyes revíziók közötti diff-ekben, valamint kevesebb a hibalehetőség annak verziókezelő általi meghatározásában, hogy eredetileg ki committolt egy adott sort.
- A hozzászóláshoz be kell jelentkezni
A hozzaszolasod elso resze kicsit viccesen hangzik. :-)
De amit szerintem irni akarsz az mindegyik valtozatra igaz.
- A hozzászóláshoz be kell jelentkezni
if (a == b) {
a = 0;
}
else {
b = 0;
}
Most beszúrok egy sort.
if (a == b) {
a = 0;
}
a = 5;
else {
b = 0;
}
És már nem működik a program.
- A hozzászóláshoz be kell jelentkezni
Na jo, mostmar ertem. De en erre nem gondoltam, mert ha valaki ilyen helyre szur be sort, a fordito ugyis visit. Tehat nincs futasideju hiba belole, ezert nem nagyon lenyeges kerdes.
Szerk:
Bocs, szelso esetben lehet belole futas ideju hiba, pl. a 2. stilus eseten. De azert ahhoz elegge erolkodni kell.
- A hozzászóláshoz be kell jelentkezni
a fordito ugyis visit.
Mi van ha nem C, hanem pl. PHP?
- A hozzászóláshoz be kell jelentkezni
Akkor mar a joisten sem tehet semmit.
--
|8]
- A hozzászóláshoz be kell jelentkezni
Mégis mi lenne?
C:\work\hup>type e.php
<?php
$a = 0;
$b = 1;
if ($a == $b) {
$a = 0;
}
$a = 5;
else {
$b = 0;
}
C:\work\hup>php e.php
PHP Parse error: syntax error, unexpected T_ELSE in C:\work\hup\e.php on line 1
0
Parse error: syntax error, unexpected T_ELSE in C:\work\hup\e.php on line 10
C:\work\hup>
De aki ennyire nem nézi meg azt, hogy hova ír ÉS még ráadásul le se teszteli, az vessen magára.
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
Tehát csak futás közben derül ki a hiba. Mindössze ennyit akartam mondani.
- A hozzászóláshoz be kell jelentkezni
Mint ahogy az összes olyan nyelvben, ami futásidőben fordít. Viszont a szintaktikai hiba ott is hamar kiderül, nem azzal van a (nagy) probléma.
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
Aki kódot így commitál be, annak letörjük a kezét :D
- A hozzászóláshoz be kell jelentkezni
3.változat ha többsoros a művelet,
if {..}
else {..}
ha egy sorba belefér.
Szeretem a "zsúfolt" kódokat, mert gyorsan átlátom a lényeget.
Ergo, még a kommenteket is kiszedem ha megtehetem, mert nem azok alapján értelmezem a kódot, ezért számomra fölöslegesek és zavaróak úgy általában.
- A hozzászóláshoz be kell jelentkezni
Az ég óvjon meg mindenkit attól, hogy veled együtt kelljen bármilyen incifinci programot fejleszteni.
- A hozzászóláshoz be kell jelentkezni
"Szeretem a "zsúfolt" kódokat", "még a kommenteket is kiszedem"
Egyszer kerülj közelebb egy ~800ezer sornyi kódot tartalmazó enterprise project bugfix feladataihoz, mindjárt nem fogod szeretni. ;)
--
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." John F. Woods
- A hozzászóláshoz be kell jelentkezni
Több ismerősöm is van, aki az alábbi technikát használja ( talán az egyik oktatónknál láttuk aki maga is programozó volt egy cégnél)
- if ( féltétel )
- {
-
- utasitás1;
-
- utasitás2;
- }
- else
- {
-
- utasitás3;
- utasitás4;
- };
Nem tévedés, a sorok közt egy üres sor van, így átláthatóbb a kód...
- A hozzászóláshoz be kell jelentkezni
ez erosen omfg :))
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Ha nyomtatott listával a kezében akar gondolkodni, ötletelni, akkor egész jó dolog - van hova jegyzetelni :-P
- A hozzászóláshoz be kell jelentkezni
én rondábban kódolok :)
if(feltétel){utasítás1;}else{utasítás2;}
illetve
if(feltétel){
...utasítás1; utasítás2;
}else{
...utasítás3; utasítás4;
}
viszont használok szintaktikai és nyelvi szinezést :)
- A hozzászóláshoz be kell jelentkezni
Remélem, nem kerülünk egy helyre, és remélem nem kell karbantartanom a te kódodat. :D :P
--
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." John F. Woods
- A hozzászóláshoz be kell jelentkezni
+1. Egyébként ilyenkor kell ráengedni egy normális formattert, aztán a formázott kódot visszarakni a verziókezelő rendszerbe. Tudom, workaround, de a szívásnál jobb :)
- A hozzászóláshoz be kell jelentkezni
+1
vagy gecinagy monitora van! :)
- A hozzászóláshoz be kell jelentkezni
> így átláthatóbb a kód...
Tényleg átláthatóbb. Ez akkor számít, ha áttetsző terminálablakod van, és jó a háttérkép. ;)
- A hozzászóláshoz be kell jelentkezni
Hát nem tudom, ha hosszú a kód és minden utasítás között kihagysz egy sort, akkor borzalmasan átláthatatlan lesz a végeredmény. Arról nem is beszélve, hogy egy 500 soros kódból lesz vagy 1000 soros kódod a kihagyások miatt.
- A hozzászóláshoz be kell jelentkezni
Neha en is hagyok ures sort, de csak ha pl. tobb utasitas elkulonul logikailag a kovetkezoktol, nem minden sor utan :)
- A hozzászóláshoz be kell jelentkezni
+1. Én szeretem a kódblokkokat logikai csoportokba szervezni, mert számomra úgy sokkal átláthatóbb.
- A hozzászóláshoz be kell jelentkezni
Kapcsolja be az editorában azt, hogy két sornak mutassa...
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
Biztosan a \n karakterek száma alapján kapta a fizetését, csak nektek ezt nem mondta el :)
- A hozzászóláshoz be kell jelentkezni
Hianyzik az "Egyik sem, leirom" opcio.
Egyebkent reszemrol 2 & 3 all legkozelebb hozzam, amennyiben C-rol van szo. A 2. az GNU-style formaban:
if ()
{
...
}
else
{
...
}
En ezt preferalom, de ez nincs a listan, bar a 2. kozel all. A 3. lenne a masodik helyezett, dehat amit elonyben reszesitek, az nincs a listan, igy nem tudok szavazni.
--
|8]
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
"First off, I'd suggest printing out a copy of the GNU coding standards,
and NOT read it. Burn them, it's a great symbolic gesture."
- A hozzászóláshoz be kell jelentkezni
+1, ennél hülyébb indentálás kevés van :D
----
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
Ebbol latszik, hogy meg Linus sem tokeletes ;)
--
|8]
- A hozzászóláshoz be kell jelentkezni
+1 ez a leglogikusabb
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Nálunk nincs ilyen, hogy ki hogy szereti írni...
eclipse-hez van egy formázó, amit mindenki beállít, és ki kell pipálni, hogy mentésnél automatice formázzon...
- A hozzászóláshoz be kell jelentkezni
Ennél is szigorúbb szabály, ha a parser nem értelmezi jól a kódot, ha nem abban a formában van, ami maga is kód. Pl. behúzás alapú leírónyelvek.
- A hozzászóláshoz be kell jelentkezni
a behuzas alapu kodstrukturalas valami ritka elmebeteg talalmany
nem keveset szoptunk ezzel anno pythonban (jo, ehhez az is kellett hogy par coder leszarja a policy es nekialljon space-ekkel indentalni TAB helyett, de mivel a nyelv sajnos megengedi, igy kivedhetetlen)
-
Slackware current / OSX Snow Leopard
- A hozzászóláshoz be kell jelentkezni
pedig tobb fejlesztoi kornyezetben is van automtikus konverzio oda vissza. Szemely szerint nekem bejon ez a fajta strukturalas
- A hozzászóláshoz be kell jelentkezni
Megfontolandó egyébként, hogy egy sorba csak egy utasítás kerüljön. Még akkor is, ha azok olyan egyszerűek, mint pl.: i++;
Érdemes gondolni a későbbi debug-olhatóságra is.
Számtalanszor belefutottam anno olyan problémákba, amik az egy sorba összehányt kifejezéshegyek/utasítások hibás működéséből adódtak.
Jobb a békesség szerintem, ismerve egyes debuggerek lelkivilágát.
Bár ezek igen régi tapasztalatok, a mai up-to-date eszközökben lehet, hogy feleslegesek ezek az elővigyázatosságok.
Anno, amikor még nem volt kiforrott a C++ template kezelés megvalósítása egyes fordítókban, sokszor kézi makrózással helyettesítettük a dolgot, hogy a megfelelő működést elérjük.
Ebben az esetben qrvára számított, hogy ha a makrózótt kódot levetköztettük, az eredményül kapott forrásszöveg mennyire volt debugolható.
Tüzzel vassal irtottuk az egysorba írást.
Persze ez csak egy szempont.
---------------------------------------------------
Talisker Single Malt Scotch Whisky aged 10 years :)
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
A legjobban olvashato a 2. valtozat. Szepen kiemeli a blokkokat. A tobbi tul suru lesz.
- A hozzászóláshoz be kell jelentkezni
A négyest írtam, de meg tudom magyarázni. Az a lényeg, hogy az összetartozó zárójelpárok egymás felett legyenek, így könnyű követni, hogy mi hova tartozik. A 2. is jó, de az eggyel több sort használ.
Mellesleg egy tisztességes editorban, ami színez, illetve jelzi az összetartozó zárójeleket - simán tudok egysoros programot is írni.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Az egy dolog, de milyen "hatékonyan" lehet rá használni a diff-et. :)
-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)
- A hozzászóláshoz be kell jelentkezni
Összetartozó zárójelnél erősen javasolt kommentekkel megjelölni az elejét - végét, pláne, ha nem fér ki egy képernyőre. Anno azt csináltuk, hogy pl. if esetén a feltétel (vagy egy része, ha hosszú volt) lett a záró } után kommentként megismételve. A cél az volt, hogy a záró zárójelről is ránézésre lehessen tudni, hogy mit zár le. (függvény esetén meg end _függvény_neve_ volt a komment)
- A hozzászóláshoz be kell jelentkezni
Hát igen, C*. Az Ada esetén ez alapból megvan. Security cégnél nem adában programozni hááát :P
- A hozzászóláshoz be kell jelentkezni
:) Pedig van, ahol nem... :-)
- A hozzászóláshoz be kell jelentkezni
:D ;)
___
info
- A hozzászóláshoz be kell jelentkezni
A 2. változatnak van egy objektív előnye:
Ha a kurzorral szigorúan függőlegesen pásztázom a kódot, akkor egy vezérlési struktúra minden összetartozó elemét megtalálom egymás alatt, így pl. könnyen tudom ellenőrizni. Szerintem ez a legfontosabb szempont, és ehhez fogható előnnyel semelyik másik stílus sem rendelkezik. (Elképzelhető persze, hogy valaki proporcionális fontot használ programozáshoz, de az mazochista.)
Vannak más kérdések is.
Mi van a tabokkal. Ugyebár, ha tabok és blankek vegyesen vannak a szövegben, akkor különböző editorokban másképp néz ki az indentálás, ráadásul el is mentődhet a fájl rossz indentálással. Egy python progam ilyenkor elromlik, brrr. Ezért egyáltalán nem használok tabokat.
Mekkora legyen az indentálás? Egytől (!) sokig mindent láttam már. Én 4-et használok.
Kell-e használni kapcsos zárójelt, ha csak egy sorra vonatkozik az if? Én használok.
--
CCC3
- A hozzászóláshoz be kell jelentkezni
A szóközhasználat a logikus, az mindig egy karakter hosszú. A tabot én is száműzöm, de a vimes kollégák mégis telerakják néha a kódot tabbal :S
Én világéletemben a kettő szóközös indentálást használtam, és hálisten a cégnél is ez a policy. Pont elég, kétszer akkora, mint egy szóköz. Ha ennél nagyobb akkor nekem már nagyon töri a szöveget hogy messzire bemegy egy-egy indentálás.
Én sosem használtam kapcsost egysorosnál, de a cégnél az a policy, hogy kell, és megértem miért, de még szokni kell :)
----
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
"Tabs are 8 characters, and thus indentations are also 8 characters.
There are heretic movements that try to make indentations 4 (or even 2!)
characters deep, and that is akin to trying to define the value of PI to
be 3."
Ha úgy érzed, hogy messzire bemegy egy indentálás, akkor az nem az indentálás hibája, hanem a kódodé.
- A hozzászóláshoz be kell jelentkezni
Nyílván én vagyok a hülye :) Te meg menj el dolgozni, és írj nagyobb kódot, aztán beszélgethetünk. Két névtér + egy osztály, és máris 24 szóköz mélységben tartunk.
----
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
"Te meg menj el dolgozni, és írj nagyobb kódot"
Igen, pont aközben írtam, mintegy kikapcsolódásként.
- A hozzászóláshoz be kell jelentkezni
És ahol dolgozol, ott 8 szóköz az indentálás alapegysége. És ezt te jónak tartod. Hát egészségedre, akkor nincs mint vitatkozni. Annyit még hozzáteszek, hogy GNU idézeteket meg K&R szabványokat bevágni az inkább vicces, mint komoly érvelés.
----
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
Mit szeretnél ezzel mondani? Szerintem már megtaláltam magamtól is, hogy honnan idéztél. Ettől még baromság marad. C++. Névterek. Osztályok.
----
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
Azt, hogy se nem GNU idézet, se nemm K&R szabvány, ellenben ott vannak az indoklások, és a gyakorlatban bevált. Ellentétben a kétszóközös indentálással, amivel az egyszeri fejlesztő lazán csinál 10 lépcsős indentálást, "mert még kifér".
- A hozzászóláshoz be kell jelentkezni
a linux kernelnel bevalt. en agyfaszt kapnek, ha igy kene kodolnom.
tab for president! :-)
- A hozzászóláshoz be kell jelentkezni
Máshol is bevált már, egyébként én ettől kapnék agyfaszt (bár nem az indentálás miatt ;)
- A hozzászóláshoz be kell jelentkezni
Állj. A gyakorlatban bevált EGY HELYEN. EGY területen. Te meg azt állítottad az idézettel, hogy aki nem 8 karakteres behúzást használ az egy ... rossz ember. Szerintem meg ha látnál a saját seggeden túl is, akkor nem mondanál ilyen hülyeségeket. Példaként hoztam egy helyzetet, ahol kapásból 4. fokú indentálásnál tartasz, és még futó kódot nem írtál, csak deklarációkat.
----
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
Több helyen bevált, nem állítottam ilyesmit, a stílus maga az ember, namespace-t felesleges indentálni.
- A hozzászóláshoz be kell jelentkezni
Egyszer talán a Microsoft megbízásából csináltak egy felmérést/kutatást, és kiderült, hogy a 4 karakteres indent a legoptimálisabb, ezért használ a Visual Studio ilyen megközelítést.
Egy előző munkahelyemen 2 karakteres "space" indentet használtunk. Nem mellesleg a space sokkal logikusabb is, mert minden rendszeren, minden szövegszerkesztőben megnyitva ugyanúgy néz ki. Azóta nekem vim telepítés/első indítás után is első dolgom, hogy beállítom a 2 karakteres space indentálást, mert bejött. :)
--
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." John F. Woods
- A hozzászóláshoz be kell jelentkezni
+1
--
|8]
- A hozzászóláshoz be kell jelentkezni
Mi koze a vimnek a tabokhoz? Ajjaj. Nagy gondok lehetnek ott a cegnel.
- A hozzászóláshoz be kell jelentkezni
Ha alapvető szövegértési problémáid vannak, akkor hadd ne a cég legyen a hibás. Senki nem írt semmit arról, hogy a vim hibája lenne bármi.
----
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
OMFG
- A hozzászóláshoz be kell jelentkezni
Egyértelműen a harmadik. Mindegyikhez hozzá lehet szokni, mindegyik természetesnek tűnik ha azt használod, és idegennek ha másikat. Viszont a harmadik az, amelyik nem pazarolja fölöslegesen a helyet, hanem egyszerre (azonos betűméret, azonos ablakméret, azonos monitor mellett) több kódot látok.
- A hozzászóláshoz be kell jelentkezni
A 2.-at azzal a megkötéssel, hogy az if helyett a feltétel alatt kezdem a "{" zárójelet. Nekem így jobban átlátható. Én így jobban átlátom. Mondjuk 5-6 egymásba ágyazott cilkusnál ezt fel szoktam rúgni (ez mondjuk ritka, mert ritkán nem megkerülhető). Mivel úgyis egyedül én kódolok C/C++-ban a cégben, így senkit nem zavar a helypocsékoló kódolásom.
------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.
- A hozzászóláshoz be kell jelentkezni
perverzióból:
final boolean expr = (...);
if (expr) {
}
if (!expr) {
}
- A hozzászóláshoz be kell jelentkezni
szintén egyéb, én pl ezt szoktam meg:
if ()
{
...
} else {
...
}
- A hozzászóláshoz be kell jelentkezni
3-t találom a leglogikusabbnak.
látom, a legtöbben szintén.
ilyen változtatással:
if() {
asd;
} else {
qwe;
}
mint ahogy más függvényeknél is szorosan a függvénynév után kezdjük a zárójelet,
még akkor is ha egyes nyelvekben az if() nem függvény hanem nyelvi elem.
~~~~~~~~
De ezt az egy lépést ki nem tevé,
Az nem tett semmit, nem tud semmit is.
- A hozzászóláshoz be kell jelentkezni
3-t találom a leglogikusabbnak.
látom, a legtöbben szintén.
ilyen változtatással:
if() {
asd;
} else {
qwe;
}
mint ahogy más függvényeknél is szorosan a függvénynév után kezdjük a zárójelet,
még akkor is ha egyes nyelvekben az if() nem függvény hanem nyelvi elem.
~~~~~~~~
De ezt az egy lépést ki nem tevé,
Az nem tett semmit, nem tud semmit is.
- A hozzászóláshoz be kell jelentkezni
3-t találom a leglogikusabbnak.
látom, a legtöbben szintén.
ilyen változtatással:
if() {
asd;
} else {
qwe;
}
mint ahogy más függvényeknél is szorosan a függvénynév után kezdjük a zárójelet,
még akkor is ha egyes nyelvekben az if() nem függvény hanem nyelvi elem.
~~~~~~~~
De ezt az egy lépést ki nem tevé,
Az nem tett semmit, nem tud semmit is.
- A hozzászóláshoz be kell jelentkezni
A 2-est, behúzásokkal. Ezt szoktam meg, illetve egy hosszabb kód inkább átlátható, ha így épül fel, egyértelmű, hogy hol az adott blokk eleje és vége, a szerkezetből látszik, hogy mi hova tartozik, még mielőtt megnézné az ember magát a kódot.
- A hozzászóláshoz be kell jelentkezni
A 4-est, nekem ez a legátláthatóbb.
(Nyilván ha egy projektben már vannak előre megadott szabályok akkor azok szerint.)
- A hozzászóláshoz be kell jelentkezni
if (){;}else{;}
(-::
> Sol omnibus lucet.
- A hozzászóláshoz be kell jelentkezni
sőt:
() ? (function(){})() : (function(){})();
Nehogy már elhanyagoljuk a ternary operatort, amikor a sima elágazást mindenki felismeri… (a szomorú az, hogy rám amúgy tényleg jellemző a velük való visszaélés… De írásidőben gyakran nagyon kényelmes…)
int getRandomNumber() { // ←ez itt már az aláírásom
return 4;//szabályos kockadobással választva.
} //garantáltan véletlenszerű. xkcd
- A hozzászóláshoz be kell jelentkezni
Sőt! rövidebb kód fordul rá! Én nagyon sokat használom.
Sokan beszélnek itt szellős kódról. Hát én úgy tömörítek, ahogy csak
lehet. Pl: egy ciklus, egy sor, ha nem hosszabb 90 karakternél.
Nagyon jó a tesztelésnél, ha ki kell iktatni a ciklust. Nagyon jó
áttekinteni a programot is.
A tömör kódolás legnagyobb előnye, hogy egyszerre nagyon nagy
kódrészlet van a képernyőn. Az öreg motorosok, akik már alig
debugolnak (kigyullad egy led vagy nem, azt slussz) tudják miről
beszélnek.
> Sol omnibus lucet.
- A hozzászóláshoz be kell jelentkezni
Nagyon rossz tesztelésnél, ha néhányszor léptetni kell a ciklust, vagy bele kell nézni egy a ciklusból hívott függvénybe.
Meg egyébként is minden valamirevaló debuggerben pofonegyszerűen át lehet ugrani egy ciklust.
- A hozzászóláshoz be kell jelentkezni
Másképp nyúlunk a problémához, úgy látom. Nem baj.
> Sol omnibus lucet.
- A hozzászóláshoz be kell jelentkezni
Egy több sorba kiírt ciklust kikommentezni nem kunszt, ha a környezet támogatja a beágyazott kommenteket, akkor pláne nem.
- A hozzászóláshoz be kell jelentkezni
de baj, mert vannak olyan szempontok, hogy "kodminoseg", tudod.
- A hozzászóláshoz be kell jelentkezni
Csak egy gombnyomás, ha kell. Tudod ugye? És, hogy mi az előnye,
ha egyszerre sok programsort tekintesz át, azt is tudod. Kár ezen
tornázni.
Sokkal fontosabb, hogy az _algoritmus_ követhető legyen. Majdnem
ugyanilyen fontos a helyes változónévválasztás (ez szinte felér
a jó kommentezéssel). Fontos továbbá a következetesség: ne válts
stílust és/vagy programozási szokásokat, elveket egy projecten
belül, vagyis légy következetés: rendkívüli módon megkönnyíti
a hibakeresést és az együttdolgozást.
Ezek mind-mind sokkal fontosabbak, mint az, hogy mit írsz egy sorba.
Ez az auto_formázók megjelenése óta gyakorlatilag mellékes. (Ha,
már a kódminőség szóba került.)
> Sol omnibus lucet.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Mivel nem komálom azt, ha a nyitójelek az előző sor végén vannak, ezért 2-es vagy 4-es; de ha rövidebbre akarom fogni:
if( feltétel )
{ utasítás;
utasítás;
} else
{ utasítás;
utasítás;
}
Régen ettől voltam rosszul; változik az ember. :-)
- A hozzászóláshoz be kell jelentkezni
Egyéb, banner http://en.wikipedia.org/wiki/Indent_style#Banner_style a többi elég használhatatlan számomra, persze ha meglévő projektben kell maszatolni, akkor úgy ahogy projekt előírja.
- A hozzászóláshoz be kell jelentkezni
-
- A hozzászóláshoz be kell jelentkezni
Én ilyenekkel nem foglalkozok, a Visual Studio gyönyörűen formáz helyettem :)
- A hozzászóláshoz be kell jelentkezni
Néha direkt játszani szoktam vele, hogy ordenáré szar formázást használok, aztán nyomok egy entert, és kész is. Mit nem adtam volna ezért, amikor anno a progmatos házifeladatokban segítettem emberkéknek. :)
--
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." John F. Woods
- A hozzászóláshoz be kell jelentkezni
A 3.-ra szavaztam, de ha jobban belegondolok ez kicsit nyelv függő is.
C szintaktikájú nyelveknél a 3. viszont Delphi/Pascal-ban inkább a 4.
if () then
begin
end else
end;
A behúzást ti hogy csináljátok? Én két szóközt használok, pontosabban tabulátor, ami automatikusan cserélődik 2 szóközre.
- A hozzászóláshoz be kell jelentkezni
Én az egész programot egyetlen sorba írnám :)
if {...} elseif {...} else {...};
---
KORPIKLAANI-Tequila http://youtu.be/wzEahz7pa7k
- A hozzászóláshoz be kell jelentkezni
Na az ilyenél vicces ha jön egy olyan üzenet, hogy
Syntax error at line 1 : Missing ; before this statement.
:)
--
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." John F. Woods
- A hozzászóláshoz be kell jelentkezni
2. Szeretem a szellős kódot.
Plusz továbbiak, amik szerintem ennél fontosabbak:
- Legyen szellős, jól olvasható a kód.
- Egy metódus/függvény lehetőleg ne legyen nagyobb, mint amennyi egy képernyőre kifér. (kb. 40-50 sor)
- Metódusok után minimum 2 sor legyen.
- Egy osztály lehetőleg egy fájl legyen.
- Minden dologról derüljön ki az, hogy mire való. Inkább legyen hosszabb neve, de egyértelmű és ne valami agyonrövidített cucc.
- Lehetőleg 80 karakternél ne legyen szélesebb egy sor, hogy jól olvasható legyen.
- SQL query szétbontva, indentálva, pl.
$db->query('SELECT tamtaramtatam
FROM akarhonnan
LEFT JOIN megvalami USING (bigyula)
WHERE ez AND az
ORDER BY ingyombingyom
LIMIT 10 OFFSET 0');
- Legyen kommentelve, ha valaki bugfixet csinál ott a helyén
- Mindig legyen zárójelezés. Sokkal egyértelműbb és hibamentesebb, ha mondjuk egy ilyet kell nézni ((a * b) + (c * d)), ahol egyből látszik az összetartozó tag.
- Legyen egységes a metóduselnevezés (meglepő, de csúnyán tudja lassítani az embert)
- Hungarian notation, bár ez még nem megy mindenhol tökéletesen... Nem olyan hülyeség az, főleg ha valami nem túl típusos nyelvben kell kódolni.
- Legyenek értelmes, debuggolható hibaüzenetek, logok, stb.
- Legyen SVN commit log és derüljön ki belőle, hogy mi a halált csinált. (hihetetlen, de egyeseknek ezt is magyarázni kell. Volt egy külsős arc, aki egy ideig nem írt, rászóltunk, aztán sokadjára elkezdett írni... Beírta mindig a nevét.
- Lehetőleg kisebb SVN commitok legyenek, amik egy részfeladathoz tartoznak, ne nap végén a n+sok megoldást egyszerre.
- Ha valami nyelvnek van értelmes és jól kidolgozott konvenciója (pl. C#), akkor azt kell használni.
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
"- Legyen SVN commit log és derüljön ki belőle, hogy mi a halált csinált."
Az, hogy mit csinált, úgyis kiderül a kódból. Szerintem sokkal érdekesebb, hogy _miért_ csinálta.
"- Lehetőleg kisebb SVN commitok legyenek, amik egy részfeladathoz tartoznak, ne nap végén a n+sok megoldást egyszerre."
Sajnos svn-ből pont hiányoznak azok az eszközök, amikkel ezt egyszerűen meg lehet tenni...
- A hozzászóláshoz be kell jelentkezni
"Az, hogy mit csinált, úgyis kiderül a kódból."
Na persze. Aztán xezer commit közül meg akarsz nézni egyet, hogy egy adott delikvens mégis mit csinált vagy nem csinált.. Úgyvan.
"Sajnos svn-ből pont hiányoznak azok az eszközök, amikkel ezt egyszerűen meg lehet tenni..."
Nem az SVN-ből hiányoznak (SVN szerver benn van az irodában, olyan nincs, hogy nem elérhető és nem lehet commitolni, mert a világ másik felén van egy sivatag közepén és az egyetlen kommunikációs lehetőség az Iridium...), hanem hozzáállás kérdése. Ha valaki lusta és szarik rá, akkor nap végén egyben betolja a commit+push párost.
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
"Na persze. Aztán xezer commit közül meg akarsz nézni egyet, hogy egy adott delikvens mégis mit csinált vagy nem csinált.. Úgyvan."
A hangsúly azon lett volna, hogy a "mit" önmagában nem elég, a "miért" is van legalább olyan fontos. Példát lásd lejjebb.
"Nem az SVN-ből hiányoznak (...), hanem hozzáállás kérdése."
De, az SVN-ből hiányoznak. Ha egy file-ban két egymástól független változtatás van, akkor csak igen nyögvenyelősen lehet a két változást külön commitolni. Nincs se add --patch, se stash --keep-index, se interaktív rebase, amikkel összehasonlíthatatlanul könnyebb logikai egységenként tagolt commitokat létrehozni. Igen, a hozzáállás is számít, de hiába van nekem megfelelő hozzáállásom, ha a verziókezelő nem nyújt ehhez támogatást, akkor csak sokkal nehezebben és lassabban tudom ezt megcsinálni. Van nekem elég dolgom anélkül is, hogy a verziókezelő hiányosságaival küzdjek.
A szerver hollétének ehhez semmi köze nincs.
- A hozzászóláshoz be kell jelentkezni
Igen, a hozzáállás is számít, de hiába van nekem megfelelő hozzáállásom, ha a verziókezelő nem nyújt ehhez támogatást, akkor csak sokkal nehezebben és lassabban tudom ezt megcsinálni. Van nekem elég dolgom anélkül is, hogy a verziókezelő hiányosságaival küzdjek.
Ez egy nagyon fontos dolog. A verziókezelő rendszernek segítenie kell a munkában, nem hátráltatnia abban.
-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)
- A hozzászóláshoz be kell jelentkezni
"Ha egy file-ban két egymástól független változtatás van, akkor csak igen nyögvenyelősen lehet a két változást külön commitolni. "
Mondjuk ez elég ritka felénk, de mi ad erre rendes megoldást?
De gondolom abban azért kiegyezhetünk, hogy az gáz, ha valaki a nevét írja be commit logba és nap végén egyszer commitol...
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
> Mondjuk ez elég ritka felénk, de mi ad erre rendes megoldást?
Nalam ez rettento gyakori. Foleg amikor egy ujabb fejlesztest integralok be mashova, es kozben derul feny az uj fejlesztes hianyossagaira. Ilyenkor kijavitom a hibat, de azt nyilvan nem az integralassal egyutt akarom commitolni, mert ket teljesen fuggetlen dolog.
git add -i tokeletes megoldas erre a problemara.
> De gondolom abban azért kiegyezhetünk, hogy az gáz, ha valaki a nevét írja be commit logba és nap végén egyszer commitol...
Hat attol fugg. Ha az AUTHORS fileba irta bele magat, es mast nem csinalt aznap, akkor ez teljesen korrekt commit log :D
--
|8]
- A hozzászóláshoz be kell jelentkezni
Én "add -p" -vel szoktam. :)
-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)
- A hozzászóláshoz be kell jelentkezni
En meg emacsbol. :) De ez igazabol mar reszletkerdes szerintem.
--
|8]
- A hozzászóláshoz be kell jelentkezni
+1 a miért-re, valahogy így:
"A fi-123/2011b igény 2/b. pontjához szükséges foo_bar_baz() eljárás első verziója"
vagy:
"A h-1235/201102-U hibajegy javítása a moo_boo() eljárásban"
- A hozzászóláshoz be kell jelentkezni
Én inkább olyasmire gondoltam, mint pl. ez, ahol a "mit csinál" az utolsó bekezdés középső kb. két sora, és abból az égvilágon semmi nem derül ki azzal kapcsolatban, hogy miért van egyáltalán szükség erre a változtatásra.
- A hozzászóláshoz be kell jelentkezni
4-est jelöltem, a 2-est is jelölhettem volna.
A helytakarékosság egyre kevésbé szempont, ahogy nő a képernyők felbontása.
Egy } nem egy if-fel, while-lal stb. tartozik egybe, hanem a {-el, az istenitneki.
Ezért ezeknek kell egy oszlopban lenniük (vagy egy sorban, ha elég rövid az a sor, és elég távol van a legközelebbi másmilyen struktúra).
Az összes többi ügyben velem lehet beszélni.
- A hozzászóláshoz be kell jelentkezni