2011.8.16---2011.9.8 三大系统开发第一阶段总结

    还有3天就中秋了,很兴奋,3天的假期比周末好像长很多而已。其实只是想借这个假期放松下而已。而公司项目开发第一阶段也要告一段落了,节后客户看到系统,估计又得大忙一段时间了。所以基本在此之前一直想捋捋项目开发的思路、项目成长过程、思考开发中遇到的问题以及发现自己要学习加强的地方,为下次新项目打好良好的基础。

   本来想以树形结构的形式组织本文,但是不知道咋弄,还是一步一步来吧,主要分为两个部分,第一部分:项目开发的流程描述:框架环境的搭建、导航栏的创建、权限,用户,部门等基本功能的时限、然后就是自己开发的系统功能、测试系统功能。第二部分:主要是记录项目开发中遇到的各种各样的已解决和未解决的问题。

 第一部分:

 A、框架环境的搭建:

    我理解的框架环境的搭建,是先新建一个web项目,然后导入相应的struts,spring,hibernate包,这个可以copy之前已经上线成功的项目中的lib。然后是web.xml,struts.xml,spring,hibernate中的配置文件的建立。之后导入一些之前项目积累的公共类包。

    之前自己看着一些书尝试着搭建ssh环境,但总感觉不是那么回事,当时自己也创建了一些表结构和生成model类,离实际应用还差的很远。这次搭建环境依然想尝试着了解工程环境的搭建过程。让我现在模糊的是hibernate和model类的生成,以及哪些公共类需要引入。至少在这一块自己要花费时间去学习和了解 的 (1)。

B、导航栏的创建:

    环境搭建好之后就可以进行项目的开发了,而导航栏的创建会让你对项目的骨架有了更清晰的了解。基本的系统管理下的人员管理、部分管理、机构管理、角色管理。其中的角色管理不是很明白(2),而导航栏是参照之前系统自动创建的,而在这部分我想了解的是如果是自己写代码该如何整?(3)

C、自主开发的系统功能:

    导航栏创建好,一个好的开发流程是先配好相应的资源,然后一个一个小系统进行开发,而这又有小系统骨架成型的感觉。避免了开发初期的无序和混乱。而且资源链接是一个很好的action,可以很方便的让你把握好整体方向,依据流程进行code。

    而这一部分是我感受最深的,我开发的这部分功能逻辑不是很复杂,让我有时间对系统功能的开发有了更深的思考。基于mvc的系统功能都是请求触发式的,ssh怎么跳转,这个 很简单,只要配置文件配好基本没有问题,刚开始先写配置问价,jsp页面可以先不写代码。等你请求成功 弹出 "this is my jsp”,然后再在jsp页面code要实现的界面。一般来说首先开发的是list页面,而list页面往往是往数据库中找一个表的所有记录存到list中,然后前台jsp页面去iterator这个list,这个先不谈,前台jsp页面的书写问题。一般来说你会copy现有系统或之前系统的list页面,稍作修改。这没有问题,你可以这么做,但是你要明白为啥要那么写。如list中会有struts2标签

<td>  <s:property value="email"/></td>
      <td>  <s:date name="startDate" format="yyyy-MM-dd" /></td>

    这两项就很有意思,<s:property>就是寻找list中名为email 的alue值,为啥前不加对象呢,比如consult.email.因为这个list就是存的就是consult表的记录。list还有个属性id,在嵌套list很有用。在这你要发散下思维。 比如add页面。

<tr class="oddline">
            <td height="20">联系人</td>            
            <td><s:textfield id="userName" value="<%=userName %>" οnclick="selectUserName()" readonly="true" cssClass="intxt"/><span style="color:red">*&nbsp;</span>
               <s:hidden id="userId" name="consult.sysuser.id"></s:hidden>
               <!--<s:hidden id="userName" name="consult.sysuser.userName"></s:hidden>-->
            </td>
          </tr>

其中你看name 属性,为啥要name="consult.sysuser.id"这么写,我的理解是consult是个对象,它包含了sysuser对象。所以你要想,consult对象可以这么写,那要是name=“consultList.userName”行不行,完全可以,只是在Action中有consultList的setter和getter方法,而且consultList的 VO或者对象 包含userName属性,因为VO可以你自由构造,所以很灵活。这样只要前台jsp能显示的值,都可以在后台得到,同样在前台jsp页面可以随你构造你需要的数据,这就是js编程的魅力。前台jsp写好代码后跳转到action,这你要明白跳转值是如何传递的。这个很有意思,setter和getter方法的妙用,以及request.getParameter("")和$('属性")的使用。Action中测试可以直接return  success,然后再下一步。这一步要是把传值搞明白了,web开发基本就OK 了,然后就是操作数据库了。操作数据库,主要是增添删查,而具体的形式是sql和hql来实现。sql的使用,我觉得是是最实用的,但是比较笨,不像hql那么简练。sql一般是操作vo,生成一个list,这个很实用在,你可以用构造vo得到你想要的list,如果是单表的list,可以直接:session.createSQLQuery(sql).addEntity("c", Consult.class).list();其中c是表的别名,而Consult是表的model类名。sql和hql的不同之处是hql适合单表属性的查询,而sql可以表和表之间进行关联。sql的增添删查,只要在plsql中书写sql语句即可,但是要明白,属性和plsql中表属性一致,而hql的增添删查则对应着model类,语句就没那么复杂了。只需要继承basehibernate即可,basehibernate中实现了hql的查询。其中增添和修改可以通过support().saveOrUpdate(Object);注意函数的参数。很多时候操作数据库返回的是list,(添和修改往往是无返回值的)对list的操作要熟练,另外查询如果不自己书写criteria类的话,就直接写sql吧,很实用。查询的操作很多直接support().find(hql),而返回的依然是list。如果想返回对象呢,那就要对list进行操作了,对list进行遍历,list.get(i)就可以得到list中的对象了。一般来说如果要在设置对象的属性值,在Action'中调用setter方法即可。其中个人感觉可以对list 、vo、object灵活运动就可,很有意思。

D、系统测试

    很多时候,你会发现,自己觉得做的系统挺好的,没毛病,但是老大一看,这不行,那还有点问题,而产生这个原因很多时候我们只是站在coder的角度上去看待我们要实现的功能,而未能站在客户或者业务的角度上去考虑。  很多时候要有不怕麻烦,精益求精的精神,时刻换位思考,站在用户的角度上看,尤其是一些细节,往往是我们最容易忽略的,而细节决定成败,决定客户使用系统的舒适度,客户不像我们用电脑这么多年,要把他们想象成我们父一辈,可能能打字都不熟练,所以一定要不厌其烦。

以上就是第一部分的内容,当时开发的时候还是有很多想法的,可是开发结束很多都忘了,可惜了,能想到的也就是这么点,希望对以后有帮助.第二部分待续 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值