[CSProjects] Coding style

Razvan Deaconescu razvan at anaconda.cs.pub.ro
Mon May 7 16:05:35 EEST 2007


Vlad Dogaru wrote:
> Razvan Deaconescu wrote:
>> Salut!
>>
>> Observatii referitoare la coding style:
>>
>> <flame>
> O, da, fiecare cuvant arde ;-)
>> - eu folosesc TAB pentru indentare, desi nu am o problema cu 4 spatii 
>> cat timp mi se specifica avantajele
> Setasem vim conform recomandarii Python si ramasese asa. Dar tab-urile 
> sunt mai flexibile si ocupa doar un caracter, deci mai bine TAB. Scuze, 
> dar dadusem ``copy-paste'' din reflexe, fara a ma gandi.
> 
> Ar trebui totusi pus un modeline vim in fiecare fisier, ca sa nu ne 
> trezim cu taburi cat toate zilele (a se citi: 8). Pentru cine nu 
> foloseste vim, cred ca au si Gedit si altele optiuni asemanatoare.
>> - sa incercam sa pastram codul cat mai curat si fara brizbizuri; de 
>> optimizari se ocupa compilatorul; nu trebuie sa ne spargem in figuri; 
>> vrem sa fie codul clar
> Te referi la abuzarea faptului ca atribuirea este un operator? Cred ca 
> ai dreptate, acum ca ma gandesc mai bine
>> - partea cu tipul functiei sus este ok pentru folosire ctags (parca); in 
>> principiu eu nu scriu cod asa, dar nu am nimic impotriva, cat timp mi se 
>> specifica avantajele acestei scheme
> Pai in afara de ctags (as prefera Doxygen, dar nu sunt sigur ca se 
> exclud recirpoc in functii), mie mi se pare mai usor de citit, in sensul 
> ca imediat deasupra unei acolade de pe coloana 1 e numele functiei. Si 
> cu un rand mai sus e tipul ei. Compara:
> 
> static struct nod* aloca_nod(int val)
> 
> static struct nod*
> aloca_nod(int val)

mi se pare ca dureaza sa-ti plimbi privirea pe randul urmator; repet nu 
am nici o problema in a se scrie altfel; e folosita destul de des metoda 
asta si nu ma deranjeaza la culme :-)

<underware type="asbestos" value="on">

ce ma deranjeaza e modul de declarare a poiter-ului

static struct nod* NU
static struct nod * DA

compara
struct nod* a, b;
struct nod *a, b;

primul iti da, la o vedere prea sumara, impresia ca b este tot de tipul 
struct nod* (adica tot pointer), cand el este de tipul struct nod (adica 
o structura)

</underware>

alte observatii necesare:
parametrii functiilor care sunt structuri vor fi transmisi prin adresa 
(pointer) pentru a nu incarca de pomana stiva; mai ales ca e posibil sa 
vrem sa-i si modificam si daca ii modificam nu o sa se vada in 
exteriorul functiei

Razvan



More information about the cspay-dev mailing list