軟體開發過程總是伴隨著 bug 和不周全的設計,有時候還會有趕時間寫下的「有味道」的代碼,這種事在公司的代碼里已經是屢見不鮮了。但是在知名的開源軟體項目里,這種代碼存不存在呢?

因為沒有閱讀過多少的開源項目代碼,所以好奇提這麼個問題,期待大家可以多多舉例。


提名FFmpeg(指做庫開發而不是命令行工具),光看API就覺得項目已經失控了。

很多API用數字結尾,比如用foo3取代foo2函數。

新手官方文檔看一遍下來大概率是跑不通hello world的,網上也沒有太多資料,成體系的更少,在目前版本上還能跑過的幾乎沒有。

官方的example里,用新API構建出來的結構體,需要轉換成舊API能夠接受的結構體,並使用一個已經廢棄的函數,才能跑通流程。

以上是我前兩年心血來潮學FFmpeg時的經歷。


https://github.com/apache/commons-collections/blob/COLLECTIONS_3_2_BRANCH/src/java/org/apache/commons/collections/CollectionUtils.java


openssl

使用極其廣泛,代碼極其垃圾。


我只是引用,我沒有具體看過 php-src 中用的是 tab 還是 space

PHP源碼就是使用1個製表符進行縮進,不符合PSR標準,是不是PSR連PHP自己也要討伐呀,笑話.

我當時看到這一段時已經過於震驚已經不想要看 php-src 的具體是不是 tab 了


沒有一個完整的系統,所有的漏洞都是不斷發現不斷修補的!

同理,所有的代碼都是存在bug的。。


mysql server層源碼,簡直難受╯﹏╰


推薦閱讀:
相关文章