这篇博客在我的草稿从 2017 放到现在,我做了三年的公共组件,我觉得我现在能来发布这篇笔记。本文将来和大家讲龙华大佬告诉我的公共组件 CBB 建设相关知识
公共组件 CBB 绝不是 .NET C# 的专利,尽管 C# .NET 下的 CBB 构建是最为便捷的。在其他的语言,甚至是其他领域,如建筑和制造等,也是可以用上公共组件 CBB 建设的。下面以一个案例来告诉大家
国内某大型的科技公司审查了自己的制造过程,发现:
- 仅螺丝一项,他们就用了 100 多种逻辑
- 二极管就用了 30 多种
而在经过调整之后,有如下的好处
- 因为减少零件的种类,可以加大通用器件采购的批量,大批量采购可以获得更低的价格
- 采用行业通用的器件,遇到问题时可以获取行业的技术支持
以上的案例是从制造业的角度,可以更为清晰的看到优化的效果。在软件团队,随着开发团队规模的增加,咱会遇到如下问题:
- 开发团队数量、开发人员数量需求急速膨胀
- 人均效率不增反降
- 类似的技术问题,在不同的项目或不同团队中,被不同的人反复解决
- 类似的错误,在不同的产品,不同的显示,不同人员重复出现
- 面对客户小批量的个性化需求,进退两难
解决以上问题的最佳方法是推动 CBB 的建设,假如有 CBB 的存在,多个开发团队可以有更多可以共用的资源,此时开发效率会和团队规模正相关。类似的技术问题可以快速通过公共组件解决,公共组件踩过的坑,可以通过调用公共组件绕过
个性化的定制需求,可以通过快速组合多个公共组件实现
从道的层面来讲公共组件的建设:
- 公共组件的成立不一定需要自上而下的推动,可以由开发者自身开始积累
- 不要过度追求公共组件的数量,随缘而做
- 组件之前定义的是规范和标准,而不是耦合
- 无论大小,都可成为组件,只要有开始就好
- 开发工具本身也是组件
从术的层面来讲公共组件的建设:
从使用公共组件开始,尝试从 NuGet 上获取第三方制作的公共组件,实现功能。养成使用公共组件的习惯。从伸手党转为贡献者,先从可以公开的公共组件,和业务无关的公共组件开始积累,可以尝试推送到 NuGet.org 上,全世界的开发者都可共用
搭建自己团队内部的 NuGet 服务器,只要能独立的模块,都可以成为 NuGet 包,推送到自己的 NuGet 服务器
多个工具类以及聚合的功能可以积累成为底层公共组件库。有了底层公共组件库之后,可以不断进行优化,包括 API 和性能等层面分别进行优化。尝试迭代公共组件库
制作公共组件制作工具,降低公共组件制作门槛
建设了 CBB 公共组件,可以很大程度提高经验、技术、知识的共享和重用,提升整个团队的技术水平
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。 欢迎转载、使用、重新发布,但务必保留文章署名 林德熙 (包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我 联系。