15,076
edits
m (→方案選擇的指標) |
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]。 | ||
#* 程式語言版本的支援程度: | #* 程式語言版本的支援程度: 例如 (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://docs.google.com/spreadsheets/d/1UarMQhYT4E0e_6dFCNGaw2_TNU2v83heZa2USneo5YQ/edit?usp=sharing 自由軟體資訊清單 文件範本] | |||
#* | |||
#* 嚴謹符合[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 試算表] | |||
== 相關詞彙 == | == 相關詞彙 == | ||