以前很經常使用 GitHub 上的各種套件,
不管是大到頁面,小到按鈕,深到語法,都喜歡用自己覺得好看又厲害的,
也遇過趕工的時候直接聯絡作者請求授權,或是公司上市前盤點使用所有套件的授權,
套件跟授權分不開,所以一起討論吧。
第三方套件包山包海,網路、圖像、語法糖、...。
讓我們回到十年前(2011),Android 2 ~ 4 左右的那個年代,
Android 每天都有很多開發人員上傳自製套件到 GitHub 上,
多到那時候有很多地方專門寫套件的整理,像是 awesome-android-ui。
但是現在缺少了很多,我想原因是:
總結下來,一種功能的實踐方式變得更單純,每個位置、每種元件都有明確的操作與表達,而官方每年 Google I/O 出的功能也越來越多且全面。
任何創作如文字、圖像、程式碼等即使不聲明任何東西,都是有著作權的。
如果想要開放自己的作品供他人使用,就會訂授權方式讓使用的人遵守,
程式領域有許多特有的授權方式,這邊列幾個主要的授權,使用者應盡義務從多到少是:
如果是想要開源,但不知道該選什麼授權,這邊也有網站可以協助挑選 choosealicense。
如果看不懂或沒有耐心看完,網路上也有很多整理比較,但一定要了解,像是使用了採用 GPL License 的套件,就必須跟著開源,公司可能因此陷入危機。
就像食物的成分標示一樣,軟體也可以標出自己的成分,這叫做 SBOM。
而要做 SBOM,有些工具可以完成:
要注意的是,因為最後會產出結果,公司不同部門使用的程式語言不同,需要找能支援不同語言的工具,且還要注意專案內的不同套件引用方式是否都能列出。
上面提到的幾種授權都跟程式相關,
如果是圖、文、音樂等內容,一般最常見的就是 CC,
這裡也有協助選擇的工具,中研院授權精靈。
前面比較多篇幅是在說如何使用別人的心血,
其實自己提供開源也有很多好處: