開發者:如何選擇合適的開源庫?
豐富的開源資源為開發者提供了便利,但如何在這么多的資源中找到適用自己項目的呢?國外開發者Daniel Marbach(他的介紹)在其博客中詳細介紹了相關技巧。
Daniel Marbach認為利用開源庫可以大大提高開發速度,他經常鼓勵自己的團隊成員在開發中選用開源項目。他總結選用開源庫的技巧如下:
1. 首先根據自己的項目性質選擇合適的開源許可證。
對你所開發軟件的顧客和應用對象來說,許可證是否適用非常重要。例如,在受監管的環境下,通常只有Apache2可用。
2. 定義你要解決的問題類型。
例如需要解決的是軟件的分發、緩存、持久性還是松散耦合?
3. 提煉出問題的mate標簽和描述性短語。
例如,如果你需要解決的問題是關于在多個機器中的***路徑,你的標簽或短語可能會是遺傳算法、job-Shop Scheduling、規劃圖、優化調度算法、最短路徑等。
4. 瀏覽codeplex, google code or sourceforge (github.com 也是個很有價值的網站) ,并列出初步篩選到的項目。
例如:在IoC/DI列表里,可以找到ninject, structuremap, autofac, windsor等開源項目。
5. 找到這些項目的主頁,分別查看項目的***進展,標出那些很久沒有更新或者已經停止開發的項目。
注意主頁上的新聞、發布通告、提交記錄、網站更新等。我一般會從列表中刪除掉那些超過6個月沒有做更新的項目。
6. 到代碼庫頁找到相關測試組件。
建議你將沒有單元測試組件的項目從列表中刪去,也許你覺得這個要求過于苛刻了,但如果沒有單元測試,如何能保證這個項目的質量呢?
7. 在項目主頁中確認有相關文檔。
從選好的項目列表中刪去那些沒有文檔、代碼示例或適用指南的項目。畢竟學習一個全新的工具或框架我們需要付出一定的精力,一個全面細致的文檔是非常必要的。
8. 檢查項目源代碼是否指定了版本控制系統,并查看是否有擴展點(extension points)。
理想的開源軟件庫或框架并不限制你使用特定的日志框架或依賴注入容器(DI container)。而多種擴展點可以為你提供定制化日志系統、容器等的可能性。
還有其他一些篩選原則,你可以根據所作項目的需求進行考查:
1. 是否附有構建腳本(build script)
2. 該開源項目小組是否持續使用同一集成開發環境。
3. 該開源項目是否有清晰的road map。
4. 該項目是否設有問題跟蹤器(issue tracker)?
5. 是否很快就有社區補丁推出?
6. 在社區中,關于該項目的問題反饋是否迅速?
7. 其他的開發者是否樂于使用該開源項目,在社區中關于該項目的知識技巧是否很快傳播。
8. 有多少活躍的項目貢獻者?
9. 版本號管理是否清晰?
10. 對于來自社區的具體需求,該項目的改進和集成情況?
外文出處:http://www.planetgeek.ch/2010/06/20/how-to-select-open-source-libraries/
【編輯推薦】