【读书笔记】代码大全34章:软件工艺主题
来源:互联网 发布:京都特色民宿酒店知乎 编辑:程序博客网 时间:2024/04/30 07:39
这本书大部分讲的都是软件开发的细节,本章节讲的主要是从宏观角度讲解软件工艺。
- 控制复杂度
- 软件开发的精髓就是控制复杂度
- 降低复杂度的方法
- 将系统拆分成子系统
- 精心设计接口,尽量隐藏设计细节
- 避免使用全局变量
- 避免深度继承
- 避免goto
- 整个项目使用同一种错误处理方法
- 统一Exception的使用方法
- 不要把类设计得太复杂
- 保持函数的短小
- 使用良好的变量名
- 减少函数的参数
- 使用现成的编码规范,这样可以降低复杂度
- 编码规范的作用就是降低复杂度
- 抽象可以降低复杂度
- 根据作用命名变量
- 总之,软件设计的核心就是控制复杂度
- 软件工程过程
- 软件工程的过程很大程度上影响了最终产品
- 开发软件的时候要关注软件工程方面大大小小的过程,这方面是值得花时间的
- 软件开发是一种不断创新的过程
- 写代码给人看,顺便给机器运行
- 代码可读性的好处
- 可以被别人理解
- 可以进行代码审查
- 可以减少错误率
- 可以方便调试
- 可以方便修改
- 可以减少开发时间
- 从而增强软件的外部质量(用户能感觉到的软件质量)
- 写出可以读的代码和不可读的代码花费的时间基本上是一样的
- 就算代码写出来是给自己用的,也不能忽略代码的可读性
- 代码可读性的好处
- 不是用语言来编程,而是用编程来丰富语言
- 有些语言不支持assert,可以写一个assert函数
- 有些语言不支持常量,可以用大写的变量来代替
- 注重编码规范,这样可以把注意力集中在问题本身
- 编码规范包括:缩进、空格、命名规范等
- 编码规范包含了重要的信息
- 编码规范防止了错误的发生
- 编码规范让底层的功能更加明显,你不需要猜测
- 编码规范可以弥补编程语言的缺陷
- 编码的时候注意问题本身,而不是实现细节
- 把问题分解成几个层次
- Level-0:操作系统级别的操作,机器码
- Level-1:语言方面的,比如基本数据类型,控制结构等。一般人不会接触Level-0和Level-1
- Level-2:底层结构实现,算法/数据结构
- Level-3:底层方案实现,解决项目中的基本问题
- Level-4:高层方案实现,这个层次的代码应该能让不懂技术的人看懂
- 另外一种方法
- 编写一个类解决项目相关的问题
- 隐藏底层的数据细节
- 使用有意义的命名常量
- 加入中间变量,让计算过程易于理解
- 复杂的条件代码可以用函数代替
- 把问题分解成几个层次
- 小心落石
- 如果一段代码调试了很长时间,意味着程序员写代码的时候不机智
- 如果项目中的代码很多地方是重复的,修改一个地方往往要修改另一个地方,意味着代码不够好
- 不要小看编译警告
- 迭代、重复、一次又一次
- 软件设计是一个启发式的过程,不是决定性的过程
- 代码调优用到了迭代
- 代码审查用到了迭代
- 信念
- 软件先知:多多尝试新方法
- 折中:软件开发的过程中要考虑各种方法,没有一种通用的方法
- 试验:软件开发过程中要使用多种方法,选择最合适的方法
0 0
- 【读书笔记】代码大全34章:软件工艺主题
- 代码大全_第七部分: 软件工艺
- [读书笔记]《软件工艺》
- 代码大全2 第7部分 软件工艺 mindmap
- [读书笔记] 软件工程 VS 软件工艺 -- 《软件工艺》读后感
- 读书笔记-代码大全-第一章软件构建
- 软件工艺
- 代码大全读书笔记 一二三 章《软件的创建 隐喻 创建的先决条件》
- 代码大全 读书笔记(3)软件构建中的设计
- 代码大全 第十章 读书笔记(1)
- 【读书笔记】代码大全21章:团队编程
- 【读书笔记】代码大全22章:开发者测试
- 【读书笔记】代码大全23章:调试
- 【读书笔记】代码大全24章:重构
- 【读书笔记】代码大全28章:项目管理
- 【读书笔记】代码大全29章:集成
- 【读书笔记】代码大全30章:开发工具
- 《代码大全》读书笔记-1
- poj 1734 floyd求最小环,可得到环上的每个点
- C++ 标准库之typeid
- uva 11367 dijkstra+dp状态压缩
- 在子线程中操作主线程
- C++第9周(春)项目3 - 分数类
- 【读书笔记】代码大全34章:软件工艺主题
- GameObject和gameobject之间的区别
- 打开个人数据库
- boost::serialization 拆分serialize函数
- UVa 11234 - Expressions
- 七种角度分析对应分析方法
- Objective-c学习笔记—— Ubuntu 环境搭建 + HelloWorld
- error C2146: 语法错误 : 缺少“;”(在标识符“RGB2Gray”的前面)
- 面试题 自己实现strcpy 函数