程序员应该知道的97件事——读书笔记1(Bug与部署)
来源:互联网 发布:分割图片的软件 编辑:程序博客网 时间:2024/06/05 22:29
程序员应该知道的97件事——读书笔记1(Bug与部署)
一、本书简介
本书是一线程序员的经验荟萃,他们根据各自在软件工程各环节里的实践经历,现身说法,提出了自己的真知灼见,这些经验涵盖了用户需求、系统分析设计、编码实践、编码风格、Bug管理和项目管理等多个方面(基本包含了软件工程中涉及的需求、设计、编码、测试、管理)。
本书还有姊妹篇:《软件架构师应该知道的97件事》。
二、各篇文章总结与感悟
文章按照各个环节进行分类进行总结:
2.1 Bugs和修复
(1)责备别人前先检查自己的代码。
程序引起错误有多种原因:工具软件的问题、编程错误等等。在我们怀疑编译器、OS、解释器、服务器、数据库、内存管理器或其他系统软件有Bug前,请检查自己的代码,如多线程、前置后置条件、不变量、版本等。
(2)别碰那些代码!
在Web开发中,架构分成了:本地开发机器的单元测试、开发服务器的集成测试、模拟服务器的验收测试和产品服务器。在开发过程中不要直接修改产品服务器的代码,开发人员的权限只能限制在开发范围内。
(3)如何使用Bug跟踪器
讲解了如何提交Bug报告和如何查找Bug。
Bug报告需具备的三个东西:如何重现Bug、本应该发生什么和实际发生什么。
(4)错上加错
当发现一个Bug后,不是从根本上去修正而是用另一个Bug去修正,这样更难修复。
2.2 构建和部署
(1)早部署、常部署
安装和部署经常在项目最后执行。有时候进行安装时各种问题接踵而来,此时想更改时间已来不及。比如进行游戏开发时,应尽早发布到相应的平台进行测试、运行等。
(3)安装我吧
为了解决工作中的问题,请尽量使用已有的经过测试的软件、工具、库等。
更快地知道如何使用工具也是一种能力。(通过看文档、博客、入门简介等)
(4)保持构建整洁
当编译器报出警告后,应尽快进行修复警告(警告零容忍)。如果警告确认没有任何意义,则通过调整编译器警告策略,忽略或屏蔽这些警告。否则,在一大片警告中寻找自己需要的警告将是一件痛苦的事情,而且警告的累积必将导致错误的发生,那时进行修正将是极其困难的(误差累积)。
(5)项目表达自己
通过在项目中引入极限反馈装置,当项目本身的状态进行了危险的改变、或者超过极限时,进行反馈提示(如灯发亮、发声等)。
(6)二进制只有一份
为了避免修改一小部分的信息时都要重新进行完整的构建,这非常耗时且可能引入其他错误。与环境有关的配置信息在配置文件中。即构造一个单独的二进制,在发布时,配置环境,在各个场景再进行识别和升级。
(7)重构构建脚本
通过构建脚本,自动化配置。
- 程序员应该知道的97件事——读书笔记1(Bug与部署)
- 《程序员应该知道的97件事》
- 程序员应该知道的97件事
- 程序员应该知道的97件事
- 【读书笔记】软件架构师应该知道的97件事
- [读书笔记]软件架构师应该知道的97件事
- 《软件架构师应该知道的97件事》 读书笔记
- 读《程序员应该知道的97件事》笔记
- 读《程序员应该知道的97件事》
- 读《程序员应该知道的97件事》
- [转]读《程序员应该知道的97件事》
- 项目经理应该知道的97件事
- 架构师应该知道的97件事读书笔记之客户需求重于个人简历
- 程序员最应该知道的20件事
- 程序员最应该知道的20件事
- 程序员最应该知道的20件事
- 架构师应该了解的97件事 读书笔记1
- 每个程序员应该知道12件事
- const指针和指向const对象的指针
- HDOJ 5088 Revenge of Nim II 位运算
- HDOJ-5087-Revenge of LIS II
- 第十周项目一(1)填充程序并使其运行十次
- 利用Python可视化MINIST数据集
- 程序员应该知道的97件事——读书笔记1(Bug与部署)
- XP蓝屏问题解决
- 判断网络是否连接方法小结(C#)
- ASI详解
- iOS学习之iOS沙盒(sandbox)机制和文件操作(一)
- 更改MMS协议的默认播放器
- 单链表的逆序
- jquery mobile页面跳转后js不执行的问题
- DEDE修改文章TAG,给TAG加链接,去掉TAG字数限制