前几天用AS的Statistic统计了一下结绳4.0的代码行数,结果让我大吃一惊(其实也在意料之中),
毕竟我们团队三年持续开发,有个100多万行也是正常的,来看具体数据:
Java总代码行:135万行
Java纯源代码行:70万行
Java注释行:49万行
Java空行:16万行
Kotlin总代码行:1.5万行
Kotlin纯源代码行:1.1万行
Kotlin注释行:2600行
Kotlin空行:1700行
结绳那么多的源代码是如何进行管理的呢?
首先得感谢Android Studio这么好的IDE,支持多模块开发,
其次就是感谢Google以及JetBrain的众多开源项目,让我学习到了如何去架构一个大项目,
也许结绳的架构现在还不是非常好,但是起码他支撑起了这一百多万行代码,并且我保证它后面维护起来会非常轻松。
相信在座的各位多多少少都学过设计模式,很多人也会为了设计模式而去设计,我觉得这是一种错误的观念(仅个人观点),
就拿架构来说,像现在一些公司的项目,明明用不到微服务,偏偏要去为了微服务而微服务,我觉得这是一种浪费系统资源的行为。
我们来带入一下,假设我们的程序开发是一种管理行为,程序是一个机构,那么可想而知,
如果机构比较庞大,管理起来是比较复杂的,可能会存在多级子机构,就像你在上学,你所在的班是班主任在管理,
而不是校长直接管理,如果全校所有班级都有校长直接管理,我觉得校长可能只能享年30岁。
班主任又由年级主任管理,年级主任又有学校领导管理,学校领导又由校长来管理。
学校的管理就是这种很常见的分布式管理,那么,我们又想,是不是每一个学校都是这种架构呢?
当然不是,学校有大有小,架构都是要根据规模来进行调整的,比如说一个一百人的学校,你觉得有必要去设立几十个领导吗,
如果你觉得有必要,那我觉得你很有特别的见解,我希望能听一听你的见解(点击QQ可以联系我)。
我觉得没有必要设立几十个领导,我的建议是设立校长、德育/教务/后勤/团委、班主任,只要能保证这个小学校能够运行下去就OK,
如果以后学校要扩大,那也可以基于当前的架构进行调整,增加一些新的子机构,比如备课组,年级领导班子啥的,调整部分人员的工作职责即可,
这样麻烦吗?不麻烦,这是一种有效节约资源和可持续运行的平衡方案。
小学校有小学校的架构,大学校有大学校的架构。同理,
小项目有小项目的架构,大项目有大项目的架构。不要浪费资源,也不要弄得一团糟无法管理。
目前我正在致力于研究一种可在开发进行时进行变种的设计模式,有想法的小伙伴可以联系我,我们一同讨论研究。