lemon OA 下阶段工作安排
lemon OA 下阶段工作安排
经验总结
lemon OA系统作为一个中型的java web系统,在架构上还是有着很好地可学习的地方。但是由于经验不足,过程比较迂回。如果真的有经验的话,应该可以做到如下几点吧,
技术基础的问题
java WEB的mvc框架就那么几个,orm层就那么几个。所以涉及HTTP服务的技术点以后应该越来越只是一个基础了。但是这些基础十分重要。拿lemon OA来说,它应用了Spring MVC,hibernate。项目通过MAVEN的pom文档来管理,这个花了一些时间来学习。系统是用slf4j做日志系统的,我在后期通过slf4j来调试流程管理模块的listener功能,还是比较好的。在调试activiti的流程管理模块时,通过在IDE编译器里设断点来做,比较不现实:一、代码封装在jar文件中;二、代码的逻辑不清楚,因为引擎的代码有一些应该是算法相关,而不是简单的crud功能,所以不好看。在这个时候,通过将mysql的日志功能打开,查看流程引擎运转过程中,所产生的多条query语句。反而是Spring Security这个逻辑十分清楚的权限控制组件,花了较多时间来理解和消化。其实,真的没有必要,权限管理这种功能实现方法“自古以来”的实现方式就那么几种。真的没有必要花那么多时间来看。
业务方面的问题
业务的问题,主要就是数据库的建模问题。基于关系型数据库,设计实体,设计实体之间的关联是比较考验经验的活儿。
1.账号机制+组织机构+权限控制
这一块的东西,数据库的设计一直是比较稳定的。可能实现的机制有所不同,尤其java这块的框架一直有所变动。但是核心的数据流模型是比较稳定的。
2.前后台的逻辑划分
前台和后台的编程思维是不一样的,不同语言的编程思维也是不一样的。前台要想做得好,主要是两点:(1)GUI编程,界面效果,事件绑定;(2)数据管理,这点和后台没有本质区别。而后台编程,就是在考虑操作数据库,操作数据库。为了能够更好地操作数据库,我们要依赖服务器,框架各种各样神奇的工具和功能。多掌握一种工具,并且是市场上的通用工具是十分有优势的。
lemon OA 下阶段工作安排的更多相关文章
- Lemon OA第4篇:常用功能
OA,Office Automation的简写,中文意思办公自动化,不同的人有不同的见解,可以简单的理解为网络化办公,高效.协同是其显著的特点,如今正在朝着智能的方向发展 平时不擅长文字,写出来几句话 ...
- BZOJ1572: [Usaco2009 Open]工作安排Job
1572: [Usaco2009 Open]工作安排Job Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 775 Solved: 337[Submit ...
- BZOJ 1572: [Usaco2009 Open]工作安排Job( 贪心 )
贪心... 按截止时间排序 , 然后从小到大考虑 . 假设当前考虑第 i 个任务 , 若目前已选工作数 < D_i , 那就选 i ; 否则 若已选工作中利润最小的比 P_i 小 , 那就去除它 ...
- 【BZOJ 1572】 1572: [Usaco2009 Open]工作安排Job(贪心+优先队列)
1572: [Usaco2009 Open]工作安排Job Description Farmer John 有太多的工作要做啊!!!!!!!!为了让农场高效运转,他必须靠他的工作赚钱,每项工作花一个单 ...
- 1572: [Usaco2009 Open]工作安排Job
1572: [Usaco2009 Open]工作安排Job Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 814 Solved: 365[Submit ...
- Lemon OA第3篇:核心功能
对Lemon OA系统的核心功能进行梳理,分别介绍说明如下文. Portal页面 还是从用户主页开始说起: OA核心的功能就是流程,启动流程,办理流程,查看历史,3个常用功能都罗列在用户主页上,方便用 ...
- Lemon OA第2篇:功能解析方法
Lemon OA,整个系统功能也算是比较丰富,OA的很多功能都能看见影子,虽然做得不是很强大 接触Lemon OA,起源于Activiti的学习热情,既然这样,研究Lemon OA的目标有3: 1.L ...
- Lemon OA第1篇:简单介绍
官方网站:http://www.mossle.com/ 声明:我不是Lemon OA作者,只是分享好的资源.以下内容均代表个人见解~ 从官网说起 知道Lemon OA,也是最近研究Activiti,看 ...
- 关于lemon oa的数据库
lemonOA的数据库默认用的是hsqldb,这个数据库还是第一次听说,暂且不论. 也就说Lemon OA默认使用HSQLDB数据库,是嵌入式的数据库不需要单独安装. lemon-1.4.0\weba ...
随机推荐
- SELECT [Code] ,[AlarmID] ,[ItemName] ,[isDeleted] ,[Remark] FROM [LjlData].[dbo].[T_BaseDetail] union select 0--
SELECT [id] ,[AlarmID] ,[ItemName] ,[isDeleted] ,[Remark] FROM [LjlData]. ...
- java反射的应用+mybatis+spring动态生成数据库表
最近接触了一个类似于代码生成工具的活.思路是,通过java的反射机制得到类的字段和字段类型, 从而可以创建一个map集合存储表名(由类名决定的特殊结构字符串),表字段(由类变量确定),表字段类型(由变 ...
- union与union all 的区别
Union与Union All的区别 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或称为联合)的作用是将多个结果合并 ...
- WebService学习笔记
WebService有什么用? 入门之前先简单介绍下WCF.在用WebService做开发时,很多人都不知道WCF和WebService之间的关系.实际上WCF包含了WebService,这是一个很强 ...
- 设置lable内容不上下居中
转载自:http://dong-zsh.github.io/2015/10/14/%E8%AE%BE%E7%BD%AElable%E5%86%85%E5%AE%B9%E4%B8%8D%E4%B8%8A ...
- html-----004
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- php日期处理
$datetime=strtotime(date("Y-m-d",time()));//获取当前日期并转换成时间戳 $datetime=$datetime+86400;//在时间戳 ...
- windows phone 之ListBox模板选择
有时做项目时,会遇到一种情况:需要把获取到的数据集合显示到首页,比如新闻,但是: 新闻也分类别啊,比如:图片类新闻.文字类新闻.视频类新闻. 那我们可能采用的模板就不一样了,那么,如何根据类别来选择模 ...
- 自己使用Jquery封装各种功能分享
自己使用Jquery封装各种功能分享: 左右滚动图片 瀑布流 流动显示列表 广告切换 头像切换And广告切换 获取搜索引擎的来源关键字 上面列表中展示的功能都是使用jquery进行封装实现的,希望大家 ...
- 使用jQuery验证用户名是否存在,达到局部刷新的效果
<%@ page pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...