第11章错别字修改

This commit is contained in:
Jerry Zhang
2013-01-24 23:05:41 +08:00
parent 56f3d6895d
commit d3f9159a7a
3 changed files with 5 additions and 5 deletions

View File

@@ -1,7 +1,7 @@
# 11 错误处理,调试和测试 # 11 错误处理,调试和测试
我们经常会看到很多程序员大部分的"编程"时间都花费在检查bug和修复bug上。无论你是在编写修改代码还是重构系统几乎都是花费大量的时间在进行故障排除和测试外界都觉得我们程序员是设计师能够把一个系统从无做到有是一项很伟大的工作而且是相当有趣的工作但事实上我们每天都是徘在排错、调试、测试之间。当然如果你有良好的习惯和技术方案来直面这些问题,那么你就有可能将排错时间减到最少,而尽可能的将时间花费在更有价值的事情上。 我们经常会看到很多程序员大部分的"编程"时间都花费在检查bug和修复bug上。无论你是在编写修改代码还是重构系统几乎都是花费大量的时间在进行故障排除和测试外界都觉得我们程序员是设计师能够把一个系统从无做到有是一项很伟大的工作而且是相当有趣的工作但事实上我们每天都是徘在排错、调试、测试之间。当然如果你有良好的习惯和技术方案来直面这些问题,那么你就有可能将排错时间减到最少,而尽可能的将时间花费在更有价值的事情上。
但是遗憾的是很多程序员不愿意在错误处理、调试和测试能力上下工夫,导致后面应用上线之后查找错误、定位问题花费更多的时间。所以我们在设计应用之前就做好错误处理规划、测试用例等,那么将来修改代码、升级系统都变得简单。 但是遗憾的是很多程序员不愿意在错误处理、调试和测试能力上下工夫,导致后面应用上线之后查找错误、定位问题花费更多的时间。所以我们在设计应用之前就做好错误处理规划、测试用例等,那么将来修改代码、升级系统都变得简单。
开发Web应用过程中错误自然难免那么如何更好的找到错误原因解决问题呢11.1小节将介绍Go语言中如何处理错误如何设计自己的包、函数的错误处理11.2小节将介绍如何使用GDB来调试我们的程序动态运行情况下各种变量信息运行情况的监控和调试。 开发Web应用过程中错误自然难免那么如何更好的找到错误原因解决问题呢11.1小节将介绍Go语言中如何处理错误如何设计自己的包、函数的错误处理11.2小节将介绍如何使用GDB来调试我们的程序动态运行情况下各种变量信息运行情况的监控和调试。

View File

@@ -2,7 +2,7 @@
开发程序过程中调试代码是开发者经常要做的一件事情Go语言不像PHP、Python等动态语言只要修改不需要编译就可以直接输出而且可以动态的在运行环境下打印数据。当然Go语言也可以通过Println之类的打印数据来调试但是每次都需要重新编译这是一件相当麻烦的事情。我们知道在Python中有pdb/ipdb之类的工具调试Javascript也有类似工具这些工具都能够动态的显示变量信息单步调试等。不过庆幸的是Go也有类似的工具支持GDB。Go内部已经内置支持了GDB所以我们可以通过GDB来进行调试那么本小节就来介绍一下如何通过GDB来调试Go程序。 开发程序过程中调试代码是开发者经常要做的一件事情Go语言不像PHP、Python等动态语言只要修改不需要编译就可以直接输出而且可以动态的在运行环境下打印数据。当然Go语言也可以通过Println之类的打印数据来调试但是每次都需要重新编译这是一件相当麻烦的事情。我们知道在Python中有pdb/ipdb之类的工具调试Javascript也有类似工具这些工具都能够动态的显示变量信息单步调试等。不过庆幸的是Go也有类似的工具支持GDB。Go内部已经内置支持了GDB所以我们可以通过GDB来进行调试那么本小节就来介绍一下如何通过GDB来调试Go程序。
## GDB调试简介 ## GDB调试简介
GDB是GNU开源组织发布的一个强大的类UNIX系统下的程序调试工具。使用GDB可以做如下事情 GDB是FSF(自由软件基金会)发布的一个强大的类UNIX系统下的程序调试工具。使用GDB可以做如下事情
1. 启动程序,可以按照开发者的自定义要求运行程序。 1. 启动程序,可以按照开发者的自定义要求运行程序。
2. 可让被调试的程序在开发者设定的调置的断点处停住。(断点可以是条件表达式) 2. 可让被调试的程序在开发者设定的调置的断点处停住。(断点可以是条件表达式)
@@ -14,7 +14,7 @@ GDB是GNU开源组织发布的一个强大的类UNIX系统下的程序调试工
编译Go程序的时候需要注意以下几点 编译Go程序的时候需要注意以下几点
1. 传递参数-ldflags "-s"忽略debug的打印信息 1. 传递参数-ldflags "-s"忽略debug的打印信息
2. 传递-gcflags "-N -l" 参数这样可以忽略Go内部做的一些优化聚合变量和函数等优化这样对于GDB调试来说非常困难所以在编译的时候加入两个参数避免这些优化。 2. 传递-gcflags "-N -l" 参数这样可以忽略Go内部做的一些优化聚合变量和函数等优化这样对于GDB调试来说非常困难所以在编译的时候加入两个参数避免这些优化。
## 常用命令 ## 常用命令
GDB的一些常用命令如下所示 GDB的一些常用命令如下所示

View File

@@ -6,7 +6,7 @@ Go语言中自带有一个轻量级的测试框架`testing`和自带的`go test`
## 如何编写测试用例 ## 如何编写测试用例
由于`go test`命令只能在一个相应的目录下执行所有文件,所以我们接下来新建一个项目目录`gotest`,这样我们所有的代码和测试代码都在这个目录下。 由于`go test`命令只能在一个相应的目录下执行所有文件,所以我们接下来新建一个项目目录`gotest`,这样我们所有的代码和测试代码都在这个目录下。
接下来我们再改目录下面创建两个文件gotest.go和gotest_test.go 接下来我们在该目录下面创建两个文件gotest.go和gotest_test.go
1. gotest.go:这个文件里面我们是创建了一个包,里面有一个函数实现了除法运算: 1. gotest.go:这个文件里面我们是创建了一个包,里面有一个函数实现了除法运算: