Temat: Standardy kodowania
Marek Dąbek:
Bardziej skłaniam się ku podejściu, takiemu że wynikiem implementacji standardu w zespole ma być zestaw reguł kodowania, które ułatwiają osiągnięcie celu (np. wysokiej wiarygodności software).
Wg. mnie narzędziem ,,standard formatowania kodu i braku
niebezpiecznych właściwości języka'', głównie podniosę _czytelność_
kodu i zmniejszę _prawdopodobieństwo_ popełniania błędów. To
prowadzi ale _pośrednio_ (nawet bardzo pośrednio) do wysokiej
wiarygodności oprogramowania. Bez wątpienia polepszę jednak
komunikowanie się pomiędzy uczestniczącymi w projekcie
programistami co jest już wartością, buduje jakość wewnętrzną
oprogramowania. Tylko że jakość wewnętrzna nie obchodzi klienta :>
Myślę że szybciej można osiągnąć podniesienie wiarygodności
oprogramowania poprzez:
Definicję dozwolonych konstrukcji:
- na poziomie zbliżonym do architektury (cytuję jedną
z wypowiedzi.. ,,no to przekazujemy ten wskaźnik na void i
radośnie rzutujemy czy nie?'') narzuconą w danym projekcie
lub ogólnie
- standard logowania zdarzeń lub przejścia modułu do
określonego stanu (ważne żeby standard wspólny i spójny w ramach
projektu lub portfela projektów)
- obsługi błędów (niedoskonałe zwracanie wartości i ,,magicznie
ustawiana'' zmienna błędu czy wyjątki które kosztują...)
pomijając fakt jak te wyjątki obsłużyć... czy przez ślad czy
łapiąc ,,blisko'' i obsłużyć
- określenie właściwości języka których _nie_wolno_wykorzystywać_
(a wiem że jest kilka technik które w C++ i C proszą się o...
niestosowanie :))
- jak i co z wielowątkowością... :) (oj.. trup w szafie :) )
...
Stosowanie metod i metodyk wytwórczych także na poziomie
architektury:
- TDD
- SOLID (
http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod )
- testy, a szczególnie zautomatyzowana regresja
- wzorce analityczne, projektowe i obsługi wielowątkowości
- dbałość o szybkie i automatyczne budowanie nowego wydania
oprogramowania
- separację ochrony i mechanizmów bezpieczeństwa
...
No dobra :) Wdepnąłeś w mój konik i trochę się rozpisałem :)