即将开始的GIAC课程
软件工程危机与系统重构之道
软件工程
2019-06-23 13:30--14:30
背景介绍:
近年来,软件生态的瞬息万变和软件企业经营的巨大压力,使软件工程质量遇到前所未有的挑战,架构设计的扩展性和可维护性似乎成了口号,“短平快”地实现软件的经营效益价值,是摆在首位考虑的,但这是以系统维护的痛苦和重构的纠结为代价的。重构是软件剧烈发展过程中的必选项,但是这个必选项的背后思考是需要认真审视的,比如,重构动机、重构时机、重构ROC,就是三个需要深思熟虑的环节。重构不应该是KPI的温床,也不应该是新技术栈的试验田。那么如何去宏观地思考这些问题,是摆在大、中型企业面前的难题。
解决思路/成功要点:
1. 系统架构上以SOLID原则延迟重构的产生。
2. 组件之间的边界尽可能清晰,基础组件不依赖于外围组件。
3. 从功能需求、业务价值驱动角度来审视重构的第1层必要性
4. 从分布式、高可用、高并发三个横向维度来审视重构的第2层必要性
5. 从存储、服务、GUI三个纵向维度来审视重构的第3层必要性
6. 从艾森豪威尔矩阵分析重构时机
7. 从时间成本、人力成本、机会成本三个角度来判断重构ROC
成果:
阿里巴巴代码平台运行在原来的 Gitlab社区版本上进行改造,数据量大,重构挑战的必要性如下:
1. Gitlab社区版不支持分布式。
2. Gitlab社区版在系统吞吐率上严重制约研发效能提升。
3. 社区版本无法与企业技术框架有效整合。
这次艰难的重构,是脱胎换骨的,除了数据库底层的数据结构是复用之外,其它都进行了大幅度的改造,命名为原力系统,在整个架构设计中,Web层与服务层完全解耦。(更多细节,法务审核之后才可以披露)
阿里巴巴集团高级技术专家,毕业于浙江工业大学。花名孤尽,取自风清扬的“独孤九剑,破尽天下武功”之意,著有《阿里巴巴Java开发手册》和《码出高效》,在阿里历任研发、架构师、项目经理、部门主管等多种不同的角色,承担过双十一、国际化、代码中心等大型项目,有着丰富的一线编程经验,目前是集团代码平台负责人,在大数据、高并发、研发效能领域均有较深的造诣,乐于分享与总结,在国内外做过多次大型交流和培训,引起强烈共鸣。
即将开始的GIAC课程
软件工程危机与系统重构之道
软件工程
2019-06-23 13:30--14:30
背景介绍:
近年来,软件生态的瞬息万变和软件企业经营的巨大压力,使软件工程质量遇到前所未有的挑战,架构设计的扩展性和可维护性似乎成了口号,“短平快”地实现软件的经营效益价值,是摆在首位考虑的,但这是以系统维护的痛苦和重构的纠结为代价的。重构是软件剧烈发展过程中的必选项,但是这个必选项的背后思考是需要认真审视的,比如,重构动机、重构时机、重构ROC,就是三个需要深思熟虑的环节。重构不应该是KPI的温床,也不应该是新技术栈的试验田。那么如何去宏观地思考这些问题,是摆在大、中型企业面前的难题。
解决思路/成功要点:
1. 系统架构上以SOLID原则延迟重构的产生。
2. 组件之间的边界尽可能清晰,基础组件不依赖于外围组件。
3. 从功能需求、业务价值驱动角度来审视重构的第1层必要性
4. 从分布式、高可用、高并发三个横向维度来审视重构的第2层必要性
5. 从存储、服务、GUI三个纵向维度来审视重构的第3层必要性
6. 从艾森豪威尔矩阵分析重构时机
7. 从时间成本、人力成本、机会成本三个角度来判断重构ROC
成果:
阿里巴巴代码平台运行在原来的 Gitlab社区版本上进行改造,数据量大,重构挑战的必要性如下:
1. Gitlab社区版不支持分布式。
2. Gitlab社区版在系统吞吐率上严重制约研发效能提升。
3. 社区版本无法与企业技术框架有效整合。
这次艰难的重构,是脱胎换骨的,除了数据库底层的数据结构是复用之外,其它都进行了大幅度的改造,命名为原力系统,在整个架构设计中,Web层与服务层完全解耦。(更多细节,法务审核之后才可以披露)