版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、代码规范 徐振岭2014-7-15自我介绍 徐振岭 TOT9 2009年7月进公司 算量产品线 GCL产品 开发 1.5年 国际事业部 TAS产品 开发主管 3.5年反对的声音:这是浪费时间! 我是一个优秀的程序员,我不愿意浪费时间干这些愚蠢的事。 我的技术很好,为什么我要浪费时间遵守这些愚蠢的规范?反对的声音:我是个艺术家! 我写出的的代码反映出我的一些特质,它是我思考的一种体现。它是我的技能和创造力的印证。 如果你强迫我遵守什么愚蠢的规范,这是在打压我的创造力。反对的声音:我更牛 我是比制定编码规范的人更好的程序员 我凭什么要听你的!反对的声音:利小于弊 不能给项目团队带来利益 不能让客户
2、看到我们为此付出的努力 团队完全可以用这个时间做更多的功能反对声音的背后 华丽的外表遮盖不了硬伤 反对者同样都会面临一定困扰 程序员分类及特点新手 有朝气,积极性高 怀抱深远的梦想,正能量无穷 有海量的时间,疯狂加班 绝佳的记忆力 反应速度快 理解能力强新手面对的 代码杂乱冗余 -惹人厌恶 代码晦涩难懂 -令人抓狂 成千上万行代码 -望洋兴叹 代码缺少注释 -让人猜测 逻辑混乱 -费时费力 代码是别人写的 -泪奔 复杂代码海量细节新手面对的 代码写的少 Debug能力差 常把事情搞砸 能力不足经验不足老手 熟悉大量细节 有信心Debug到每一个角落 代码大部分都是亲手写的老手面对的 激情被消磨
3、 现实很骨干 认识到术业有专攻 可支配时间越来越少 记忆力衰退 反应速度下降 理解与学习能力下降怎么解决 问题很复杂,只能逐步解决 用代码规范的益处能解决一部分 另一部分需要用其他方式来解决代码规范的益处1 Any fool you can write code that a computer can understand. Good programmers write code that humans can understand. 任何一个傻瓜都能写出计算机可以理解的代码。惟有写出人类容易理解的代码,才是优秀的程序员。 提升可读性提升可读性 面向人而写面向人而写代码规范的益处2 统一的风格
4、 似曾相识的感觉 更迅速更容易理解陌生的代码 减少名字增生,降低维护成本 统一全局,促进团队协作 加速知识传递,加快工作交接加速知识传递,加快工作交接 代码规范的益处3 The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information 认知心理学先驱 George Miller主要观点:短时记忆的容量为72个单位 关注点分离 聚焦业务逻辑、核心流程、需求契合度降低复杂度降低复杂度 专注于真正要解决的问题专注于真正要解决的问题代码规范的益处4 辅助逻辑梳理和抽象
5、强迫真正理解:写不出符合要求的,说明没有真正理解 降低出现bug的可能性提升程序员个人能力提升程序员个人能力还有一个更大的理由代码是程序员的脸,你能不洗脸吗?代码规范范围 将规范分为两部分 强制部分:公司级、行业标准等 推荐部分:项目组、优良习惯绝大多数求同绝大多数求同少量存异少量存异实施建议 若没有规范,越早制定越好 若有规范,即使和之前的认知不一致,也直接遵守 一开始编码就遵守,直至形成条件反射公司代码规范辅助工具 Gexperts:快捷加文件头 函数头等 开源 CnPack:控件命名等 开源 ModelMaker: 重构功能等 商业软件 MagicQ:代码扫描打分:代码扫描打分 广联达出
6、品广联达出品对规范的认识 观点一: 代码规范不是“物神”“银弹”。代码规范仅仅是一个全局性质的规范,它只不过是一种编程约定,不能解决更深层次的问题。就像一篇格式漂亮但内容糟糕的论文不能被发表一样,你不能仅靠一个规范来摆脱软件作坊。 代码规范中不应包含那些开发技巧。最佳实践应该是代码审查所要解决的,避免将编码规范写成一部关于重构的教科书。对规范的认识 观点二: 执着于目的,遵循准则,征服复杂性。 软件设计和构建的主要目标就是征服复杂性。许多编程实践背后的动机正是为了降低程序的复杂度。 广义的代码规范应是程序员规范: 代码坏味道:过长函数、过大类等 面向对象:封装 抽象 继承等 软件开发原则:开发封闭、依赖倒置等 智力拐杖:系统分解、审查、基于问题 。最后回顾:优势强化与劣势补足 让年轻人的激情锐气不再被消磨 让年轻人快速熟悉旧代码,直接推到最前沿 让年轻人去创造,去出成果 让旧代码成为老队员的资产,不是包袱 让老队员更聚焦,去突破,焕发新生 让7-2-n的人也能做好程序员! 将优势用在最需要火力的地方 劣势通过复杂度管理,影响降到最低希望大家能够 写出良好的程序结构 写出直率易懂的方法 具名有意义的变量和子程序 最低复
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论