|
|
楼主 |
发表于 2011-12-5 20:33:43
|
显示全部楼层
简单工作流服务
这是我接手的最复杂的一部分。工作流的目的是把单据的各种审批流程串联起来,而且还需要做到灵活可变。涉及到和ERP的多个接口的对接。工作流服务 是在企业软件中很常见的部分,但由于我之前一直都是在互联网公司里,对企业开发近乎一无所知。头头用了好几天的时间帮我理清各个流程、各种概念,然后又做 了个前端展现的界面。我在此基础上实现数据的流转,挂接到ERP上。整个项目大约用了三周多的时间才搞出来。
工作流服务的有些代码相当复杂,属于难以维护的那种。我比较后悔当初没有用个好用的ORM工作,如果我很熟悉Doctrine的话,估计代码的复杂 度能降低不少,但限于时间,我也没有十足的把握说可以先学习Doctrine再着手工作流的开发,自己做个简单的ORM还要考虑各种特殊情况,时间上也没 把握,所以也只好用了比较笨重的方案硬着头皮做下去 。
邮件服务
邮件服务这个需求都后期才分给我。简单来说就是实现一个邮件发送队列。做这个的时候我已经比较了解Redis了,所以大胆地冒了一次险,用Redis来实现邮件外发队列。经验表明Redis在这里用得还算比较合适,连续平稳地运行了数个星期都没发生过问题。
BI数据报表服务
这也是个比较麻烦的项目,本来是想交给一个计划要来的写Java的来做的,可是因为各种原因,那人没来,所以很自然的这个项目又落到我的头上了(人员问题始终是个大问题)。更不幸的是,此时离内测期限已经不多。
这部分遇到的问题比较多,一大原因是需求、设计不是我能做主的,需要由产品设计部门出。而他们又需要市场运营部门的意见。绝大部分时间消耗在沟通上。最后给我的原型草稿在我看来还很繁琐,但也没别的办法,毕竟他们就是想这样设计的,我也不便太多的干涉。
此外,还有一些像日志存储、图片处理、条形码生成模块等底层设施也需要我来做。做了这么多的底层服务,最担心的是真正上线以后它们的稳定性。绝大多数业务逻辑都是跑在我写的这些底层平台上的,一旦我的程序出了严重的问题,事情就麻烦了……
内测前期,需求变更
有些事情,明明是需要在前期做的,却偏偏被推到了最后。业务部门的人也需要明白,真实世界的程序员们并不是像电影《社交网络》里演的一样能一晚上搞 出个Facebook来的。产品部门是需要和业务部门一起明确需求的,虽然作为程序员,应该有能力让自己的程序具有灵活可配置的特性,应该有能力想到日后 各种需求的变更、功能的扩展。但如果所有这些问题都需要程序员去考虑,为未来的各种可能的变化都做好准备,那么产品设计的人还有多少存在的意义?
目前网站即将上线,下一阶段的想法是逐步重写我之前的那些代码,甚至部分逻辑可能会使用其他的语言,用最合适的方法实现。只要保持接口不变,上层业务逻辑的代码就无需改动。我就可以在自己的小天地里做各种折腾了。
|
|