Code Craft.pptxVIP

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Code Craft

Code Craft(编成艺术) The Practice of Writing Excellent Code 优质代码的实践 2014-11-11 沈栋 讨论的课题 代码是有味道的 编程价值观 高质量函数 代码重构 代码质量管理 1 代码是有味道的 ? 2 设计 3 别人眼中的代码 4 质量取决于短板 5 破窗效应(Broken windows theory ) 6 亡羊补牢 千里之堤,毁于蚁穴 7 技术债务(Technical Debt ) 出来混,迟早要还的 xx的代码 8 好代码的重要性 内在质量和外在质量-《代码大全》 管理者有在阅读代码吗 过分关注模型设计 设计与施工分离害了软件工程 代码成了短板-木桶原理 代码会变烂-破窗效应 9 什么是好的代码? 10 什么是好的代码? Good code is not bad code 22中经典代码坏味道--《重构》 /weiqubo/article/details/7491048 11 Duplicated Code(重复的代码) Long Method(过长函数) Large Class(过大类) Long Parameter List(过长参数列) Divergent Change(发散式变化) Shotgun Surgery(霰弹式修改) Feature Envy(依恋情结) Data Clumps(数据泥团) Primitive Obsession(基本型别偏执) Switch Statements(switch惊悚现身) Parallel Inheritance Hierarchies(平等继承体系) Lazy Class(冗赘类) Speculative Generality(夸夸其谈未来性) Temporary Field(令人迷惑的暂时值域) Message Chains(过度耦合的消息链) Middle Man(中间转手人) Inappropriate Intimacy(狎昵关系) Alternative Classes with Different Interfaces(异曲同工的类) Incomplete Library Class(不完美的程序库类) Data Class(纯稚的数据类) Refused Bequest(被拒绝的遗赠) Comments(过多的注释) 编程价值观 12 编程的价值观 13 价值观是编程过程的统一支配性主题: 沟通——珍视与他人沟通的重要性; 简单——把多余的复杂性去掉; 灵活——保持开放,应对变化。 Kent Beck “随着年龄的增长,我逐渐意识到编程不仅仅是让程序运行而已;编程是创造一个易于理解的,可以维护的,高效的作品” --Google首席java架构师 Joshua Bloch 技术债务类似于金融债务,它也会产生利息,这里的利息其实就是指由于鲁莽的设计决策导致需要在未来的开发中付出更多努力的后果。 --Martin Fowler 代码整洁之道 14 15 为什么要使用函数? 创建子程序/函数的理由 16 减低复杂度 职责单一 封装变化 引入中间的易懂的抽象 代码复用 简化复杂的布尔判断 支持子类化 转接 适配 隐藏顺序 隐藏全局数据 函数优化 函数设计三原则 单一抽象层次SLAP 函数第一原则,短小短小再短小 单一职责和内聚性 减少嵌套 函数的组织,分离关注度 开闭原则,查询与赋值分离 设计模式 17 复杂表达式 引入解释性变量 封装函数 分解条件 表驱动 尽量不用非 18 软件可变性 Changeability指的是实现特定修改的难易程度 包括三个方面: 确定需要修改哪些部分有多难 必要的改动有多少 实现改动对系统的影响有多大 19 建议 20 1:必须要求每人写一个小的培训总结(哪怕5条)。 参见附件,其他公司培训的一些总结。我一直坚信,培训更多的是反思,通过3天的培训,学员必须有一些思考。 2: 你们开个部门讨论会,主要是一些项目经理和技术骨干(最好10多个人就可以)大家讨论怎样去实践, 有哪些具体的想法。 3:对现在的代码进行分析,找出几个,非常恶心,超级变态的 代码。(比如最长的函数,最大圈复杂度,大量的重复代码等) 让大家看到,目前代码质量腐烂到触目惊心。 4:推荐阅读, 几本书籍。 重构全书,代码整洁之道 第1章 代码大全 5-18章。 修改代码艺术 等等. 你们也可以做一些读书分享会, 1周1次,1次1~2小时。 5:你们选择5个最不能容忍的 指标, 绝对可以量化。 比如函数长度, 圈复杂度, 嵌套层次, 类的总长度等。 6:结合你们的代码分析工具,进行查找。 新的函数,不要违反. 遗留代码作为不良资产可以不管。 7:每周1次,一个小组为单位,每次1小时的代码评审, 或者代码

文档评论(0)

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

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

1亿VIP精品文档

相关文档