天天看点

不要让我记住太多事——要学会“偷懒”

        随着时间推移,工作也小半年了。工作的这些时间,在工作之初的时候安心敲了点代码,之后就开始了各种打补丁的生活,每天这有问题解决这,那有问题解决那……

        到现在工作的公司后,接手的是一个项目,但是公司要向互联网型发展,所以将这个项目当作产品来推广,随之而来的就是大量的部署。而部署所需要的大量配置文件却是手动一个一个改的。让人不能理解的是,项目是用Maven搭建的,但是当我对父项目进行Maven构建的时候,却发现报错,而问这里的老员工,他们说这个不能编译好久了……

        好在是通过咱们智能的eclipse,开发还可以进行。但是突然有一天,经理说要上自动部署,一切问题都暴露出来了。而自动部署是必须的,因为我们开发的时候,会开启VPN,如果不用自动部署,我们需要手动往服务器上传打包好的部署文件,上传速度大家可以想象一下。再加上我们打包好的一个web应用有90多兆,印象最深的就是带我部署的人告诉我操作步骤后,为一个用户部署,用了多半天,还没有弄好。还是第二天找了另外一个人又帮我弄了1个小时才弄完的。

        好吧,我承认,我太笨,部署一个用户用了一整天。而部署熟练后,也需要半天。最可怕的是,不一定对,需要注意的点特别多。真心想吐糟一下,不过还是算了吧。

        后来的后来,自动化部署上了,随之而来的就是怎样让自动部署在多用户的环境下也生效,并且操作快捷。这就是我后面会陆续出的博客系列——Jenkins的一系列操作、配置。在这个系列博客里,我会告诉你,分层不只是编程、网络的专利,Jenkins也可以。而且中间还有一个小插曲,也会以博客的形式展现,就是一个我对开发提出一个需求,而他毅然的说了一句不可能的事。

        现在我们部门就是用我搭建起来的自动部署的东西,上手很简单,而且不同的用户的配置采用的Maven的profile的形式进行分离,这样,一个配置在多个配置文件中配置多次的情形就可以使用这种方式降低复杂度,大大降低错误发生的概率。这个也会出现在系列中,虽然说网上已经有其它的博文了,但是我也会分享一下通过查看源代码所得到 的一个小信息点,通过此小信息点,可以让你在写profile里面的properties文件时,有一个更优的配置方式。

        这些都做完了,那么是不是就可以安心做其它事了呢?我是一个比较容易厌倦的人,一件事让我做的次数多了,我就会想着通过什么形式改善现有的处境。现在就遇到了这样的情景:

        虽然部署容易了,但是如果我们部门接手了100个用户,那么就是部署出去100套应用,当为某些事进行升级时,同时升级100个会怎样?而且就目前我们的处境是,目前已有的用户,所处版本还不一样,就算一样了,那么如果升级忘了哪个,这也是一个麻烦事。

        所以最近在琢磨的一件事就是怎样实现部署一套,多个用户使用的问题。虽然公司目前也引入了新的NB的人在弄SAAS这个,但是弄出来的时间对于我们来说,太久了,真的等不了了。而就这一件事,也已有思路,但碍于已有的这个系统太复杂,涉及到的东西太多,所以还需要进一步规划,并且确定出来难点。大家也可以就这个问题发表一下高见。

        这两天就会跟经理提及此事,期间有小成果会与Jenkins的系列博客交替出,而且在开始写之前,会有一篇像今天这样的博客进行通知。

        其实解决这些事情用到的技术点并不算复杂,也不算难,甚至在我跟你说了怎样怎样做之后,你会说:哦,原来就是这样弄啊,我也会。但是我们缺的就是一颗想要偷懒的心,我们总是想着这样就能做,把这此手动一个一个替换一下就好,记着一共需要改多少个地,总是口口相传却总也不将之文档化。

        关于文档我想说的是,文档所写的内容在真正被人看到时,及有可能已经与现实不符,但是那是我们应该尽可能保证的。就算有不一样,那至少大部分对于一个新人来说还是很有用的。文档对于目前正在开发的人来说,用处远没有一个刚刚加入的员工意义重大。我刚进来的时候,多么希望能有一个像样的文档来教下我怎样怎样做把环境搭建起来,而现实是一会一个人过来帮忙。

        要知道,公司给你付钱不是要你来这一个一个的教新人怎样怎样做的,你有这时间把文档一写,让他照着做,有不懂的问你,这样你不就省出来时间了去做更多有意义的事了么?

        最后的最后,以一段让人看了很有感悟的话结尾:编写文档也是我们更好地学习和享受生活的需要。“勤劳的中国人”生怕在工作中空下来,喜欢乐此不疲地重复解答别人所问和身体力行地传授自己所能。难道不能写成文档与人分享,然后空出时间来学习和享受生活?(好吧,“IT民工”没钱没生活,起得比鸡早,睡得比狗晚。自找的!)

继续阅读