专业程序员必知的技巧敲打代码

专业程序员必知的技巧敲打代码

ID:46337781

大小:69.50 KB

页数:4页

时间:2019-11-22

专业程序员必知的技巧敲打代码_第1页
专业程序员必知的技巧敲打代码_第2页
专业程序员必知的技巧敲打代码_第3页
专业程序员必知的技巧敲打代码_第4页
资源描述:

《专业程序员必知的技巧敲打代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、专业程序员必知的技巧敲打代码(转贴)专业程序员必知的技巧:敲打代编写生产质量级别的代码似乎是一个明摆着的冃标,但计算机行业却费了不少时日才弄明白正确的实现之道。例如,Windows95曾经有个Bug会让操作系统在连续运行49.7天Z后挂起一但是该Bug花了4年时间才暴廉,有Bug这件事本身并不特别让人觉得惊讶,时间Z所以这么长是因为其他Bug在不到49.7天的时候就IkWindows95崩溃了。通往高质量代码的道路有两条,你可以二选一:一开始就内置质量,或者事后再敲打它。前者需要你在日复一日的编码中遵循众多戒律;后者则

2、要求人量测试,到头來,在自以为完工之J5,你会发现还有很多工作要做。行业占统治地位的瀑布开发方事后敲打(beat-it-in-afterward)是常见的工作方式,法就是这样:规格说明、设计、构建、测试。测试是最后的步骤。产品來到测试部门,很快就崩溃了。于是,又冋到工程部门,于其他原因加溃。就这样,来来冋回,修复Bug。接着,把另--版提交给测试部门,乂由许多刀(甚至是数年)流逝。在程序员们深入具体实践之前,我们会从技巧1——敲打代码开始,帮你建立正确的思维方式。你可能认为编写可靠代码是再明显不过的工作要求了。招工广告

3、上不可能写:“急聘:具备良好工作态度、团队合作精神和桌上足球技巧的程序员。有则更佳:会编写可靠的代码。”可冇问题的程序还是冇这么多,怎么凹事?在深入探讨保证代码质量的日常实践Z前,让我们先讨论“编写可靠代码”的含义。它不仅仅是一份实践清单,它还是一种思维方式。在把产品交到客户手中Z前,你必须敲打自己的代码和整个产品。客户终究敲打你的产品,以一种你不曾预料到的方式使用它。他们用它的时间会很长,而且会在你没有测试过的坏境里川它。你必须考虑的问题是:打算让客户发现多少Bug?你现在对代码敲打的次数越多,在交到客户手中之前,能

4、清除掉的Bug就越多,留给客户的Bug就越少。质量保证的形式1•代码评审保证代码质量最简单的方法就是让另一个程序员去读它。别岀心裁的评审过程并没有必要,而且就连结对编程也算是一种形式的实时代码评审。团队将利用代码1评审捕获Bug,贯彻编程风格和标准,同时在团队成员间传播知识。我们将在“技巧8:代码评审要早且多”中讨论代码评审。2.单元测试在你一个类接着一个类、一个方法接着一个方法地构建应用的业务逻辑时,验证代码的最住方式就是单元测试。这种内部零件级的测试被设计用来对逻辑的各部分单独验证。3.接受测试单元测试立足于由内而

5、外地审视产品,接受测试则被设计成模拟真实世界的用户,代表他们与系统交互。理想状况下,它们是口动执行的,而且以某种叙述式的风格书写出来。例如,某银行自动柜员机应用会有类似这样的接受故事:若我的活期存款为0,当我在ATM的“活期存款”屮选择“取款”时,那么我应该看到“对不起,今天的晚餐吃泡面吧。”它不像莎翁著作那样文采飞扬,但这些测试操练了整个系统:从用F界面一巴到业务逻辑。无论它们是自动执行的,还是人工执行的,你的公司需要知道一在任何客户使用它Z前一所冇系统组件正在像预期的那样协调工作。4.负载测试负载测试将产品置于真实

6、的压力条件下,然后度量它的响应。例如,某网站能需要在数据库有100力条记录的条件下在100毫秒内展示指定页面。这些测试将揭示正确但不恰当的行为,如需要线性伸缩但却以指数级别伸缩的代码。5.定向探索测试接受测试覆盖了产品的所冇指定行为,它可能來口于产品需求文档或会议。但程序员通常还是有办法使Z崩溃一总有些黑暗和落被规格说明疏忽掉。定向探索测试就是要将这些边界情况挖出來。这种测试通常是人工执行的,可能是程序员白己,用于探索和发现问题。但最初探索Z后,任何冇用的测试就会被加到接受测试套件之中。该测试有一个专业化的变种,如安全

7、审计。在这些情况下,专业测试人员会利用他们的领域知识(可能也包括代码评审)來指导他们的测试。6.机构测试便件产品需要不同的机构认证:FCC度量电磁辐射,确保产品不会导致无线电干扰;美国保险商实验室(UL)检查当你将产品置于火上或舔电池电极时会发生什么。这些测试都在新产品发布Z前进行,每次硬件变化都会影响认证。7.环境测试2便件产品的运行温度和湿度也需耍在推至极限时测试。这些测试是川坏境室來完成的,它可以同时控制这两个因素;当产品在其间运行时,它会经历所有四种极限条件。&兼容性测试一旦产品需要跟其他产品进行互操作(如某字

8、处理程序需要跟其他字处理程序交换文档),这些兼容性的论断就需要定期验证。它们可能会访问一组已保存的文档,也可能会实时地将你的产品连接到其他产品上。9.耐久性测试你会注意到这里提到的人多数测试都是尽量频繁且快速地运行。可冇些Bug只会在一段时间的使用Z后现身。前而提到的49.7天的Bug很好说明了这一点一它源于每毫秒递增的32位计数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。