今天是OA的第二天.
我还在第一天代码的巧妙设计的兴奋中呢.第二天就开始了.呵呵,说实话,传智播客的代码质量真的很不错.不信的你们可以看看 开源社区传智播客公开的BBS代码你们就知道了.

今天的主要内容是OA的组织机构模块实现.同样,这个模块的实现也有很多的技术和代码技 巧在这个里面.

这个模块分了三个小的功能模块,分别是部门、岗位、员工

一、
1, 了解需求,这个通过静态页面来做.在工作的时候,需求都是由同事做好 的,再给程序员来实现,转换成动态的页面.
2, 设计 实体(设计数据库表)  
对象-->表:正向工程。表-->对象:反向工程。
几个实体?实体之间什么关系?每个实体有什么属 性(表单、列表)?
1,主键。2,表单中要存储的字段。3,关系字段。4,为实现某功能而设计的字段。
步骤:设计实体 -->JavaBean-->映射文件-->生成表  (-->写Dao)。
集合要初始化
这里包括三个地 方.Java对象,表,映射文件.
过程可以是从Java对象到表和映射文件.
还可以是从表到Java对象和映射文件.
Hibernate 和OO思想都推荐使用前者的顺序,所以,我们在OA开发的过程中,也是用前者的过程.并利用Hibernate的属性,自动生成表.

3, 分析功能的流程
开发中经常使用的就是用例驱动开发的过程. 把每个用例实现了,系统也开发完了.
    1,整体。2,具体(部分)

二、
1, 准备编码: 创建Action,与Service接口、实现类(空)。
             完成Action中的方法声明与返回 值。(DispatchAction)
这个OA的Action用的不是Action.因为,为了减少struts的配置和 Action类的数量,在这个项目中使用了, DispatchAction.这样可以减少配置量和Action类的数量.不过,这 个类也有缺点,就是只能配置一个ActionForm.所以,在做简单验证的时候,得特别处理.

2, 完成Action 的方法,确定出所用的Service方法,在Service接口中声明他,并写好注释。
    1,获取参数
    2,调用业务方法
    3,返回一个显示
3, 完成Service的方法 实现,实现要求的功能。确定出Dao中的方法,在Dao接口中声明他,并写好注释。
4, 完成Dao的方法的实现。
(为某些Service与Dao写单测试)

三、
1, 写页面(Jsp,把静态页面改为动态页面)。这个能力是必须的.在工 作中就是经常有美工给你提供静态页面,由我们程序员改成动态页面.要注意各个资源文件的路径引用问题.在修改之前不要忘了先备份一份,并好好看一遍代码. 有助于我们提高修改速度和质量.
2, 写配置
要 注意DispatchAction的配置文件和Action的配置文件的区别.不要往了加上parameter属性.并且这样要把验证属性配置 成false.我们手工验证.来解决DispatchAction不能配置多个ActionForm的问题.
3, 测试运行
要及时的写好JUnit的单元测试,有助于我们及时 发现错误.提高速度.特别是在重要的方法和类上要必须写好单元测试.这个在大的软件公司中都是明确规定的.我们要养成良好的习惯.
添加与修改页面 我们使用了同一个页面:
这个我们用到了一个判断.可以让我们提高代码的服用录.
<html:hidden property="method" value="${param.id eq null ? 'add' : 'edit'}"/>
用这句来判断是什么页面.通过对保持和更新的分析.我们发现,他 们一个有id一个没有Id所以我们用这个来判断他们.
commons.jspf
我们将所有的页面引用,写到一个公共的页面中.这样方便管 理引用.集中管理.也方便页面中的使用,减少了重复的代码.
这里里用到的扩展名是jspf.原来没有接触过,不是jsp.为什么.因为,我们这里 区分,明确告诉使用者,这个是jsp代码片段.只能用来引用,而不能直接访问.
使用两层(合并Service与Dao)
在这个项目中没有 使用严格的三层结构.而将合并Service层与Dao层合并了.这个一是减少重复的样板代码.这几个模块的业务逻辑并不是很复杂,所以三层会产生很多样 板代码.二是,这个是第一个项目,减少复杂度.提高核心代码的练习质量.
包的应用
在开发这个项目的时候,我犯了一个错误.当务我很长时 间.不过也我深刻的记住了.这都是经验的积累.就是在包的引用是没有将包拷贝到lib目录下,而是引进去的.这样一回地方就不能使用了.

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐