How to choose open source solution: Difference between revisions

Jump to navigation Jump to search
m
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''技術選擇:如何選擇開放原始碼、自由軟體的軟體方案'''
'''技術選擇:如何選擇開放原始碼、自由軟體的軟體方案'''
{{Tip | tip=什麼是「開放原始碼」軟體:「開放原始碼軟體是一種電腦軟體,公開其原始碼供使用者自由取用、學習、修改及分發,但需遵守特定的開源協定。它強調協同合作和知識分享,通常採用開放合作的開發模式,並釋出至公眾領域。」(資料來源:[https://zh.wikipedia.org/wiki/%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6 維基百科])}}


== 方案選擇的指標 ==
== 方案選擇的指標 ==
# 釐清需求:清楚與定義自身需求,作為方案選擇的比較基準
# 釐清需求:清楚與定義自身需求,作為方案選擇的比較基準
# 版本更新和專案開發的活躍度:
# 版本更新和專案開發的活躍度:
#* 最近 (數個月內) 有更新軟體版本,而不是數年前才做最後一次更新或者已經公告停止繼續開發。沒有人維護的專案,代表功能不會更新丶錯誤不會修正,也同時代表未來有資安的隱憂。
#* 最近 (數個月內) 有更新軟體版本,而不是數年前才做最後一次更新或者已經公告停止繼續開發。沒有人維護的專案,代表功能不會更新丶錯誤不會修正,也同時代表未來有資安的隱憂。如果是比較新的領域,例如大語言模型相關的專案,更新的頻率則需要再縮短。
#* 程式庫網站 ([[OpenSource for Educators]]) 提供數值資料,以 GitHub 專案為例,點選專頁首頁 (1) 查看 「Changelog」 作者寫的版本更新、或者是 (2) 查看 「commits」檔案更新、(3) 觀察開發活躍度 e.g.: [https://github.com/NuCivic/dkan/graphs/contributors Contributors to NuCivic/dkan]。
#* 程式庫網站 ([[OpenSource for Educators]]) 提供數值資料,以 GitHub 專案為例,點選專頁首頁 (1) 查看 「Changelog」 作者寫的版本更新、或者是 (2) 查看 「commits」檔案更新、(3) 觀察開發活躍度 e.g.: [https://github.com/NuCivic/dkan/graphs/contributors Contributors to NuCivic/dkan]。
#* 程式語言版本的支援程度: 例如該專案程式語言使用 PHP 撰寫,則可比對目前 PHP 版本的支援程度( [https://secure.php.net/supported-versions.php PHP: Supported Versions])。當 PHP 核心開發團隊不支援 A 版,而該專案仍然使用該版本,則代表有 A 版本的漏洞問題。
#* 程式語言版本的支援程度: 例如 (1) 該專案程式語言使用 PHP 撰寫,則可比對目前 PHP 版本的支援程度( [https://secure.php.net/supported-versions.php PHP: Supported Versions])。當 PHP 核心開發團隊不支援 A 版,而該專案仍然使用該版本,則代表有 A 版本的漏洞問題。 (2) 安裝相依性套件時顯示「xxx is discontinued upstream」,例如「Warning: xxx has been deprecated because it is discontinued upstream!」
#* 軟體測試: 專案有無[https://zh.wikipedia.org/zh-tw/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95 單元測試](unit test)、[https://zh.wikipedia.org/zh-tw/%E4%BB%A3%E7%A2%BC%E8%A6%86%E8%93%8B%E7%8E%87 測試覆蓋率]報告(test coverage report)
#* 軟體測試: 專案有無[https://zh.wikipedia.org/zh-tw/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95 單元測試](unit test)、[https://zh.wikipedia.org/zh-tw/%E4%BB%A3%E7%A2%BC%E8%A6%86%E8%93%8B%E7%8E%87 測試覆蓋率]報告(test coverage report)
# 問題回覆與支援文件:使用者遇到問題時,有人協助回覆。
# 問題回覆與支援文件:使用者遇到問題時,有人協助回覆。
Line 15: Line 18:
#* 社群實體聚會次數,例如輸入 {{kbd | key=<nowiki><架構名稱> (meetup OR conference)</nowiki>}} 再加上時間條件「過去一年」
#* 社群實體聚會次數,例如輸入 {{kbd | key=<nowiki><架構名稱> (meetup OR conference)</nowiki>}} 再加上時間條件「過去一年」
#* (輔助用) 以 GitHub 專案為例,則可根據被收藏/星星數 (star) 的數量,作為熱門度的衡量指標 e.g. [https://github.com/jackmoore/colorbox/stargazers Stargazers · jackmoore/colorbox · GitHub]。但是星星數不準的狀況是,該專案由 C 國人開發,加上 C 國人口眾多,無法作為與其他同型專案的比較基準。
#* (輔助用) 以 GitHub 專案為例,則可根據被收藏/星星數 (star) 的數量,作為熱門度的衡量指標 e.g. [https://github.com/jackmoore/colorbox/stargazers Stargazers · jackmoore/colorbox · GitHub]。但是星星數不準的狀況是,該專案由 C 國人開發,加上 C 國人口眾多,無法作為與其他同型專案的比較基準。
# 授權議題:如果想將開放原始碼的軟體方案,整合在公司的商業服務內,需考慮著作權授權與商業應用是否相容。
# [[List of software licensing schemes | 授權議題]]:如果想將開放原始碼的軟體方案,整合在公司的商業服務內,需考慮著作權授權與商業應用是否相容。
#* [https://www.openfoundry.org/LicenseWizard/ 授權精靈]、[http://choosealicense.com/ Choosing an OSS license doesn’t need to be scary - ChooseALicense.com] {{access | date=2017-04-16}}
#* 直接下載:[https://docs.google.com/spreadsheets/d/1UarMQhYT4E0e_6dFCNGaw2_TNU2v83heZa2USneo5YQ/edit?usp=sharing 自由軟體資訊清單 文件範本]
#* [http://mic.iii.org.tw/intelligence/reports/pop_Docfull_oss.asp?docid=CDOC20030601021 開放原始碼授權模式分析] 主要授權模式 GPL、LGPL、BSD 與 MPL 四種介紹。
#* [http://www.openfoundry.org/tw/legal-column-list/8397-2011-07-22-09-56-32 善用自由軟體資訊清單有效降低法律糾紛的風險 - OpenFoundry]([https://docs.google.com/spreadsheets/d/1UarMQhYT4E0e_6dFCNGaw2_TNU2v83heZa2USneo5YQ/edit?usp=sharing 自由軟體資訊清單 文件範本], e.g.: [http://confluence.jetbrains.com/display/PhpStorm/Third-Party+Software+Used+by+PhpStorm Third-Party Software Used by PhpStorm])
#* 嚴謹符合[https://opensource.org/osd 開放原始碼定義]的授權方案清單: [https://opensource.org/licenses Licenses & Standards | Open Source Initiative] {{access | date = 2016-09-06}}
#* 嚴謹符合[https://opensource.org/osd 開放原始碼定義]的授權方案清單: [https://opensource.org/licenses Licenses & Standards | Open Source Initiative] {{access | date = 2016-09-06}}
# 維護或轉換方案的成本:'''選擇免費的開放原始碼的軟體方案,不代表不需要任何維護費用。'''
# 維護或轉換方案的成本:'''選擇免費的開放原始碼的軟體方案,不代表不需要任何維護費用。'''
Line 27: Line 28:
# 中文議題:可以使用繁體中文、多國語言 (unicode)
# 中文議題:可以使用繁體中文、多國語言 (unicode)
# (選擇性考慮的問題) 使用新或穩定的技術:例如試用 demo 版本功能、或查看截圖,確認軟體方案使用的技術或是否支援行動裝置。
# (選擇性考慮的問題) 使用新或穩定的技術:例如試用 demo 版本功能、或查看截圖,確認軟體方案使用的技術或是否支援行動裝置。
== 方案選擇的提示詞 ==
給 AI 的提示詞
<pre>
我的需求是 _________ ,請依照以下指標評估推薦的方案:
1. 專案活躍度:近期是否有持續更新?是否有人維護?
2. 授權相容性:是否可用於商業用途?
3. 社群互動數:提供 GitHub stars, forks 數字
4. 推薦理由
</pre>


== 延伸閱讀 ==
== 延伸閱讀 ==
* https://choosealicense.com/appendix/
Wizard of license
* [https://choosealicense.com/appendix/ Appendix | Choose a License]
* {{Gd}} Yi-Feng Tzeng (Ant) (2014). [http://blog.gcos.me/2014-11-03_how-to-choose-open-source-software-or-third-party-software.html 如何正確選擇自由/開放源碼軟體(或第三方軟體) | Ant's ATField] {{access | date=2015-02-21}}
* {{Gd}} Yi-Feng Tzeng (Ant) (2014). [http://blog.gcos.me/2014-11-03_how-to-choose-open-source-software-or-third-party-software.html 如何正確選擇自由/開放源碼軟體(或第三方軟體) | Ant's ATField] {{access | date=2015-02-21}}
* Randy Metcalfe (2004). [http://oss-watch.ac.uk/resources/tips Top tips for selecting open source software] {{access | date=2016-08-04}}
* Randy Metcalfe (2004). [http://oss-watch.ac.uk/resources/tips Top tips for selecting open source software] {{access | date=2016-08-04}}
Line 43: Line 57:
* 林誠夏 (2017). [https://twoss.io/2017Tech.html 開源軟體法制授權與供應鏈協作] {{access | date=2017-08-05}}
* 林誠夏 (2017). [https://twoss.io/2017Tech.html 開源軟體法制授權與供應鏈協作] {{access | date=2017-08-05}}
* data gravity https://twitter.com/kakashiliu/status/968843915997491200?s=19
* data gravity https://twitter.com/kakashiliu/status/968843915997491200?s=19
* [https://blog.pulipuli.info/2023/01/how-to-evaluate-an-open-source-project.html 如何評估開放原始碼專案? / How to evaluate an Open Source Project? - 布丁布丁吃什麼?]
* Louis Lin (2021). [https://lupopi.com/blog/wordpress 為什麼用 WordPress?] {{access | date=2023-07-06}}
* [https://www.youtube.com/watch?v=f6Mo7W6YgWI 網頁開發人員如何意外使用到商用授權的開放原始碼套件 - YouTube]
選擇技術
* [https://boringtechnology.club/index_zh_TW.html 選擇無聊的技術]
評估開放原始碼 AI 專案
* [https://github.com/el09xccxy-stack/oss-investment-scorecard el09xccxy-stack/oss-investment-scorecard: A structured 5-dimension scoring framework for evaluating open-source AI projects from a VC investment perspective. Maintained by Lucy Chen, EIR at Zoo Capital (Singapore, $2B+ AUM).] ([https://www.facebook.com/lucy.chen.908347/posts/pfbid0knY8DTg8r8MHDpX4vntCZcPuKymThrJ4P48wkRMj7DFv1CCnMrbyCd9Q1JMaZ7eml 作者臉書])


Copyright compliance
Copyright compliance
* [https://blog.gcos.me/tags/license/ License · Ant's ATField]
* [https://blog.gcos.me/tags/license/ License · Ant's ATField]
* [https://www.facebook.com/photo.php?fbid=10213151937712465&set=a.2104140142503&type=3 #DevOps #Compliance #OpenSourceLicense 執行確實的... - Ant Yi-Feng Tzeng] "執行確實的 DevSecOps,除了 (Information) Security 外,還會有 Compliance 流程。這些涉及法遵相關的議題,包括法令及契約 (上下游或第三方) 等。 圖片引用 #招商銀行 在 DevSecOps 流程中納入 Black Duck Software 產品的流程,以遵守或避免開放/自由軟體授權契約的風險。" BSD, Apache, MIT > MPL > LGPL > GPL
* [https://www.facebook.com/photo.php?fbid=10213151937712465&set=a.2104140142503&type=3 #DevOps #Compliance #OpenSourceLicense 執行確實的... - Ant Yi-Feng Tzeng] "執行確實的 DevSecOps,除了 (Information) Security 外,還會有 Compliance 流程。這些涉及法遵相關的議題,包括法令及契約 (上下游或第三方) 等。 圖片引用 #招商銀行 在 DevSecOps 流程中納入 Black Duck Software 產品的流程,以遵守或避免開放/自由軟體授權契約的風險。" BSD, Apache, MIT > MPL > LGPL > GPL
== 相關表單 ==
* [https://docs.google.com/spreadsheets/d/1UarMQhYT4E0e_6dFCNGaw2_TNU2v83heZa2USneo5YQ/edit#gid=0 自由軟體資訊清單 (含著作權授權方案) - Google 試算表]


== 相關詞彙 ==
== 相關詞彙 ==

Navigation menu