程序员应该知道的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)重构构建脚本

    通过构建脚本,自动化配置。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 0
原创粉丝点击