高效能的编程.pptVIP

  • 2
  • 0
  • 约3.41千字
  • 约 38页
  • 2019-04-05 发布于湖北
  • 举报
大纲 成为高效能程序员的目的 高效能程序员的特征 高效能程序员的理念 高效能程序员的工具箱 成为高效能的程序员 正如企业的目的是挣钱(成本,库存,资金流通,销售额),而程序员的目的是在有限的时间内增加自己的代码产出量(复用,质量,风格) 什么才是一个好的程序员(质量 or 效率)? 怎样才能成为更好,更高效,更优秀的程序员? 目前的问题 1.解决bug,复现错误,跟踪代码(故障机制) 2.基础组件的更改,影响自己的代码(持续集成) 3.修改一处代码,引发更多错误(覆盖测试) 4.签入代码,但安装盘不可用(自动化脚本) 5.一处代码,多处拷贝(重复的危害) 高效能程序员必须具备的 关心自己的技艺 Think in work! 好奇,批判的思考者,批判的分析你读到的和听到的 多才多艺,熟悉广泛的技术和环境 善于利用和制造各种工具 持续的改进 有效的交流 高效能程序员的理念 不要容忍破窗户,做变化的催化剂 不要试图隐藏自己的弱点,要诚实和坦率 DRY-Don’t Repeat Yourself 无处不在的自动化 留心大图景,持续不断的观察周围发生的事情(煮熟的青蛙) 定期为你的知识资产投资 重复的产生 1.信息的多种表示(数据库表和类结构) 2.代码中的文档(注释) 3.文档和代码 4.无耐性的重复(捷径但不有效,如软件版本号) 5.开发者之间的重复(如日志记录机制,需要主动交流) 无处不在的自动化 重复与枯燥的事应该让机器来做 人容易出错与没有耐心 机器适合做这些事 让机器一次重复地、自动地做所需要的事 任何重复的事都是可以自动化的 先有思想才会有行动 自动化的思路 用自动化的思路来思考软件过程 在开发过程中有哪些事情总是重复且枯燥,而不情愿去做? 在哪些重复的事因为你不情愿去做,而会对你的开发过程造成不好的影响? 有哪些事情你是希望能用机器帮你做到,而可以一劳永逸的方便地执行? 找出来,并尽量自动化它们 哪些是可以自动化的? 编译、构建 文档 测试 代码生成 发布 源代码控制 配制 基本工具箱 1.纯文本的威力-储存知识的最佳格式 保证不过时; 易于理解维护; 2.精通一种编辑器,将其用于所有的编辑任务(代码;文档;配置项;脚本等),如ultraedit, editplus 3.使用shell 鼠标vs键盘 基本工具箱(续) 代码风格检查(FxCop) Resharper(去除一些C#代码中的不良代码) 自动测试(NUnit) 持续集成(CruiseControl) 文档自动生成(NDoc) 鼠标vs键盘 启动一个notepad用多少次操作 鼠标新手:开始-程序-附件-记事本(4) 鼠标高手:桌面-快捷方式(2) 鼠标高高手:点击快捷栏上的快捷方式(1) 键盘新手:win+R-notepad(2) 键盘高手:Ctrl+Alt+N(1) 相同? 使用鼠标时手要离开键盘,并回来、、、 脚本的力量 GUI的程序永远都是一个一个的单独实体 如果需要完成GUI程序一开始没有提供的功能,你只能扩展它(如果它提供)或者重写一个,或者再找一个比它更好的 脚本可以快速与任意的组合完成一些用鼠标很难完成的工作 可重复,并且自动化,只有写一次,而后方便的执行,不用每次都做重复的鼠标操作 学习Shell是每一个关注自动化的、高效率程序员的必修课 脚本威力示例 找出修改日期比你的makefile更近的全部.c文件? GUI: 资源管理器-目录-点击makefile-记下修改时间-查找-*.c-选项-输入日期-确定 或者:资源管理器-目录-查找-*.c-结果中排序 脚本:find . –name ‘*.c’ –newer Makefile –print 练习题 怎样来注册某一个目录下中所有子文件夹中的ocx文件 一次停掉或开启多个Windows服务 一次修改多个环境变量 如果定时的运行或个程序 我们日常工作中修改BUG的步骤是怎样的? 在IDE里编辑代码 可能会需要点击check out的提示确定按钮 点击编译按钮,或者是击打它的快捷键 如果有错,则改正它 在应用或者测试工程中测试刚才的功能 提交代码,选择并点击check in按钮 修改接口文档(如果需要的话) 自动化的场景 在IDE(或者任何你喜爱的编辑器)中编辑代码 按下自动化的快捷键按钮 机器自动的帮你编译、测试与提交代码并生成文档 如果出错则继续 否则、、、就没有了? 如果发现BUG(日常) 打开源代码工程,重现它 设定断点 在调试状态重现它 跟踪 找到BUG 除错 再测试(如果耐心足够进行一部分回归测试) 提交 如果需要更改接口文档(如果你还没有忘记?) 如果发现BUG(自动化) 根据错误的自动收集(日志)发现问题所在 大概的定位并重现(调试)它 用单元测试描述它 除错

文档评论(0)

1亿VIP精品文档

相关文档