Vite, v cem jsou lidi horsi nez v psani kodu? V cteni kodu.
Security review je neuveritelne obtizna vec. Doporucuji vybrat si nejaky software a alespon na den-dva si to vyzkouset. Je to dost dulezita zkusenost.
Delal jsem napr. review na Mozilla security/pkix (novy kod na validaci retezcu certifikatu a path building ve Firefoxu >= 31). Nasel jsem critical bug v overovani X509.v3 extensions v kodu, ktery uz prosel pres code review.
Nasledovala oprava a dalsi review, ktery odhalil dalsi bug neobjeven puvodnim reviewerem. Po dvou dalsich koleckach fix-review to bylo opraveno.
Na to, aby v open source fungoval princip "thousands of eyes", ten kod se musi fakt cist.
(Jenom pro uplnost, tohle samozrejme neplati jen pro Firefox.)
V open source je davan za vzor vyvoj linuxu. Kvalitni rizeni a diskuse. To je ale jen mensina. Nebo mne dostal projekt alsa, kde v diskusi kolikrat vidite otazky ke kazdemu radku kodu.
Rada vyvojaru v OSS jsou sebestredna asocialni pometla bez sebekazne. Jejich kod by vzal jen silenec a startupovi gelousi. Nekdy se divim ze ma nekdo odvahu commitovat ta svinstva co se v oss vyskytuji. Muzete mit i uzasneho matematika nebo kryptoanalytika, ale kod od nej vypada jak z Obfuscated Code Contest.
Ono je uplne neco jineho je pokud objevite naprosto zrejmou chybu po programatorovi, ktery ma kod hezky a ucesany. A neco jineho kdyz kod psala hromada vyvojaru kteri spolu ani nemluvi a vsichni jedou na svem egu a tvrdych drogach. Nejhorsi jsou ty veci kde mate do sebe vnoreno x komponent a ono to nahodou funguje a nikdo nevi proc. Blbe se to debuguje protoze jediny zpusob debugu po zavolani nake java gui ptakoviny pres jni nekam ven pre prorietarni protokol a pak pres seriak na naky jednocip v PLC.Pak uz jen merak/osciloskop a jtag debug adapter s nakym drahym devkitem. A na konci objevite ze je blba soucastka. aaaaaaaa! Na zabiti. A mesic code review v haji. Reviewer odpada a ukoncuje kontrakt protoze toho ma plne kecky.
Kdyz neco programuji, tak premyslim aby to bylo citelne. Pisi kod tak, abych ho mohl precist jak ja a tak i nekdo jiny. Dost casto se nyni uz stava ze mi nekdo zpetne vysvetluje kod/config/design ktery jsem pred par mesici navrhl sam, nebot mam vazne potize s pameti. A to lidem hodne pomaha prehledne psani. Proto to delam pekne. Ano trva mi to 3x tak dlouho protoze delam i docku. Ale firma potom nemusi najimat 10 lidi aby to dali dohromady. Jenomze to manazery nezajima. Dulezite je to naprasit hlavne v terminu. Ale ze se to neda fixovat bez celeho tymu lidi uz je jedno.
Kdo pise jak prase, tak zabodava digitalni kopi hluboko do zad tomu, kdo to pak bude cist.