增量开发在技术改进项目上的应用

Posted on Thu 19 August 2010 in 我思

今天的工作取得了巨大的进步,用新阳的话来说,这是方法层面的进步。

话说我们为了提升数据库的性能和逻辑清晰度,要让每个应用只能访问它自己的数据。挑了一个最简单的应用进行拆分,项目实施起来的困难就很大。 从技术方面看这不是个困难的事,但和业务自身的功能需求来竞争资源,实在不占优势,造成了虽然完成开发,但无人测试的窘境。

每次想到Q4要完成两个复杂度更高应用的数据拆分,都觉得很头大。当我看到其中一个应用提交的数据表分析文档时,这种痛苦达到了顶点,这个项目真的得有所改变了。 下午和明飞就这个问题开始了讨论:我们必须得做点儿什么,让项目能尽快的转起来,这个共识很容易达成,就是先让应用的注册部分改走公共注册服务。然后接下来呢? 讨论了一个多小时后,好像有点儿眉目了。为了不影响别人,我们到打印室(实在找不到空会议室了)继续讨论了。 可以大声说话了,好像状态更好了,我们定下了按表拆分的增量开发方案:

  1. 继续整理每张数据表的访问用户(App/App_Boss/Comm_Boss/Comm_Service/Comm_API),凡是访问用户超出App的都是公共表;
  2. 每个Sprint都选定几个公共表进行拆分:所有调用这些公共表的应用都需要通过公共服务操作表;
  3. 每次迭代都可以上线,当所有的公共表都完成拆分后,通过数据库监控应该可以看到,所有的公共表都只有公共服务在访问;
  4. 最后阶段就是建立新的用户,把应用的私有表放到新用户下,应用通过新用户访问私有表,拆分完成。
监控只有公共服务在访问共有表,这件事咨询了苑琦,可以做到SQL语句和访问IP的对应。只要App和公共服务不在同一台服务器上,就可以进行监控了。 转换思路让项目可以小步快走,还挺有成就感的呢。