Monday, November 12, 2007

OJP część E

W całym programie stosujemy ten sam styl wcięć. Jeżeli szef nakazuje używać K2R to używamy K2R choćbyśmy całe życie używali czegoś innego.




K2R:


for (int i=0; i <= 100; i++) {
-> ...

-> ...

-> ...

}


// wada nie można jednym komentarzem sprawić by pętla wykonała się tylko raz.

// Styl Almana eliminuje ten problem:

// pętla leci tylko raz nie da się tego zrobić w K2R for (int i=0; i <= 100; i++)
{
-> ...
-> ...
-> ...
}


//Tabulacje zamieniamy na spacje. Bo nie ma wtedy problemu przy przeniesieniu z Linux-a na MAC-a programu, w którym zgadzają się wcięcia. Najlepiej jest mieć edytor, który automatycznie umie robić to za nas.

Taki komentrz jest problematyczny

/*

/* */

*/


Nie zadziała wyłączenie sekcji kodu.


Inna metoda wyłączania kodu


#ifndef 0

//

/*

*/

#endif

i tutaj zadziała :)

Dodatkowo, możemy opisywać każdy plik podając na przykład:

autora
data utworzenia
data ostatniej modyfikacji.

Opisujemy też każdą klasę mówiąc (nie programistycznie, ale tak z punktu widzenia modelowanej rzeczywistości) co przedstawia i co robi.

Komentujemy każdą metodę, mówiąc co robi (z punktu widzenia modelowanej rzeczywistości)

Komentujemy trudniejsze kawałki kodu, mówiąc co robią (ogólnie co robi dany kawałek kodu) jeżeli nie widać explicite co robi.

Parametry w stylu "zmienna = "wartosc"" podajemy w plikach nagłówkowych *.h, nie w plikach *.cpp - dodatkowo, jeżeli sparametryzujemy wszystkie parametry np. konstruktora to jest to automatycznie konstruktor domyślny: konstruktor();
Wirtualizacja:
Robimy wirtualizację. Czyli robimy metody czysto wirtualne + destruktor musi być wirtualny.
Zasada substytucji Liskova mówi o tym, że jeżeli wszystkie klasy bazowe zastąpimy pochodnymi to działa nadal poprawnie.

1 comment:

Anonymous said...

W googlu pisza

for( .. ) {



;)