開源的坑

咱們使用開源軟件大部分狀況是爲了避免重複造輪子,使用一些別人寫好的具備通用性的代碼來減小咱們的代碼量,提升開發效率,減小開發成本。並且使用一些優秀的開源軟件會比咱們本身開發的好,畢竟它們被不少人使用,經受了不少人不少次的檢驗。
可是,有些開源軟件卻很坑,用它們到最後發現有不斷的坑,到頭來發現不如直接用底層的、未封裝的API,或者本身開發。下面說些應該避免的坑:編程

  1. 社區小(好比GitHub的star少)的開源軟件
    對於社區小的開源軟件,當你遇到問題,很難快速解決。而那些社區大的開源軟件,Google搜下很容易搜到你遇到的常見的問題。大小是相對的,那麼談談如何比較兩個開源軟件的社區大小,能夠比較它們在開源平臺的收藏數量、issues數量、PR數量,也能夠用Google trends對比下,也能夠對比下Google搜索結果數目,也能夠對比下它們在stackoverflow等平臺搜索結果數目。
  2. 國產開源軟件
    不是看不起國產開源軟件,國產優秀的開源軟件其實也有一些。但總體上看,國產開源軟件文檔質量不行。社區小,通常不多有外國人使用,而國外的開發者數量和質量明顯高於國內。舉個例子,fastjson和jackson,雖然fastjson應該比jackson性能好一點,但fastjson的功能和代碼質量不如jackson,並且fastjson社區也不如jackson,當用jackson遇到問題時,用Google英文搜索下,通常很容易搜到解決辦法,而用fastjson遇到問題通常只能去看看fastjson那一點點文檔。順便提一下,用中文搜索問題,通常比較難很快找到解決辦法。我想緣由大概以下:一、Google的中文搜索能力不如英文(baidu啥的更別談)二、國內開發者魚龍混雜,因爲編程入門門檻低,有好多水平欠缺的開發者寫了大量低質量博客,中文博客的信噪比很是糟糕,不多有我感受還能夠的博主。舉個例子,CSDN博客質量簡直不堪入目,我如今直接用擴展屏蔽了CSDN。
  3. 再也不維護的或代碼貢獻頻率低的開源軟件
    在我開來,軟件開發者應該要對本身的軟件負責,就是一直對本身開源的軟件質量負責,close全部issues,解決軟件bug。作到這點很難,連我本身一些玩具開源項目都再也不維護,但我會在README中標註再也不維護,減小浪費有些人的時間,我也會及時close每個issues。若是實在不想維護,GitHub還有archive的功能,將項目設置爲只讀。在我看來,解決issues是開源的遊戲規則,而open issues也是遊戲規則,若是你們都這樣,開發者對軟件負責,軟件使用者也對軟件負責,開源社區才能健康發展。
  4. 文檔少,代碼註釋少的開源軟件
    若是一個開源軟件沒什麼文檔,或文檔質量不行,那麼軟件的使用者也不會不少,軟件自己也很難發展,我感受這樣的開源意義少了不少。

下面談談如何選選擇坑較少的開源軟件,大概就是避免上面的坑吧。和其餘不少行業同樣,軟件行業也在於實踐,當你多用一些開源軟件,多踩一些坑,天然會避免不少坑,若是實踐了不少次,但依然遇到不少坑,我想大概有兩種可能。一是你不適合搞軟件,沒有那一點點感受。二是你很厲害了,已經找不到一些適合你的開源軟件了,這時候應該是你造輪子的時候了。json

相關文章
相關標籤/搜索