代码大全 2 -- 读书笔记四

  1. 前期准备
    1. 问题定义
    2. 架构设计
  • 关键的构建决策
    1. 选择语言
  • 软件工艺
    1. 管理复杂度
  • 前期准备

    测试是不可能测出“制造了一个错误的产品”的。如果我们在项目的开始阶段强调质量,那我们就会计划,要求并设计一个高质量的产品。

    准备工作的中心目标就是降低风险。

    分析出全面而准确的需求,创建高质量的架构。这些前期工作不做好,后面做再多也意义不大。很多程序员都没法抵抗“尽快开始编码”的欲望。

    前期工作做不好非常影响产品的质量!

    架构师吃掉需求,设计师吃掉架构,程序员消化设计,是最后一环。这层食物链如果每一级都有健康的食物,才能产生健康的代码。

    迭代开发一定伴随着重新设计,重新编码以及重新测试。但是无论是迭代式还是序列式开发,组好前期准备,都是可以减少成本。

    问题定义

    如果没有一个良好的问题定义,我们努力解决的可能是一个错误的问题。

    明确的需求确保了是用户(而不是程序员)驾驭着系统的功能。

    这一点太重要了,没有好的需求,你可能又对问题的总体把握,但是没有击中问题的特定方面。

    需求变更一定要管理好,用户想到每个新功能都会都会非常兴奋,但是必须告诉他们成本和风险。

    架构设计

    架构也是前期准备,架构决定了系统的概念完整性,后者继而决定了系统的最终质量。

    和人月神话强调的概念完整性很贴啊。

    架构应该定义程序的主要构造块。对于那些构成系统 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" 转载请保留原文链接及作者。

    目录
    ×

    喜欢就点赞,疼爱就打赏