标签:项目管理
远程调用项目规范总结大致如下,架构不一定与这个架构一样,但基本上是差不多的,有的项目使用maven管理只需要建立两个项目。
远程调用分布式的核心思想:面向接口编程,代码切割 ,负载均衡,服务器缓存。
以下的规范都是为了方便实现其核心精神。
数据实体遵循ORM映射机制。
实体属性命名格式mouldName;不带下划线,可以使用工具generator eclipse插件自动化生成实体类和映射Mapper.xml文件
远程调用分层格式
客户端工程
前端:js , image , CSS ,Html 分开,采用连接形式。插件独立。
Action层: 命名以--Action后缀结尾。
其他工具层:
接口工程:
远程调用接口:以--Remote后缀结尾。
数据库实体层:
其他数据实体:添加一些数据库不包含的字段,可以继承数据库实体。
其他工具层:
返回数据层:封装了返回数据,包括返回码和其它信息。
远程服务工程:
远程接口实现层:实现接口工程中的接口。并调用业务逻辑层。以--RemoteImpl后缀 结尾。
业务逻辑层:分为接口层,和实现层,以--Service和--ServiceImpl后缀结尾。处理 业务逻辑和事务。
数据库层:分为接口层,和实现层,以--Dao后缀结尾
其他工具层:
数据库映射文件命名空间开启:能防止命名冲突
SqlMapConfig.xml中setting下的useStatementNamespaces="true"
各映射文件中 <sqlMap namespace="user" >
调用this.client_r.queryForList("getUserById");
this关键字的使用,能提高代码的可读性。
异常的try---catch 和 throw 的差别。
异常在哪里出现的就在哪里try---catch捕获,能更好的进行异常精确定位。也为了更好的实现 后期日志处理。
throw会将异常往上抛,抛给上一层处理。
命名实体层一般用 英文中的名词。服务层、控制转发层和数据层 一般使用带动作的词,用英 文单词拼接,不能使用简写,命名要达到能表达功能,可以做到零注释编写。
服务层编写一般一张表对应一个实体对应一个数据库访问层,对应一个业务逻辑层。业务逻辑 需要操作多表的,
需要看最终返回的结果是一那个实体为主,就归类在哪里,这里是为了实现代码的相关性。希 望去看一下《重构-改善既有代码》这本书,把上面那个案例操作一下,很有帮助的。
一个类中代码块顺序格式:
private static final
private HomPushRemote
private int userId;
get,set方法
功能方法
调试打印,避免sysout. 采用日志打印,可以区别多种类型的信息打印,也为了方便后期日志处 理。
private static Logger log = Logger.getLogger(HomProductAction.class);
log.debug("");
远程服务层的接口命名不能带有客户端层的业务含义。做到接口的统一,为了实现接口的简 单,和共用性。
代码编写从业务需求开始,到Action层,思考需要哪些接口,去接口工程中查看是否已经有 了该功能的接口,没有再创建。
一层一层的自顶向下驱动开发,减少代码的冗余。一般增删改查这个四个功能,插件可以自 动生成的。
action层根据需求来区分建包建类,同一模块的页面放在同一个包中,一层一层的。
ibatis映射文件结构
文件命名空间配置
sqlMap
共用sql语句块
功能语句块
本文出自 “夜鹰翱翔” 博客,请务必保留此出处http://iritchie.blog.51cto.com/7031731/1668952
标签:项目管理
原文地址:http://iritchie.blog.51cto.com/7031731/1668952