`
opal
  • 浏览: 1829 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

让我们回归本源吧!

 
阅读更多
看了很多的贴子,都在纠结于用什么框架,什么设计模式,根据本人多年的工作经验,发现最简单、最直接、最本源的做法反而效果是最好的(开发效率、软件质量、可读性、可维护性等)

用一段非常简单的代码(user_list.html)来说明。
<!-- 根据地区和年龄来查看人员 每页显示20条 -->
<@select conn="jdbc/demo" var="data" values=["上海","18","30"] pagesize="20">
select code,name,address,sex,cardid,birthday
  from t_users
 where area=?
   and age between ? and ?
</@select>

<!-- 输出人员列表 -->
<table width="100%" cellpading="2" cellspaceing="2" border=1 class="listdata">
  <th>
    <td>编号</td>
    <td>姓名</td>
    <td>性别</td>
    <td>身分证号码</td>
    <td>出生日期</td>
    <td>家庭地址</td>
  </th>
<#list data as d>
  <tr>
    <td>${d.CODE!}</td>
    <td>${d.NAME!}</td>
    <td>${d.SEX!}</td>
    <td>${d.CARDID!}</td>
    <td>${d.BIRTHDAY!?string("yyyy-MM-dd")}</td>
    <td>${d.ADDRESS!}</td>
  </tr>
</#list>
</table>

<!-- 分页按钮 -->
<@paging style="google" from="data" />


你可以发表意见,但不要人身攻击。
分享到:
评论
30 楼 redvalley 2010-11-14  
opal 写道
看了很多的贴子,都在纠结于用什么框架,什么设计模式,根据本人多年的工作经验,发现最简单、最直接、最本源的做法反而效果是最好的(开发效率、软件质量、可读性、可维护性等)

用一段非常简单的代码(user_list.html)来说明。
<!-- 根据地区和年龄来查看人员 每页显示20条 -->
<@select conn="jdbc/demo" var="data" values=["上海","18","30"] pagesize="20">
select code,name,address,sex,cardid,birthday
  from t_users
 where area=?
   and age between ? and ?
</@select>

<!-- 输出人员列表 -->
<table width="100%" cellpading="2" cellspaceing="2" border=1 class="listdata">
  <th>
    <td>编号</td>
    <td>姓名</td>
    <td>性别</td>
    <td>身分证号码</td>
    <td>出生日期</td>
    <td>家庭地址</td>
  </th>
<#list data as d>
  <tr>
    <td>${d.CODE!}</td>
    <td>${d.NAME!}</td>
    <td>${d.SEX!}</td>
    <td>${d.CARDID!}</td>
    <td>${d.BIRTHDAY!?string("yyyy-MM-dd")}</td>
    <td>${d.ADDRESS!}</td>
  </tr>
</#list>
</table>

<!-- 分页按钮 -->
<@paging style="google" from="data" />


你可以发表意见,但不要人身攻击。


我也喜欢用直接的方式解决问题,对于小系统,很实用。

假如t_users使用的地方非常多,当表结构发发生变化,增加、删除、字段名更改、类型更改(包括最大长度)都有可能,那么所涉及修改的地方会很多,又不可能像java代码那样方便重构。此时,应变动实现方式,使用一些能解决此问题的框架,或者自己重新设计(如使用元数据、模板)。

29 楼 redvalley 2010-11-14  
若是小项目,怎么方便、快捷、有效,就怎么来,如果使用框架有好处则用,否则没必要套用。
对于大项目或者产品,则应考虑以下因素:
1)满足客户的现有需求及一定的变化:要考虑“开闭原则”,设计优良的框架,以更小的代价适应变化。
2)方便团队开发:方便分工合作,尽可能使用团队熟悉的技术,减少人员流动的衔接成本。
3)不论技术还是业务分析,参考主流,减少风险。创新可能带来更大的收益,也意味着付出更多的努力与承担更大的风险。
28 楼 srdrm 2010-11-13  
freemarker 扩展,鉴定完毕
27 楼 javamonkey 2010-11-13  
回归本源是种思路,但不是这么回归的,哈哈
26 楼 zozoh 2010-11-13  
hypercube1024 写道
用jstl也可以作成这样的,功能不复杂的时候很好用啊

是啊,似乎LZ说的都能做到 ...
25 楼 opal 2010-11-13  
KimHo 写道
貌似维护不好维护吧,业务逻辑和界面展示都混在一起?

嗯,你可以这样:
<!-- 业务逻辑处理 -->
<#include "buss_logic.html" />

<!-- 数据查询 -->
<#include "data_query.html" />

<!-- 数据显示 -->
<#include "data_show.html" >
24 楼 KimHo 2010-11-13  
貌似维护不好维护吧,业务逻辑和界面展示都混在一起?
23 楼 hypercube1024 2010-11-13  
用jstl也可以作成这样的,功能不复杂的时候很好用啊
22 楼 key232323 2010-11-13  
k_scott 写道
Java的模板引擎,例如:Velocity、Freemarker、都是Apache下的开源技术。用过Velocity


freemarker貌似不是Apache下的。
21 楼 DOCDOC 2010-11-13  
做Demo的时候,这种情形很常见
20 楼 opal 2010-11-13  
lookdd1 写道
LZ 你敢把你这套玩意写的再详细些吗?


不写了,马上要被 隐藏 了。

可以继续潜水了。
19 楼 lookdd1 2010-11-13  
LZ 你敢把你这套玩意写的再详细些吗?
18 楼 opal 2010-11-13  
holly2k 写道
简单易懂,的确不错,但业务逻辑复杂就不行啦


对于这个情况,设计之初就考虑到了,包括事务控制、O-R Mapping(超轻量级)、消息通知(mq,xmpp)等。
复杂业务一般有两种处方式:
1、如同jsp、php、perl、jython、ruby的脚方本式去觖决,好处么可以做到随需应变,坏处么就是脚本语言的坏处了。
2、对复杂业务进行封装,作为扩展包放在应用服务器上,如包名为app.buss.Calc,方法名为calc,则调用方法如下:
<!-- 调用封装好的复杂业务处理方法 -->
${java["app.buss.Calc"].calc()}


17 楼 holly2k 2010-11-13  
简单易懂,的确不错,但业务逻辑复杂就不行啦
16 楼 dbwang 2010-11-13  
快速开发的小项目严格赞成。楼主使用的是啥框架。或者是怎么实现的,关注这个想法中。我也想有这个需求
15 楼 k_scott 2010-11-13  
Java的模板引擎,例如:Velocity、Freemarker、都是Apache下的开源技术。用过Velocity
14 楼 rovanz 2010-11-13  
opal 写道

   1. <!-- 根据地区和年龄来查看人员 每页显示20条 --> 
   2. <@select conn="jdbc/demo" var="data" values=["上海","18","30"] pagesize="20"> 
   3. select code,name,address,sex,cardid,birthday 
   4.   from t_users 
   5.  where area=? 
   6.    and age between ? and ? 
   7. </@select> 
   8.  
   9. <!-- 输出人员列表 --> 
  10. <table width="100%" cellpading="2" cellspaceing="2" border=1 class="listdata"> 
  11.   <th> 
  12.     <td>编号</td> 
  13.     <td>姓名</td> 
  14.     <td>性别</td> 
  15.     <td>身分证号码</td> 
  16.     <td>出生日期</td> 
  17.     <td>家庭地址</td> 
  18.   </th> 
  19. <#list data as d> 
  20.   <tr> 
  21.     <td>${d.CODE!}</td> 
  22.     <td>${d.NAME!}</td> 
  23.     <td>${d.SEX!}</td> 
  24.     <td>${d.CARDID!}</td> 
  25.     <td>${d.BIRTHDAY!?string("yyyy-MM-dd")}</td> 
  26.     <td>${d.ADDRESS!}</td> 
  27.   </tr> 
  28. </#list> 
  29. </table> 
  30.  
  31. <!-- 分页按钮 --> 
  32. <@paging style="google" from="data" /> 


这我怎么看着是freemarker,它不是框架吗?
13 楼 xiangkun 2010-11-13  
楼主有freemarker帮助文档,或者学习资料没.. 有的话分享下..!!!!
12 楼 JE帐号 2010-11-12  
这也是种框架吧... ...
要知道引入框架的目的就是为了快速开发啊.

11 楼 applepaihs 2010-11-12  
越看越像php

相关推荐

Global site tag (gtag.js) - Google Analytics