我经历的重构.pdfVIP

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
我经历的重构

我经历的重构 潘俊勇 Pycon China 2013 关于我 • 潘俊勇,老潘 • @ panjunyong • Zope/ Plone社区:2002-2006 • 易度云办公():2007-至今 Limodou:重构,Refactoring 为什么需要重构 • 有味道的脏代码 –毒害新人:学到坏东西 –影响老手:心情不佳 • 重构 –建立清新美好的代码环境 –激发追求美好的欲望 什么时候重构 • 看到问题就重构 • 员工离职的时候,和交接人员重构 • 小的重构,多多益善 减少重构 • 设计review • Code review • 新员工培训 • 手把手改代码 • 及早优化开发框架 • 更多的文档 这是我想讲的吗? No 我更想说的是“大重构” • 人在江湖漂,哪能不挨刀 • 我和“那些坑”的故事 –大的模块全部重写 –更换架构、框架,甚至语言 –技术选型碰到的问题 为什么“大重构” • 旧代码:已经让人犯恶心 • 无法适应新需求 –性能更快 –体验更好 –移动端等的支持 • 新技术成为新标准: –前端:ajax框架、mvc、Bootstrap/html5 –后端:新语言、云平台、开放架构 渐进,或者革命? 案例一:ZOPE2 ZOPE3 Zope2 的繁华(1997-2004 ) • Zope从python社区的明星 • Zope公司200多人 • 社区庞大活跃,健全的生态 • 活跃的Plone • 《魔法大熔炉》经典成案例 Zope2 的优势 • 浏览器上web开发 –非常快速 –非常简单 • 现在Salesforce提供的PaaS也是这样 Zope2 的问题 • 浏览器开发很原始 –代码如何版本管理 –浏览器开发模式不清晰 • 底层代码耦合高,基于继承,比较复杂, 难维护和扩展 当年的明星: java (2000年) • J2ee太酷了 • 组件架构很酷 • 基于接口编程很快 • Xml配置应用很酷! Zope3 的想法:干点大事了 • 重构!完全重构 • 向偶像学习,打造python版本的j2ee ! • 为python写组件架构ZCA :zope组件架构 • Xml装配组件 • 基于接口,全部重写! 后来。。。 • 首先偶像J2EE 因为太复杂,并没有保持偶像地位 • zope3也很复杂 • 和zope2完全不兼容 • Zope2被迫引入了Zope3, 更复杂 • 推出时间太长,4年多 – zope2停止发展,问题无人解决 – 大量竞品出现:Django、ROR • 摧毁生态,社区迷茫 • 社区基本瓦解,Zope基本死亡,Plone停止发展 • Zope公司缩小10倍,20多人 Zope2重构反思 • 不能抛弃用户 –首先优化浏览器开发模式(解决用户之痛) • 底层代码渐进演化 –应该采用wsgi分割的方式来做 –将复杂系统物理分割为多个子系统 –另外一个项目:Repoze 迷失的黑客 • 给j2ee坑了 • 妄自菲薄:我们怎么写了如此shi 的程序 • 程序员着急了 –我是不是该干点大事了! 重构:渐进,或革命 • 渐进: –如同改革,不断局部改良,确保大局稳定 –风险最小 –不会影响整个

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档