实践软件工程.PDF

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实践软件工程

第 1章 本章内容: ● 编写从开始就正确的代码 ● 编写保持正确的代码 本章 代码下载文件: 可以在 /go/reliablejavascript 的 Download Code 选项卡中找到本章的 代码下载文件。代码在Chapter 1 下载文件中,并按照本章的主题组织到各个目 录中,每个目录含有一个样例。可以通过将样例目录复制到硬盘并双击index.html 文件的 方式运行样例。 没有什么职业比计算机编程更加震撼人心了。如果开始做的事情是正确的,就可以在 20 分钟左右完成一天的工作。这就是我们一天中编写被调试代码所需的时间。 剩余的时间将被花费在纠正由编译器、QA 同事、老板和客户所提出的问题上。 作为曾在“成熟”系统中工作过的开发者,我们也花费了大量时间重构了多年以后变 得脆弱和不可维护的代码(或者希望它可以被重构) ,而这正是由我们的同事或自己糟糕的 设计所造成的。 不过,我们仍然相信自己是非常聪明的,而这只会使事情变得更糟。在生活中,我们 可以自己解决问题。我们喜欢谜语和问题。我们是不喜欢询问方向和不喜欢阅读指令的专 家(大多数人都是专家,而这可能使事情变得更糟) 。 遇到问题时,我们是乐观的,相信自己可以找到解决方案。 本章提供了一些好消息。软件开发者是非常聪明的,其中一些人开发出了有用的工具, 可以帮助我们创建远比一天20 分钟的代码价值更高的代码,并大大增加了审美的满足感。 这些并不是新的技术。本章的所有理念都至少存在了十年以上。不过,在为团队中的 第Ⅰ部分 奠定坚实的基础 开发职位面试众多候选人时,不论是来自美国还是其他国家,很少有人听说过SOLID 缩写 背后的理念(更不要说这个缩写本身) 。他们可能听说过DRY 代码,但是他们并未领会到它 在优秀的软件开发中绝对的核心地位。关于单元测试的误解比比皆是,许多开发者并未意 识到由测试驱动开发过程的优点。 在掌握了这些理念之后,你就会成为精英中的一份子。大多数开发者知道面向对象编 程,但只有少数人知道依赖反转和里氏代换原则(Liskov Substitution Principle) 。掌握测试驱 动开发的开发者就更少了。 1.1 编写从开始就正确的代码 Johann Sebastian Bach 曾经说过一段关于键盘乐器的话,这同样适用于计算器编程:没 有什么特别值得注意的,所有需要做的事就是在正确的时间敲击正确的键,然后乐器自己 就会演奏。 本节将讨论如何在正确的时间敲击正确的键。你可能已经猜到了,这比外行人所考虑 的内容要多。 接下来首先是一个故事。 1.1.1 掌握JavaScript 的特性 你是否曾经看到过某人在壁球室中被球猛击头部?我们中的某个人曾经看到过。这发 生在大学生入门的运动课上,但是这个情节将教会我们许多关于编写可靠JavaScript 的知识。 你可能不熟悉这个游戏,这是在球场(像是一个大房间)上玩的一个运动。两个球员使 用球拍轮流向后面的(两个人同时面对的)墙上击球。在大多数常见的情景中,把球击向墙 壁以后,它将反弹,然后从地面弹向你的对手,他就站在你的旁边。然后他将把球击向后 墙,让你尝试击打它。 无论如何,这是第一天的课程。教练站在学生左侧稍后一点的位置,其他人则通过前 面的玻璃墙观看。教练指导学生把球击向后墙。 这个学生曾经是一个网球运动员,他就像在打网球一样正手击球,从低到高击球,一 直到球拍围绕身体转了一圈。这是网球中实现上旋球的动作。这个动作也可以猛击碰巧站 在左侧稍后一点位置的人的头部。 幸运的是,教练知道会出现这个情况,所以已经将球拍放在了脸的前方作为防御。 学生的球拍撞上了教练的球拍,这产生了大量噪音,也给学生带来了一些尴尬,但是 没有造成伤害。 教练指出:在网球中通常需要打出上旋球,从而使球俯冲下来,然后用力弹向对手。 不过,相同的击打方式在壁球中产生了相反的效果。如果打出了上旋球,那么壁球将会撞 上墙壁,产生一个简单的弧形,然后以缓慢的方式弹离地面,此时对手可以轻松解决它。 在壁球中,需要打出下旋球。这样壁球将会向下撞击墙壁,再从地面以非常快的速度撞向 对手。 壁球中的正常击打动作是砍,向下挥动产生下旋球——正好与网球中常见的击打动作 4

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档