项目代码编写技巧
关于JavaScript
<!--[if !supportLists]-->1、 <!--[endif]-->使用JAVASCRIPT验证表单,必须同时使用JAVASCRIPT提交表单,而不是使用type=submit的按钮提交表单。这样用户在IE设置中禁止脚本之后,数据验证被屏蔽的同时,表单也无法提交。
<!--[if !supportLists]-->2、 <!--[endif]-->JavaScript变量和函数的命名要求同JAVA代码。局部变量必须使用VAR定义,避免使用全局变量。如:Var i,j;
<!--[if !supportLists]-->3、
<!--[endif]-->在编辑页面的保存、审核、反审核等javascript函数的开始处,一般需要下面代码,以防止页面按钮重复提交问题。
<!--[if gte vml 1]><v:shapetype id="_x0000_t202"
coordsize="21600,21600" o:spt="202" path="m,l,21600r21600,l21600,xe">
<v:stroke joinstyle="miter" />
<v:path gradientshapeok="t" o:connecttype="rect" />
</v:shapetype><v:shape id="_x0000_s1027" type="#_x0000_t202" style='position:absolute;
left:0;text-align:left;margin-left:0;margin-top:7.8pt;width:468pt;height:85.8pt;
z-index:2' /><![endif]--><!--[if !vml]-->
<!--[endif]--><!--[if !mso]-->
<!--[endif]-->
document.edit.store.disabled
= true;
document.edit.Submit.disabled
= true;
或者
document.edit.Submit.disabled
= false;
document.edit.store.disabled
= false;
<!--[if !mso]--> |
<!--[endif]--><!--[if !mso & !vml]--> <!--[endif]--><!--[if !vml]--> |
<!--[endif]-->
关于HTML
<!--[if !supportLists]-->1、 <!--[endif]-->要特别注意大小写,虽然在windows下没有区分,但是unix是区分的,并且该问题在windows下可能不能被检出。
<!--[if !supportLists]-->2、 <!--[endif]-->所有链接不允许使用根目录符号“/”,只能以本文件所在目录为开始路径寻找需要的文件,即使用“./”或者“../”两种方式来寻找文件。
<!--[if !supportLists]-->3、 <!--[endif]-->HTML变量的命名按照JAVA代码规范,并且表单变量的名称必须与对应的ValueObject成员变量的名称一致。
<!--[if !supportLists]-->4、 <!--[endif]-->使用缩进的格式,具体格式要求同JAVA代码。(避免使用tab字符,缩进长度为4个空格)
<!--[if !supportLists]-->5、 <!--[endif]-->使用统一的css文件,规范编排格式;所以表格不允许指定高度、字体无需指定size、font等。
<!--[if !supportLists]-->6、 <!--[endif]-->尽量少用Struts的<html>标签库,而是直接写html代码,便于使用可视化编辑工具。
<!--[if !supportLists]-->7、 <!--[endif]-->若非特殊情况,不允许在JSP页面直接写JAVA代码。所以如果使用scriptlet,必须写清楚使用的原因以及影响。
<!--[if !supportLists]-->8、
<!--[endif]-->在HTML的HEAD部分,一般都会有类似的代码,以便于IE确定文件的编码方式和减少IE缓存而导致的数据重复提交、数据不一致等问题,同时指定页面显示风格、引用常用javascript函数包。
<!--[if gte vml 1]><v:shape id="_x0000_s1026" type="#_x0000_t202"
style='position:absolute;left:0;text-align:left;margin-left:0;margin-top:7.8pt;
width:468pt;height:124.55pt;z-index:1' /><![endif]--><!--[if !vml]-->
<!--[endif]--><!--[if !mso]-->
<!--[endif]-->
<meta
http-equiv="Content-Type" content="text/html;
charset=utf-8">
<meta
http-equiv="Expires" content="0">
<meta
http-equiv="Pragma" content="no-cache">
<meta
http-equiv="Cache-Control" content="no-cache">
<link
rel="stylesheet" href="../CSS/style.css"
type="text/css">
<script
language="Javascript"
src="../Script/util.js"></script>
<script
language="Javascript" src="../Script/utilfloat.js"></script>
<!--[if !mso]--> |
<!--[endif]--><!--[if !mso & !vml]--> <!--[endif]--><!--[if !vml]--> |
<!--[endif]-->
<!--[if !supportLists]-->9、 <!--[endif]-->如果使用DreamWeaver编辑页面,一定要先设置编码为UTF-8。
关于Struts
<!--[if !supportLists]-->1、 <!--[endif]-->统一使用关键字action的原因是可以方便的实现用户权限判定。
页面session超时验证和系统登陆用户验证
系统登陆用户信息统一存放在名称为SYSUser_Login的Session中;每个Action类的perform函数开始部分需要验证session是否超时、用户是否已登陆,单元测试代码如下:
//begin get
the session and the test login user
HttpSession
session = httpServletRequest.getSession();
SYSSysuser
usrTest = SYSSysuserProxy.findSYSSysuser(new Long(1));
session.setAttribute("SYS_SYSUser_Login",usrTest);
//end get
the session and the test login user
<!--[if !supportLists]-->n
<!--[endif]-->提交集成时上面代码需要修改为:
//begin get
the session and the login user
HttpSession
session = httpServletRequest.getSession(false);
if (session == null ||
session.getAttribute("SYS_SYSUser_Login") == null)
throw new
GeneralException(ExceptionType.SESSION_TIME_OUT_EXCEPTION, "In
Action.perform()");
//begin get
the session and the login user
关于JAVA
<!--[if !supportLists]-->1、 <!--[endif]-->尽量保持简洁明了,长度尽量限制在25个字符以下。
<!--[if !supportLists]-->2、 <!--[endif]-->不要使用下划线、美元符号开头的标识符,尽管这在语法上是允许的。
<!--[if !supportLists]-->3、 <!--[endif]-->使用完整的单词,避免使用只取首字母的简写词和缩写词(除非缩写词比完整词汇的使用更广泛,比如URL,HTML)。
<!--[if !supportLists]-->4、
<!--[endif]-->采用客户该领域的词汇(例如:如果用户称他们的客户为Customer而不是Client,就要求使用Customer)。
<!--[if !supportLists]-->5、
<!--[endif]-->避免使用“神秘数”,而是使用常量来代替。
<!--[if !supportLists]-->6、
<!--[endif]-->常量使用大写字母和下划线“_”组成的字符串。
<!--[if !supportLists]-->7、
<!--[endif]-->源代码一行不要超过80个字符,超过80个字符就使用折行(Warpping Line)
<!--[if !supportLists]-->8、
<!--[endif]-->避免在源程序中使用Tab
<!--[if !supportLists]-->9、
<!--[endif]-->pakage放在import之前,import必须输入完整的类名。优先列出本项目的包,然后才是标准库。
<!--[if !supportLists]-->10、
<!--[endif]-->空白 Blank
<!--[if !supportLists]-->10.1、
<!--[endif]-->在while、for、if、switch等关键字与判断条件之间加上空格。
<!--[if gte vml 1]><v:shape id="_x0000_s1028"
type="#_x0000_t202" style='position:absolute;left:0;text-align:left;
margin-left:45pt;margin-top:4.15pt;width:369pt;height:54.6pt;z-index:3'>
<v:textbox style='mso-next-textbox:#_x0000_s1028' />
</v:shape><![endif]--><!--[if !vml]-->
|
|
<!--[endif]--><!--[if !mso]-->
<!--[endif]-->
while
(true){
statements;
}
<!--[if !mso]--> |
<!--[endif]--><!--[if !mso & !vml]--> <!--[endif]--><!--[if !vml]--> |
<!--[endif]-->
10.2、在函数的多个参数之间加上空格。
<!--[if gte vml 1]><v:shape id="_x0000_s1029"
type="#_x0000_t202" style='position:absolute;left:0;text-align:left;
margin-left:45pt;margin-top:4.15pt;width:369pt;height:23.4pt;z-index:4'>
<v:textbox style='mso-next-textbox:#_x0000_s1029' />
</v:shape><![endif]--><!--[if !vml]-->
|
|
<!--[endif]--><!--[if !mso]-->
<!--[endif]-->
myMethod(arg1,
arg2, arg3);
<!--[if !mso]--> |
<!--[endif]--><!--[if !mso & !vml]--> <!--[endif]--><!--[if !vml]--> |
<!--[endif]-->
10.3、一元运算符与变量之间不能加空格。如:argv++;
<!--[if !supportLists]-->11、
<!--[endif]-->变量声明之后,应该马上对变量进行初始化。
<!--[if !supportLists]-->12、
<!--[endif]-->变量应该在块(block)的开始部分集中声明,而不是用到的时候才声明。(临时变 量、循环变量、异常变量除外)
<!--[if !supportLists]-->13、
<!--[endif]-->强烈建议不要用public变量!
<!--[if !supportLists]-->14、
<!--[endif]-->先写注释,后写代码。
<!--[if !supportLists]-->15、
<!--[endif]-->注释信息不仅要包括代码的功能,还应给出原因
<!--[if !supportLists]-->16、
<!--[endif]-->使用Javadoc标记注释,以便于生成api文档。
<!--[if !supportLists]-->17、
<!--[endif]-->保持注释的简洁清晰。
分享到:
相关推荐
而且单片机开发应用需要软硬件结合,所以不能只满足于编程技巧如何完美,平时也要注意硬件知识的积累,多上上电子论坛网站,买一些相关杂志。可能的话,可以到ic37去买一些小零件,自己搭一个小系统让它工作起来。 ...
有鉴于此,不同的样式系统引擎可能会拥有完全不同的表现和行为,特别是 Gecko 与 WebKit, 这两个引擎都是开源项目,实现了类似的算法,具有极其相近的优缺点。因此下面介绍的小技巧对于真实世界的 Web 文档将会十分...
我想介绍有可能出现在软件开发人员面前,与代码相关的大部分概念,包括编程构造、数据类型、数据结构、控制流程、项目组织、代码规范、文档和构架。 本书中提供的许多源代码示例都来自NetBSD的源代码。NetBSD主要的...
Java圆形电子时钟源代码 1个目标文件 内容索引:JAVA源码,系统相关,电子钟 用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven Bean EJB实例源代码 2个目标文件 摘要:...
《编写可维护的JavaScript》向开发人员阐述了如何在团队开发中编写具备高可维护性的JavaScript代码,书中详细说明了作为团队一分子,应该怎么写JavaScript。本书内容涵盖了编码风格、编程技巧、自动化、测试等几方面...
全书内容分为精练而容易把握的几部分,收录的技巧从编辑代码,到编译和调试,以及VS.NET编译器深入了解等多个方面,对所有开发人员而言都是本必读的书籍,无论他们是否熟练,或者使用哪种开发语言。本书涵盖了Visual...
2.2.2 代码编写过程中Eclipse的帮助 26 案例2-2 猜数游戏程序的实现 29 2.2.3 Java程序调试技巧 34 2.2.4 Eclipse中提高工作效率的其他措施 40 案例2-3 人员信息察看程序的实现 40 案例2-4 一对一聊天...
理解MVC架构:iOS应用遵循Model-View-Controller(MVC)设计模式,理解并合理划分各部分职责有助于编写清晰、易于维护的代码。 Auto Layout与Size Classes:灵活布局是iOS开发中重要的一环,掌握Auto Layout可以...
养成阅读高品质代码的习惯,可以提高编写代码的能力。 阅读代码是程序员的基本技能,同时也是软件开发、维护、演进、审查和重用过程中不可或缺的组成部分。本书首次将阅读代码作为一项独立课题,系统性地加以论述。...
目录 一、如何使用 SqlDataAdapter 来检索多个行 二、使用 SqlAdapter 生成 DataSet 或 DataTable...十五、如何编写 ADO.NET 手动事务处理代码 十六、如何使用 Transact-SQL 执行事务处理 十七、如何编写事务性 .NET 类
《编写可维护的JavaScript》向开发人员阐述了如何在团队开发中编写具备高可维护性的JavaScript代码,书中详细说明了作为团队一分子,应该怎么写JavaScript。本书内容涵盖了编码风格、编程技巧、自动化、测试等几方面...
另外《Oracle优化日记:一个金牌DBA的故事》第一次详尽地披露了Oracle数据库内部存储结构,并公布了部分代码,对于有兴趣研究数据库内部存储结构或者编写dul工具的读者有一定的参考价值。《Oracle优化日记:一个金牌...
通过本章的学习,读者可以掌握分析网页的技巧、Python 编写网络程序的方法、Excel 的操作,以及正则表达式的使用。这些都是爬虫项目中必备的知识和技能。通过编写爬虫,将指定日期时段内的全部上市公司股票数据爬取...
- 提供编辑和优化宏的技巧,以提高代码质量和性能 第四部分:示例项目 - 通过实际示例项目,演示如何使用VB创建SolidWorks插件或宏 - 涵盖图形绘制、参数化设计和自动化等任务 第五部分:调试与错误处理 - 介绍如何...
同时,还提供了一些代码编写的技巧和注意事项,帮助用户更好地理解和学习项目的代码。 总之,这个项目是一个非常完整的在线云音乐系统的设计与实现,包含了从前端到后端的完整代码,以及详细的部署说明和源码介绍。...
养成阅读高品质代码的习惯,可以提高编写代码的能力。 阅读代码是程序员的基本技能,同时也是软件开发、维护、演进、审查和重用过程中不可或缺的组成部分。本书首次将阅读代码作为一项独立课题,系统性地加以论 述...
养成阅读高品质代码的习惯,可以提高编写代码的能力。 阅读代码是程序员的基本技能,同时也是软件开发、维护、演进、审查和重用过程中不可或缺的组成部分。本书首次将阅读代码作为一项独立课题,系统性地加以论 述...
我必须学习 VBScript 作为我最近一直在工作的一个新项目的一部分,并决定采取一次有趣的方法,因此想出了一个简单的基于点击的游戏,该游戏仅在 Windows上运行,以及另一个函数库可以插入 QTP/UFT 脚本(或不插入)...