`

千万别轻视了登陆模块

阅读更多

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

1
1
分享到:
评论

相关推荐

    初中语文文摘人生不要轻视碎纸屑

    初中语文文摘人生不要轻视碎纸屑

    模块化教学与创新创业素质培养的关系研究——以《毕业季Web》项目实施为对象 (1).pdf

    传统教学模式往往侧重于学科的完整性,却轻视了学生实际工程能力的培养,导致毕业生在就业市场上与企业需求之间存在较大差异。本研究以《毕业季Web》项目实施为案例,探讨了模块化教学与创新创业素质培养之间的关系...

    心梗征兆不可轻视

    在我们的日常生活中,保持健康的生活习惯和对常见疾病的认知十分重要。特别是对于那些危险性极高的疾病,比如急性心肌梗死,更应提高警惕。急性心肌梗死(简称心梗)是由于心脏的血液供应受到严重阻碍,导致心肌缺血...

    不可轻视的地板辅料.zip

    "不可轻视的地板辅料.zip"这个压缩包文件显然聚焦于揭示这些材料的重要性,帮助用户理解如何选择和使用合适的地板辅料,以确保地板安装的质量和持久性。 地板辅料主要包括防潮膜、地垫、踢脚线、收边条、膨胀缝填充...

    软件工程模块一、模块二.doc

    #### 模块一:软件工程概述 ##### 一、基础知识解析 **1. 软件与程序的区别** - **核心概念:** 软件不仅仅是程序本身,还包括一系列相关的文档和支持材料。程序只是软件的一部分。 - **综合理解:** 在实际工作...

    不要轻视拷贝构造函数与赋值函数

    ### 不要轻视拷贝构造函数与赋值函数 在C++编程中,拷贝构造函数和赋值函数是理解类的重要组成部分。虽然这两种构造函数通常由编译器自动提供,但它们对于确保数据安全性和类的行为正确性至关重要。本文将深入探讨...

    初中语文文摘历史不要轻视行动的力量

    初中语文文摘历史不要轻视行动的力量 在历史的长河中,有无数平凡的人,他们以自己的行动为这个世界带来改变。今天的主角汪涵,他的一生便是一个行动力量的最好诠释。汪涵的生涯轨迹证明,不论出身如何,只要不懈...

    选择云服务不可轻视的三大细节.docx

    本文将针对选择云服务时不可轻视的三大细节进行深入探讨,以期为企业安全管理员在选择云服务时提供有价值的参考。 首先,云端点授权需明确是选择云服务时必须重视的问题。在传统的物理安全体系中,授权和访问控制是...

    别高估关系,别低估生活,别错估人心.pdf

    其次,“别低估生活”提醒我们生活充满了不确定性,我们不能轻视它的复杂性和难度。我们常常设想通过自己的努力和聪明才智就能实现理想的生活,然而现实往往比预期更为严峻。生活不只是工作和金钱的积累,它包含了...

    IGBT安装指南[整理].pdf

    每一个环节都不能轻视,它们都直接影响IGBT模块的散热性能和工作寿命。对于从事软件开发工作的硬件工程师来说,了解IGBT模块的安装技术细节和相关注意事项,是保证电力电子系统稳定运行和提高系统效率的必要条件。...

    高教版语文基础模块上册第1-3单元测试题.docx

    这篇文档是高教版语文基础模块上册第1-3单元的测试题,包含汉字书写、基础知识及运用、阅读理解等部分,旨在检验学生的语文素养和理解能力。文档以语文试题的形式呈现,内容包括语言知识的运用、词汇解释、语境判断...

    校园宿舍防火莫轻视 火场逃生技能get.docx

    【校园宿舍防火与火场逃生技能】 在大学生活中,宿舍是学生们主要的活动场所,因此宿舍的消防安全至关重要。近期发生的xx演艺专修学院女生宿舍火灾事件警示我们,必须高度重视校园宿舍的防火工作,掌握基本的火场...

    牛津高中英语模块六Unit-1-4语言点.doc

    【牛津高中英语模块六 Unit-1-4 语言点】是针对高中英语学习者的一份资料,旨在帮助学生掌握并运用一系列关键的词汇、短语和表达方式。以下是这份资料中涉及的重要知识点: 1. **stand up for sth**:这个短语表示...

    面试千万别犯的7个愚蠢错误

    轻视面试官提出的问题,不仅显示出了对面试的不尊重,也可能会被解读为缺乏耐心。无论问题如何,都应该认真思考并给予专业的回答。 总的来说,面试不仅是一个展示个人技能和经验的过程,更是展现个人态度、礼仪和...

    进击的职场人 健康观念不容轻视——2021职场人健康状况调查报告.pdf

    随着生活节奏的加快和工作压力的增大,职场人群健康问题日益受到社会各界的关注。《2021职场人健康状况调查报告》深刻揭示了当前中国职场人面临的严峻健康挑战。报告指出,中国居民超重肥胖率显著上升,职场人群更是...

    重构语文课程 促进深度学习.pdf

    传统语文教学模式中存在着诸多问题,如学生对语文学习的厌倦与轻视。《重构语文课程 促进深度学习.pdf》提到的“三分语文”理念正是为了解决这些困境而提出的。其核心目标是突破单一的课本教学模式,树立起大语文...

    不再轻视软件测试用别样眼光感悟软件测试

    火龙果软件工程技术中心 曾经对软件测试很轻视,因为我那时很无知,只是一名普通的中国程序员,这也是那时绝大多数程序员的心态,那时中国程序员最讲究“编程才是硬道理”。如今却非常热爱软件测试,包括软件测试...

    汽车4S管理系统需求分析

    在当前的4S店经营现状中,存在一些挑战,如对汽车厂家的依赖性强、缺乏自身品牌形象、经营成本高、利润率低、专业人才素质不足且流动性大、过于重视销售而轻视售后服务等。因此,4S店的发展趋势倾向于解决这些问题,...

    中职语文基础模块(下):23.《师说》自我检测及答案解析.pdf

    这段文字反映了当时社会对师道的轻视,以及作者对此的反思。 以上内容涉及了古汉语的基础知识,包括字音、字义、古今异义、通假字和词类活用,同时也展示了古人在师道问题上的观念和态度。通过这样的自我检测,可以...

Global site tag (gtag.js) - Google Analytics