Update refactoring.md

3.2 小节错字错词更正,调整语句通顺性。
pull/1504/head
lgphone 1 month ago committed by GitHub
parent 29e9f3cad4
commit f26089c0e8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -6,7 +6,7 @@
- **单一且庞大的函数**。对于 `minigrep` 程序而言, `main` 函数当前执行两个任务:解析命令行参数和读取文件。但随着代码的增加,`main` 函数承载的功能也将快速增加。从软件工程角度来看,一个函数具有的功能越多,越是难以阅读和维护。因此最好的办法是将大的函数拆分成更小的功能单元。
- **配置变量散乱在各处**。还有一点要考虑的是,当前 `main` 函数中的变量都是独立存在的,这些变量很可能被整个程序所访问,在这个背景下,独立的变量越多,越是难以维护,因此我们还可以将这些用于配置的变量整合到一个结构体中。
- **细化错误提示**。 目前的实现中,我们使用 `expect` 方法来输出文件读取失败时的错误信息,这个没问题,但是无论任何情况下,都只输出 `Should have been able to read the file` 这条错误提示信息,显然是有问题的,毕竟文件不存在、无权限等等都是可能的错误,一条大一统的消息无法给予用户更多的提示。
- **使用错误而不是异常**。 假如用户不给任何命令行参数,那我们的程序显然会无情崩溃,原因很简单:`index out of bounds`,一个数组访问越界的 `panic`,但问题来了,用户能看懂吗?甚至于未来接的维护者能看懂吗?因此需要增加合适的错误处理代码,来给予使用者详细友善的提示。还有就是需要在一个统一的位置来处理所有错误,利人利己!
- **使用错误而不是异常**。 假如用户不给任何命令行参数,那我们的程序显然会无情崩溃,原因很简单:`index out of bounds`,一个数组访问越界的 `panic`,但问题来了,用户能看懂吗?甚至于未来接的维护者能看懂吗?因此需要增加合适的错误处理代码,来给予使用者详细友善的提示。还有就是需要在一个统一的位置来处理所有错误,利人利己!
## 分离 main 函数
@ -426,4 +426,4 @@ fn main() {
呼,一顿书写猛如虎,回头一看。。。这么长的篇幅就写了这么点简单的代码??只能说,我也希望像很多国内的大学教材一样,只要列出定理和解题方法,然后留下足够的习题,就万事大吉了,但是咱们不行。
接下来,到了最喜(令)闻(人)乐(讨)见(厌)的环节:写测试代码,一起来开心吧。
接下来,到了最喜(令)闻(人)乐(讨)见(厌)的环节:写测试代码,一起来开心吧。

Loading…
Cancel
Save