我看开源软件
2020-02-27 190浏览
- 1.我看开源软件
- 2.什么是开源软件 • 向公众开放源代码 • 开源软件 ≠ 免费软件 – 红帽 RHEL
- 3.举栗 • 操作系统: Linux 、 Android • 服务器: Apache 、 Nginx • 数据库: MySQL 、 MongoDB 、 Redis • 缓存系统: Memcached • 高可用工具: HAproxy 、 LVS
- 4.我看开源软件 • 小而美 – 专注核心功能 – 从低端切入,农村包围城市 • 使用简单 – 没有花哨的功能和配置 – 资料丰富,遇到问题能迅速找到答案
- 5.我看开源软件 • 质量高 – Coverity 报告 • 私有:每千行 0.64 个缺陷 • 开源:每千行 0.45 个缺陷 • 更新快 – Ubuntu 每半年发布一个新版本
- 6.我看开源软件 • 资料丰富 – 文档全面、及时。 – 使用范围广。 – 社区活跃。 • 技术支持 – 你需要什么样的技术支持? – 补丁。 – 故障排除。
- 7.我看开源软件 • 谁在用开源软件 – 企业 • 荣威 350 • 波音 747 – 政府和学校 – 个人用户 • Chrome • Ubuntu
- 8.我看开源软件 • 谁在开发开源软件 – 基金会 • 自由软件基金会 • Apache 软件基金会 – 企业 • IBM • Oracle • Microsoft – 个人
- 9.我看开源软件 II • 开源软件从何而来 – 个人 – 学校 – 企业 • 真正的推动力量
- 10.我看开源软件 II • 为什么有人用开源软件 – 成本低 • 使用成本低 • 维护成本低 • 开发成本低 • 新人上手快 – 质量高 – 灵活
- 11.我看开源软件 II • 为什么企业会投入资源支持开源软件 – 降低开发成本 – 降低维护成本 – 吸引开发者 – 丢掉包袱,专注业务
- 12.我看开源软件 II • 为什么开源软件质量高 – 用脚投票 • 坏的软件 • 坏的代码 – Code Review • 比 unittest 更有效
- 13.我看开源软件 II • 业务和代码 – 矛盾,不可分离 – 人住的是房子,不是地基 – 地基决定了房子的高度 – 房子各不相同,地基都差不多
- 14.我看开源软件 II • 非标准化预制件 – 黑盒可怕吗? • 轮胎也是黑盒 – 代码模块难以标准化 – 开源是非标准化的预制件
- 15.我看开源软件 II • 外包和众包 – 粒度不同 – 众包:外包到人 • 非标准化小大粒度整合更容易 • wiki
- 16.我看开源软件 II • 门槛低 – 使用门槛 – 开发门槛
- 17.我看开源软件 II • 选举和进化 – 选举 • 用行为投票 • 好的项目 / 功能更多人关注,更多人开发,更多人 维护,更多人使用 – 进化 • 用行为投票 • 不好的项目 / 功能更少人关注,更少人开发,更少 人维护,更少人使用 • 被淘汰
- 18.我看开源软件 II • 成功的原因 – 良性达尔文社区 • 持续大量资源输入 • 资源共享,信息不对称性低 • 过程公平 • 进入成本低,基数大 • 淘汰机制