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 下阶段工作安排的更多相关文章

  1. Lemon OA第4篇:常用功能

    OA,Office Automation的简写,中文意思办公自动化,不同的人有不同的见解,可以简单的理解为网络化办公,高效.协同是其显著的特点,如今正在朝着智能的方向发展 平时不擅长文字,写出来几句话 ...

  2. BZOJ1572: [Usaco2009 Open]工作安排Job

    1572: [Usaco2009 Open]工作安排Job Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 775  Solved: 337[Submit ...

  3. BZOJ 1572: [Usaco2009 Open]工作安排Job( 贪心 )

    贪心... 按截止时间排序 , 然后从小到大考虑 . 假设当前考虑第 i 个任务 , 若目前已选工作数 < D_i , 那就选 i ; 否则 若已选工作中利润最小的比 P_i 小 , 那就去除它 ...

  4. 【BZOJ 1572】 1572: [Usaco2009 Open]工作安排Job(贪心+优先队列)

    1572: [Usaco2009 Open]工作安排Job Description Farmer John 有太多的工作要做啊!!!!!!!!为了让农场高效运转,他必须靠他的工作赚钱,每项工作花一个单 ...

  5. 1572: [Usaco2009 Open]工作安排Job

    1572: [Usaco2009 Open]工作安排Job Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 814  Solved: 365[Submit ...

  6. Lemon OA第3篇:核心功能

    对Lemon OA系统的核心功能进行梳理,分别介绍说明如下文. Portal页面 还是从用户主页开始说起: OA核心的功能就是流程,启动流程,办理流程,查看历史,3个常用功能都罗列在用户主页上,方便用 ...

  7. Lemon OA第2篇:功能解析方法

    Lemon OA,整个系统功能也算是比较丰富,OA的很多功能都能看见影子,虽然做得不是很强大 接触Lemon OA,起源于Activiti的学习热情,既然这样,研究Lemon OA的目标有3: 1.L ...

  8. Lemon OA第1篇:简单介绍

    官方网站:http://www.mossle.com/ 声明:我不是Lemon OA作者,只是分享好的资源.以下内容均代表个人见解~ 从官网说起 知道Lemon OA,也是最近研究Activiti,看 ...

  9. 关于lemon oa的数据库

    lemonOA的数据库默认用的是hsqldb,这个数据库还是第一次听说,暂且不论. 也就说Lemon OA默认使用HSQLDB数据库,是嵌入式的数据库不需要单独安装. lemon-1.4.0\weba ...

随机推荐

  1. minicom移植到ARM开发平台

    minicom需要ncurses库的支持.arm-linux-gcc中并没有此库故需要交叉编译ncurses,否则出现很多头文件.库函数找不到. 软件环境: ncurses-6.0 下载网址:http ...

  2. Python教程:操作数据库,MySql的安装详解

    各位志同道合的同仁请点击上方关注 本教程是基于Python语言的深入学习.本次主要介绍MySql数据库软件的安装.不限制语言语法,对MySql数据库安装有疑惑的各位同仁都可以查看一下. 如想查看学习P ...

  3. 苹果手机 iframe 无法滚动bug

    原来在html5下,iframe 只有 src 属性scroling='no' 解决办法:在iframe外加一层第div,设置样式-webkit-overflow-scrolling:touch;ov ...

  4. 鼠标移入 移出div div会消失的处理

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  5. javascript技巧字典【转藏】

    2015-12-31 js判断undefined类型 if (reValue== undefined){    alert("undefined");    }  发现判断不出来, ...

  6. (转)C#中Trim()、TrimStart()、TrimEnd()的用法 .

    C#中Trim().TrimStart().TrimEnd()的用法: 这三个方法用于删除字符串头尾出现的某些字符.Trim()删除字符串头部及尾部出现的空格,删除的过程为从外到内,直到碰到一个非空格 ...

  7. linunx 定位最耗资源的进程

    [oracle@topbox bdump]$ ps -ef|grep “(LOCAL=NO)”|sort -rn -k 8,8|head -10oracle    9402     1 67 09:1 ...

  8. CI 笔记 数据库

    demo: 1.  建立数据库,driver, 字段 name,telphone,idcard,car,content 2. 建立model,Driver_model.php文件, 建立add方法, ...

  9. iOS中的几种定时器详解

    在软件开发过程中,我们常常需要在某个时间后执行某个方法,或者是按照某个周期一直执行某个方法.在这个时候,我们就需要用到定时器. 然而,在iOS中有很多方法完成以上的任务,经过查阅资料,大概有三种方法: ...

  10. 关于Java的一道内存的题目

    import java.util.Arrays; import java.util.EmptyStackException; public class MyStack<T> { priva ...