IT行业,一直都在软件的灵活性上做了许许多多的研究与突破,当然这其中包括软件开发灵活,使用灵活等等诸多软件灵活性,因为我们不希望程序总是因为一些很小的改动或者根本就是一些以客户为决定的可变参数之变动,总是去修改程序。我很烦这样的设计,当然你应该也很讨厌的,呵呵,是的话,我们得握一下手,哈哈.....
最近公司的领导说有几个项目的服务器偶尔会出现问题,但是事故发生的时候没有知道(因为是政府的项目,人都下班了),总是在第二天或者什么时候才有人告诉说机器挂了。好吧,写个程序监控项目运行是否正常,在出现问题或者恢复正常的时候邮件通知领导,可以及时的去处理这些问题。当然这种情况下最好是领导的手机安装了邮箱客户端,然后开启了声音提醒功能,OK,这样我就可以开始设计了。
那么这里就有几个东西需要思考,那就是监控的网站地址,邮箱及密码,邮箱服务器域名等数据,这些数据应该如何处理,我可不想下次领导时候要监控别的网站的时候,或者领导说:哥的邮箱换了,等等这些时候我得去修改代码。
之前拜读了一篇博文《软件开发中的快与慢》,我们在开始设计的时候,需要耐心的思考而不是凭借自己貌似正确的经验立马做出判断。好的,这里面,我们就应该明白,上面提到的这些数据是可变的,而且为了让程序更加灵活,适应度更广,这些数据不能被写在程序里面,它们可以再需要的时候进行非常简单得修改就可以得到所需的效果。
那么就做配置,配置是东西,好设计,也许设计当时不会出现别的情况。然后我们需要确定什么地方应该被配置,如何配置。
根据网站监控这个程序的需要:
1、我将需要被监控的网站域名配置在一个txt文件:urls.txt
2、邮箱服务器配置:server.txt
3、接受邮件的邮箱:receiverMail.txt
然后就是发送者的邮箱,这个数据似乎就没有必须配置了,因为跟项目本身没什么关系,因为用户想看到的是邮件通知,而不关系是那个邮箱用户发过来的。
好了,这样子,一次就可以监控多个网站,任何一个网站出现问题,都会邮件通知上面的人去处理(虽然这样让部分人可以偷懒)。
配置+程序,让代码更加灵活,更加人性化。现在许许多多开发都是这样做,java的servlet,struts等等组件与框架,.net同样如此(web.Config)。
这样写不是更好嘛,呵呵....