Kod źródłowy kalkulatora wyborczego
"Na podstawie pobieżnej analizy pliku wykonywalnego i rozwoju aplikacji można dojść do wniosku, że wykonanie Kalkulatora Wyborczego powierzono pojedynczej studentce, pracującej prawdopodobnie dla zewnętrznego podwykonawcy. Pani Agnieszko, naprawdę współczujemy, jesteśmy z panią!"
M.....n z- #
- #
- #
- #
- #
- #
- 948
Komentarze (948)
najlepsze
k$?@a jak widzę coś takiego to wiem, że będą problemy...
wątki, wątki, wątki...
http://stackoverflow.com/questions/19995938/why-using-system-threading-thread-sleep-is-a-bad-practice
poproszę o 50.000 za audyt...
W skrócie: napisanie systemu do liczenia głosów dla PKW powierzono 23 letniej studentce która nie miała doświadczenia z technologią w której przyszło jej pisać ten system. Jakość kodu źródłowego tego systemu jest tragiczna i przeczy wszystkich możliwym wzorcom dobrego programowania. To jest cud że ten system w ogóle się uruchomił. Kod został wyciągnięty przez internautów z publicznie dostępnych plików wykonywalnych które ze względów bezpieczeństwa nie
Raczej stawiam na to, ze ta firemka zleciła napisanie częsci serwerowej jakiemuś innemu studentowi o podobnie marnych umiejętnościach...
Chyba, że jest to program, który ma za zadanie nic nie robić. Wtedy ma 0 linijek kodu i spełnia wszystkie wymagania.
xD
zmierzyłem złożoność cyklomatyczną tego kodu. Pierwsze 5 miejsc wygląda następująco:
① printProtocol::getProtocol – 521
② ProtocolForm::getHeader – 319
③ ProtocolForm::getCalculator – 318
④ ProtocolForm::getCalculator2 – 305
⑤ printProtocolNew::ProtocolPrint – 233
Dla porównania, Wikipedia następująco charakteryzuje możliwe wartości złożoności cyklomatycznej:
„• od 1 do 10 – kod dość prosty stwarzający nieznaczne ryzyko
• od 11 do 20 – kod złożony powodujący ryzyko na średnim poziomie
• od 21 do 50 –
Wersja jądra? ;P
Co to "Klan" jest?
Pewna korporacja w PL ma konwencję wersji X.Y.Z
gdzie:
X - podbijane przy dużych zmianach (np. zmiana API)
Y - podbijane przy mniejszych zmianach (zwykły CR)
Z - podbijane przy poprawkach błędów lub zmianach konfiguracyjnych.
Dzięki temu jak wywalił się cykliczny build Hudsona, to od razu było wiadomo, który commit go sprawił. Przy dużych ekosystemach podbijanie wersji przy każdym commicie uważam za OK.