你在用程序库吗?

标签: 程序库 | 发表时间:2011-08-29 23:12 | 作者:dreamhead kylexlau
出处:http://dreamhead.blogbus.com

早上的Code Diff,项目组的所有人坐在一起过一遍上一个工作日写的代码。

“这个测试为什么这么写?”我质疑了一段有文件读写的测试。
“因为我要测文件读写。”这段代码的作者回答道。
“你真的需要吗?文本内容相关的测试可以用字符串。”
“真的需要,我真要测文本读写。”
“好,下来一起看看。”

Code Diff结束,我们坐在一起。他给我介绍了一下这段代码的作用:把文件的内容按行读成一组字符串。

看着那段充满着各种异常处理的文件读写的Java代码。
“嗯,确实是需要文件读写,这点我同意。”我说。
我看到一丝放松从他脸上闪过。
“不过,为什么要自己实现这个功能呢?”
“啊?”他惊讶了一下。
“为什么不用Guava库?”
“Guava还支持这个?”
我无奈的笑了一下,“是啊,Guava很强大的。”我给他找了Guava实现这个功能的API,展示了一小段代码。
“哦,好吧,我回去改一下。”

现代软件开发已然不同于那个纯手工打造的年代,写程序时,我们通常会使用一些程序库,但是,很多人对于程序库的使用仅限于别人已经在程序里面用到的用法,并不越雷池半步,所以,常常会有不少人累死累活写出来不稳定的代码去实现程序库里的现成功能。

这已经不是我第一次在项目里面提到这个问题。前不久,有人辛辛苦苦用正则表达式实现出一段非常华丽的匹配,从URL中提取参数。直觉告诉我这么做是不对的,我们在用Spring MVC,既然Spring可以很好的提取这些参数,为什么我们要自己写。

在直觉的驱动下,我研究了Spring MVC的部分实现,于是,PathMatcher浮出水面。采用PathMatcher之后,那些复杂到不是一下子能看懂的正则表达式烟消云散了。

既然我们用到了程序库,那就真的用一下这个程序库吧!

相关 [程序库] 推荐:

你在用程序库吗?

- kylexlau - 梦想风暴
早上的Code Diff,项目组的所有人坐在一起过一遍上一个工作日写的代码. ”我质疑了一段有文件读写的测试. 文本内容相关的测试可以用字符串. Code Diff结束,我们坐在一起. 他给我介绍了一下这段代码的作用:把文件的内容按行读成一组字符串. 看着那段充满着各种异常处理的文件读写的Java代码.

C++著名程序库的比较和学习经验

- xianmao - C++博客-首页原创精华区
     摘要: 1、C++各大有名库的介绍——C++标准库. 2、C++各大有名库的介绍——准标准库Boost. 3、C++各大有名库的介绍——GUI. 4、C++各大有名库的介绍——网络通信. 5、C++各大有名库的介绍——XML. 6、C++各大有名库的介绍——科学计算. 7、C++各大有名库的介绍——游戏开发.

你应该更新的Java知识之常用程序库(二)

- - 梦想风暴
一句话,如果你写单元测试,就应该用 Hamcrest. 如今不写单元测试,你都不好意思说自己在做工程项目了. 如果你还写成下面这样,我只能说你落伍了:. 请告诉我,哪个是执行结果,哪个是预期结果,不管你是怎样,反正大多数情况下,我是记不住的. 所以,这个在只重功能不重可读性年代产生的API该更新了.

你应该更新的Java知识之常用程序库(一)

- - 梦想风暴
在很多人眼中,Java已经是一门垂垂老矣的语言,但并不妨碍Java世界依然在前进. 如果你曾离开Java,云游于其它世界,或是每日只在遗留代码中挣扎,或许是时候抬起头,看看老Java中的新东西. 一句话,只要你做Java项目,就应该用 Guava. guava是Google出品的一套Java核心库,在我看来,它甚至应该是JDK的一部分.

一本超越期待的 C++ 书——简评《Boost程序库完全开发指南:深入C++“准”标准库》

- QQ - 赖勇浩的编程私伙局
赖勇浩(http://laiyonghao.com). 作为一个时不时要用一点 C++ 的程序员,我常常自嘲为斯德哥尔摩综合症患者,用 Python 写着懒散的代码时,会怀念以前编写 C++ 代码的那种被虐感. 但当真正要写一些 C++ 代码的时候,又会怀念 Python 带给我的自在,这也许就是所谓的由奢入俭难了.