Day 13:第三方套件、授权

前言


以前很经常使用 GitHub 上的各种套件,
不管是大到页面,小到按钮,深到语法,都喜欢用自己觉得好看又厉害的,
也遇过赶工的时候直接联络作者请求授权,或是公司上市前盘点使用所有套件的授权,
套件跟授权分不开,所以一起讨论吧。

第三方套件


第三方套件包山包海,网路、图像、语法糖、...。
让我们回到十年前(2011),Android 2 ~ 4 左右的那个年代,
Android 每天都有很多开发人员上传自制套件到 GitHub 上,
多到那时候有很多地方专门写套件的整理,像是 awesome-android-ui
但是现在缺少了很多,我想原因是:

  • 任何东西一开始都是百家争鸣,好的东西才会被留下。
  • 好的东西用的人多,维护的人就多,支援多、bug 少,後面的人要想写新套件,必须要颠覆传统,并说服大家使用,是很困难的。
  • 大家经常遇到套件宣布停止维护、新旧版本不支援等问题,这会让人失去信心,如果自己刻或是官方给的东西也能做到,可能就不会赌上这把。
  • Android 官方可能会推荐使用某套件,或是官方自己实作了类似的功能。
  • 官方有越来越明确的 design guidelines,使用者也已经习惯官方、app 生态的 UI。

总结下来,一种功能的实践方式变得更单纯,每个位置、每种元件都有明确的操作与表达,而官方每年 Google I/O 出的功能也越来越多且全面。

授权


任何创作如文字、图像、程序码等即使不声明任何东西,都是有着作权的。
如果想要开放自己的作品供他人使用,就会订授权方式让使用的人遵守,
程序领域有许多特有的授权方式,这边列几个主要的授权,使用者应尽义务从多到少是:

如果是想要开源,但不知道该选什麽授权,这边也有网站可以协助挑选 choosealicense

如果看不懂或没有耐心看完,网路上也有很多整理比较,但一定要了解,像是使用了采用 GPL License 的套件,就必须跟着开源,公司可能因此陷入危机。

如何盘点公司使用了哪些套件


就像食物的成分标示一样,软件也可以标出自己的成分,这叫做 SBOM
而要做 SBOM,有些工具可以完成:

要注意的是,因为最後会产出结果,公司不同部门使用的程序语言不同,需要找能支援不同语言的工具,且还要注意专案内的不同套件引用方式是否都能列出。

创用 CC (Creative Commons)


上面提到的几种授权都跟程序相关,
如果是图、文、音乐等内容,一般最常见的就是 CC
这里也有协助选择的工具,中研院授权精灵

结语


前面比较多篇幅是在说如何使用别人的心血,
其实自己提供开源也有很多好处:

  • 使用的人遇到问题会提出问题。
  • 甚至会有人主动协助维护。
  • 在圈子中提升自己的能见度,如:Jake Wharton
  • 也有不少工具被收购、商转的例子。

<<:  【在厨房想30天的演算法】Day 13 资料结构:堆积 Heap

>>:  Day13 demand page 与 copy on write

认识与了解WebDAV

最後云端,为完赛画下彩虹~~ 为了使部署的云端硬碟能像Google Drive一样使用串流、WebU...

Day 19 云端快速架设直播应用

随着5G网路时代来临,直播产业也越来越兴盛,生活中的各处都出现直播的应用:新闻直播、游戏直播、赛事...

Day-15 Pytorch 的 Regression 实作

那我们之前看过了 Python 的 Easy Regression 实作,昨天也看过了 Pytor...

【把玩Azure DevOps】Day12 Artifacts应用:上传第一个nuget package

前一篇文章简单介绍了Azure DevOps Artifacts,知道了它就是用来存放私有套件的套件...

安装 + 最最最基本的Hello world

简介 什麽是Python Python本意是指蟒蛇,是一种面相对象的解释型语言 人生苦短,我学Pyt...