代码大全 2 -- 读书笔记四
前期准备
测试是不可能测出“制造了一个错误的产品”的。如果我们在项目的开始阶段强调质量,那我们就会计划,要求并设计一个高质量的产品。
准备工作的中心目标就是降低风险。
分析出全面而准确的需求,创建高质量的架构。这些前期工作不做好,后面做再多也意义不大。很多程序员都没法抵抗“尽快开始编码”的欲望。
前期工作做不好非常影响产品的质量!
架构师吃掉需求,设计师吃掉架构,程序员消化设计,是最后一环。这层食物链如果每一级都有健康的食物,才能产生健康的代码。
迭代开发一定伴随着重新设计,重新编码以及重新测试。但是无论是迭代式还是序列式开发,组好前期准备,都是可以减少成本。
问题定义
如果没有一个良好的问题定义,我们努力解决的可能是一个错误的问题。
明确的需求确保了是用户(而不是程序员)驾驭着系统的功能。
这一点太重要了,没有好的需求,你可能又对问题的总体把握,但是没有击中问题的特定方面。
需求变更一定要管理好,用户想到每个新功能都会都会非常兴奋,但是必须告诉他们成本和风险。
架构设计
架构也是前期准备,架构决定了系统的概念完整性,后者继而决定了系统的最终质量。
和人月神话强调的概念完整性很贴啊。
架构应该定义程序的主要构造块。对于那些构成系统 80%行为的 20%的类进行详细说明。
小知识,I18n 代表国际化是因为国际化的英文单词 I 和 n 之间有 18 个字母..
架构要描述主要决策的动机。
关键的构建决策
选择语言
你思考的能力取决于你是否知道能够表达该思想的词汇。在一种编程语言中可用来表达编程思想的词汇,毫无以为决定了你将如何表达你的思想。
首先思考你要的思想是啥,然后再选择编程语言!就是说深入语言编程,而不是在一门语言上编程。
软件工艺
避免深层次的继承,因为这样会耗费很大精力。
在盖房子之前要打牢地基,在软件开发中,质量从一开始就要逐步建立起来。
只有你一人在开发就去编写不宜读的代码的想法非常可怕。习惯影响着人的所有活动,你并不能随意的支配它。
我们要时刻注意自己的代码质量,养成习惯,然后再让习惯来影响我们!
深入理解语言,而不是浮于表面,并不要因为语言支持全局数据,你就能使用的。要用编程规范来弥补语言的弱项。
管理复杂度
致力于降低复杂度是软件开发的核心。各种形式的抽象都是管理复杂度的工作。另一个处理复杂度的方式是尽可能工作在最高的层次。
很多问题都有不止一个正确答案,对于这些问题,每次回答同样内容比回答正确更重要。规范的最有用之处在于免于你做出任意决定,省却了为了辩解的麻烦。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 981909093@qq.com
文章标题:代码大全 2 -- 读书笔记四
文章字数:933
本文作者:泽鹿
发布时间:2019-08-28, 16:45:23
最后更新:2019-08-28, 16:45:23
原始链接:http://panyifei.github.io/2019/08/28/读书笔记/代码大全2/4/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。