Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6662231
  • 博文数量: 915
  • 博客积分: 17977
  • 博客等级: 上将
  • 技术积分: 8846
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-26 09:59
个人简介

一个好老好老的老程序员了。

文章分类

全部博文(915)

文章存档

2022年(9)

2021年(13)

2020年(10)

2019年(40)

2018年(88)

2017年(130)

2015年(5)

2014年(12)

2013年(41)

2012年(36)

2011年(272)

2010年(1)

2009年(53)

2008年(65)

2007年(47)

2006年(81)

2005年(12)

分类: Java

2011-09-27 21:52:06

相信大家都有做过登陆功能的模块,而且大部分的教程也是以登陆来演示代码功能的,因此也给了人们一个错觉,登陆就是一个基本的功能模块,也是基础模块,这个是最容易的功能,在项目组里谁的技能相对最弱就让谁去做吧。而现在我却要说,千万不要轻视了登陆功能,有时它会牵动整个项目的进程。

 

这是我的亲身经历。记的当我刚入项目组时,刚好新项目才启动,客户指定要使用ofbiz框架来实现。一个项目组的人对于ofbiz来说都是新手(虽然别人比我多看了几个星期的资料),大家都在一个从零的起跑线上开始飞奔了起来。由于是敏捷开发模式,客户在第一个demo show中就要去看基本效果了,无奈下,大家都是鸭子上架,边看资料就边开发了。

 

我是刚入项目组的新手,刚被调入项目组时他们正好都在开分析会,于是我就在那会上被认领了......,接着就跟着他们开会,讲的是什么?我是一头的雾雨,ofibz?什么东东?框架?没听过啊!一个组加上我正好六个人,组长基本上不做开发,当时正好在第一阶段要求四个模块,那就没我的事了?呵呵,组长分完的任务突然又来了句,“啊,差点忘了,还有个登陆功能没分,正好,小丁,给你做了吧,这个是比较简单的。”,“哦!”傻呼呼的就那么迷糊的点了点头。

 

接了任务,又花了一天的时间去走马观花的看了点资料,(关于ofbiz的资料当时几乎是没中文的,英文的入门pdf资料400多页,郁闷了)。就开始热火朝天的干起来了,由于框架的特殊性,为了和数据库交互,为了页面的渲染,为了控制器的转发,所有的都自成一家,终于是在一天的下班时间来临之前调好了,我的第一个任务,登陆。

 

当时所做的实现,应该是很普遍的一种实现,就是在session中自定义一个常量名,加入一个登陆对象来做登陆了,以后就跟据这个登陆对象来判断登陆了,思路很简单,功能也不复杂。不错,第一个任务完成了。

 

在这以后的持续开发中,一直都很正常,但慢慢的,从学习ofbiz资料的越来越深入,实践使用代码开发所遇到的困难里越来越发现有问题。因为无论是从官方介绍还是详细资料里都指出,ofbiz是一个功能很强大,开发中调整很便捷,适应度很高的一个框架,为什么我们就没有感觉到这些优点?在一次中途的sprint结束后,我暂时少领了任务,开始了对框架的全面分析和代码研究。最后找出了原因,问题出在了我身上,就是我当初所写的那个登陆功能,牵制了整个项目的开发。

 

其实,如果要把原因说清楚很难,因为那要把ofbiz的实现机制和他们框架操作思路都理新了才会知道那里面是一环套一环,不是随便玩的。这里我只简略的说个实现意图。ofbiz框架中已经有很多实现好的功能,比如操作记录,访问者记录,权限控制,工作流,paypal支付,订单系统仿ebay等等,但这都是建立在一个loginWorker的对象基础之上,而这个对象可以说就是登陆的实现入口。也就是说如果当时我不是自己建一个登陆用户表而是使用ofbiz所提供的对象功能,那么之后的邮件发送,验证码,权限,订单,支付等等就可以避免很多重复的轮子了,而到我发现这种情况时,项目已经进入了中期,再改所花的成本将更大,无奈之中只能继续走下去了,不过从那已后,我就深入的研究其源码,至少在项目后期的开发中少走了不少弯路。

 

从中得到的教训,不仅仅是ofbiz框架,对于任何项目来说,没有那个模块或功能是简单容易的,他们都是一个整体,做为一个项目领导者更是要眼光罩住全局,统一调度和整合,不然下面就是战国时代,各自为王了。也许我这只是一个极端的例子,但是,告诫大家和提醒我自己,千万别轻视了登陆模块的这种小功能,任何的轻视都会为之付出代价的。

阅读(1223) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~