幸福的程序员

趁着端午的三天假,重拾java,写了一个小邮件程序:定期扫描一张数据表,其结构对应一份E-mail的,并有一个预期时间字段,当前时间如果大于设定的内容,则发出该E-mail。

我每天收到的系统告警及运行状态之类的非人类短信从数十条到数百条,经常是等手机短信满了才看一遍,或者是根据铃声的密集度来确定告警级别,这种状况已经彻底消灭了我对短信的兴趣,也起不到及时通知的作用了。写这个程序的初衷是尝试把我从这无尽的短信之洋中解救出来,每天用shell去给自己及相关人员生成系统状态报告,写进程序的接口表里去,很快就发出了邮件,也能起到存档的作用。

这几天里,越来越感到当一个java程序员是多么幸福,有如此多优秀工具及丰富的API库,开发的过程真的是很惬意。下面介绍一下我这个小项目中用到的各种好东西,可能是我比较孤陋寡闻,高手看了不要鄙视。。。

开发环境自然首先Eclipse,陪伴多年的好工具了,回到那熟悉的编辑界面,再次用到那些快遗忘的的快捷键,顿时满足感Max。编辑XML自然有很cool的xmlbuddy插件帮忙,打包也有方便的fatjar。

想发邮件,有现成的javamail库,引入项目后简单几行就能搞出个Hello World。本来是想用公网上的smtp服务器,后来才发现现在免费的服务并不像以前那么好使了。网易新注册的免费信箱已经停止了pop3和smtp服务,Google的偶尔会被盾,21cn.com的会被防垃圾邮件系统阻挡,后来找到了可用的sogou信箱,也因为调试得太频繁而被禁,不得已还是找了个软件自己建了个smtp服务器1st mail server,又好又强大,起码发件人可以自定义了。

想整个完善点的日志系统,本来想搜索一下找点参考,才发现jdk从1.4起就内置了强大的java.util.logging包,欣喜地学习了一下。

想灵活的读写配置文件,又找到了Apache Commons Configuration,支持8种常用的配置读写。顺着挖下去,看了下Apache Commons里的其它工具,幸福地哭了。。。

在公司的机器上也改了下程序,和自己的电脑用邮件来同步代码颇不方便,于是又找到了Google Code,提供免费的版本控制服务,前提是得开源,再次激动了一下…顺便学习了一下svn,以后写些脚本什么的管理就方便了。

程序写完后要部署才发现在Windows上想让程序后台运行可没Unix/Linux上方便,于是又搜到了Java Service Wrapper,可以把java程序部署为windows的系统服务。这又是一个强大的东西,还实现了我程序中的部分日志功能。

感想:作为一个IT人员,眼界很大程度上决定了自身的发展,这么多的现成东西可以借用,如果还傻乎乎去写实在是很浪费时间。平常多搜集些实用的模块,自己也多注意代码的积累与复用,就能把更多精力放在那些更须要关注的地方,长而久之想不牛逼都难啊~