博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一次开发逻辑规范的总结
阅读量:4330 次
发布时间:2019-06-06

本文共 3583 字,大约阅读时间需要 11 分钟。

Java话题


在Java中构建消息内容

String template = "尊敬的%s民警,您在%s案件中所呈请的%s一书,已经被%s审批。请知悉。";String message = String.format(template, "三元里", "天河商场盗窃案", "《呈请立案报告书》", "三元里所长");

 

拒绝硬编码

字典项的特殊处理

处理方法:创建枚举类,列出需要特殊处理的字典项。
比如对于:只有已立案、已破案、已结案才允许录入破结案信息,编写枚举类:
package cn.sinobest.jzpt.zdycj.dict;public enum AJZT {    /***     * 已立案.
*/ YLA("02", "已立案"), /** * 已破案.
*/ YPA("03", "已破案"), /** * 已结案.
*/ YJA("04", "已结案"); /** * 案件状态的kind.
*/ public static final String KIND = "56"; private String code; private String detail; private AJZT(String code, String detail) { this.code = code; this.detail = detail; } public String getCode() { return code; } public String getDetail() { return detail; } }
说明:
  1. 将字典的kind作为枚举类的静态常量是一个好习惯。
  2. 只需要列出需要特殊处理的字典项,实际上案件状态的字典项不止上面的三个。
问题:对于此类枚举应该制定一份位置的相关规范,以防重复定义。
 
实际业务代码中的使用:
1 String ajstate = ajjqService.getAjstateByAjId(aj_sysid); 2 boolean validState = AJZT.YLA.getCode().equals(ajstate) 3         || AJZT.YPA.getCode().equals(ajstate) 4         || AJZT.YJA.getCode().equals(ajstate); 5 if (!validState) { 6     String ajstateCN = ajstate == null ? "" : dictService.getDetail(AJZT.KIND, ajstate); 7      8     String message = "只有已立案、已破案、已结案才允许录入破结案信息,当前的案件状态是:${ajstateCN}!"; 9     message = message.replaceFirst("\\$\\{ajstateCN\\}", ajstateCN);10     11     tab.setInvalidMessage( message );12     return tab;13 }

说明:

  1. 关键的代码(line 2-4)使用了枚举,这个地方不要用硬编码。
  2. 第line 8-9行,构建消息的方式也是基于模板的思想,但是已经被更好的方式所取代(参考前文)。

调试输出

使用日志控件(“log4j”+“commons-logging”),而不要用System.out.println。
参考:

JS话题


在JS中构建HTML

var template = "
\
{name}\
{email}\
";var instance = template.replace(/\{name\}/, "Adam") .replace(/\{email\}/, "adam@qq.com");

说明:这里使用了正则表达式。

数据缓存

考虑一下我们要做一个百度图片类似的功能。搜索出来的结果是很多的缩略图,点击其中一个图片,打开一个新的页面对点击的图片进行放大。在点击的时候,需要把图片的id信息作为请求参数,发给服务器,关键就是我们如何从点击的图片获取这个图片的id。
  1. 我们可以给img元素添加额外的属性
    这些属性可能不是html的标准属性:比如我们可以增加systemid属性来缓存图片数据的id;或者有违w3c标准对其的定义:比如使用class来记录systemid。
  2. 在img的相对位置,添加一个隐藏的dom元素
    比如,我们在一个img元素之后,紧跟一个隐藏的input;class="systemid",value值为图片的id。
    这是我之前一直使用的方式:如果需要缓存多个数据项,可以定义一个隐藏的div,在div内定义多个input来缓存数据。
  3. 使用jquery的data方法
    $("#img01").data("systemid", "PCS4401000000002016022917470001"); // 缓存systemid数据到指定的dom$("#img01").data("systemid") // 从指定的dom获取systemid缓存数据$("#img01").removeData("systemid"); // 移除缓存数据

    如果缓存的数据项,不需要作为表单元素提交到服务端,那么我推荐这个方案。

JSP话题


去JSP脚本

使用EL代替表达式

引入外部资源

默认的写法:

推荐的写法:

传递字符串类型

后台Controller封装数据:
model.addAttribute("kzyw_sysid",sYSTEMID);

前台JSP提取数据:

说明:

  1. 字符串类型,需要加引号。
  2. 如果直接显示在页面,而不是存储在js变量,不用加引号。

传递复杂结构类型

复杂结构类型,在js中以json格式存储。
后台Controller封装数据:
@RequestMapping("/showStructure")    public String showStructure(Model model){        List
> list= v_ZDYCJ_CONF_YWBService.getStructure(); org.json.JSONArray treeData= new org.json.JSONArray(list); model.addAttribute("treeData", treeData); return STRUCTURE_VIEW; }

说明:以上是集合封装,如果是bean封装,或者集合、bean混合封装,应该也是可以的(没有测试,或者没有记录,不打包票)。

前台JSP提取数据:

说明:提取出来的treeData是JSON格式,不需要加引号。

URL链接参数,控制内容显示

标题

说明:如果有hideTitle请求参数,就不显示;否则显示。

使用标签库代替脚本

JSTL是JSP的标准标签库,目前还没来得及研究。

PLSQ话题


程序注释

注释的demo:

create or replace procedure asj_ws_generateWordMarkForHYZ/*   名字解析:案事件-文书相关-为换押证生成文书字号。   这个过程是对ASJ_GENHYZWORD的一次重构。  */(in_writid      in varchar2, -- 文书实例编号 in_increment   in integer, -- 增量,在一书多人时需要同时为多个文书生成序列号 out_wordofwrit out varchar2, -- 文书字 out_markofwrit out integer -- 文书号 ) is

说明:

  1. 在程序名和程序参数之间添加对程序的功能性说明。
  2. 在每一项参数后,对参数进行注释。
  3. 使用is,不要使用as
对这个问题的记录,可以参考 。

 

转载于:https://www.cnblogs.com/ywjy/p/5230940.html

你可能感兴趣的文章
xml解析
查看>>
centos安装vim
查看>>
linux工作调度(计划任务)
查看>>
hdu--1698 Just a Hook(线段树+区间更新+懒惰标记)
查看>>
Python学习笔记-EXCEL操作
查看>>
cocos2d-x游戏开发系列教程-中国象棋06-游戏规则
查看>>
拉马努金,天才之超越
查看>>
[LeetCode] First Bad Version
查看>>
java面试题04
查看>>
《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #11cpuset
查看>>
NVMe on RHEL7
查看>>
JavaScript改动CSS伪元素:after和:before的样式
查看>>
Windows App开发之开发准备
查看>>
css3的选择器
查看>>
Broadcast Receiver注意事项
查看>>
ActionBar点击弹出下拉框操作
查看>>
swift新手入门视频教程-08-枚举
查看>>
HDU 1164 Eddy's research I【素数筛选法】
查看>>
ORACLE单字符函数的函数
查看>>
人活系列Streetlights (秩)
查看>>