阿里 JAVA 开发手册 学习 4 工程规约
应用分层
1.分层如下

1)开放接口层:可以直接封装Service接口暴露成RPC;通过web封装成http接口;网关控制层等。
2)终端显示层:各个端的模板渲染并执行显示层。
3)Web层:主要是度访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理。
4)Service层:对具体的业务逻辑进行处理。
5)Manager层:通用业务处理层
1️⃣ 对三方库的接口,预处理返回结果及转化异常信息;
2️⃣ 对Service层通用能力的下沉,如缓存方案、中间件通用处理;
3️⃣ 与DAO层交互,对DAO的业务通用能力的封装。
6)DAO层:数据库访问层。
7)外部接口或者第三方平台:包括其他部门RPC开放接口,基础平台,其他公司的http接口。
2.Service层要细粒度的对异常信息进行日志打印,Manager层可以throw new ManagerException()的方式向Service层抛出异常而不打印日志。
3.分层领域模型规约:
- DO(Data Object):与数据库表一一对应,通过DAO层向上传递数据对象。
- DTO(Data Transfer Object):数据传输对象,Service和Manager向外传输的对象。
- BO(Business Object):业务对象,可以由Service层输出的封装业务逻辑的对象。
- QUERY:数据查询对象,各层接受上层的查询请求,超过2个参数的查询必须封装,禁止使用Map类来传输
- VO(View Object):显示层对象,通常是Web向模板渲染引擎层传递的对象。
二方库规约
1.二方库版本号(Version)命名方式:主版本号.次版本号.修订号
1)主版本号:当做了不兼容的API修改或者增加了能改变产品方向的新功能。
2)次版本号:当做了向下兼容的功能性新增。
3)修订号:修复bug,没有修改方法签名的功能增强,保持API兼容性。
服务器规约
1.服务器内部重定向必须使用forward;外部重定向地址必须使用URL Broker生成。
安全规约
1.可以被用户访问的功能必须做权限控制,shiro。
2.用户敏感数据禁止直接显示,必须对展示数据脱敏。
3.用户请求传入的任何数据必须做有效性验证。
阿里 JAVA 开发手册 学习 4 工程规约的更多相关文章
- 阿里Java开发手册学习 3 MYSQL规约
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- JUC学习笔记--从阿里Java开发手册学习线程池的正确创建方法
前言 最近看阿里的 Java开发手册,上面有线程池的一个建议: [强制]线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式, 这样的处理方式让写的同学 ...
- 从阿里Java开发手册学习线程池的正确创建方法
前言 最近看阿里的 Java开发手册,上面有线程池的一个建议: [强制]线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样的处理方式让写的同学更 ...
- 【转】线程池体系介绍及从阿里Java开发手册学习线程池的正确创建方法
jdk1.7中java.util.concurrent.Executor线程池体系介绍 java.util.concurrent.Executor : 负责线程的使用与调度的根接口 |–Execut ...
- 阿里Java开发手册学习 2 异常日志
异常日志 异常处理 1.不要捕获继承自RuntimeException的运行时异常类,这类异常通常由程序员来校验,来保证查询的健壮性. 2. 不要对大段代码 try catch,分清稳定代码和非稳定代 ...
- 阿里JAVA开发手册零度的思考理解(一)
转载请注明原创出处,谢谢! 缘由 阿里JAVA开发手册已经发表有很长时间了,值得认真研究思考推广 阿里官方的Java代码规范标准,这份开发手册不仅规范了一些开发细节,也提出了很多工程开发的哲学,值得好 ...
- 阅读阿里Java开发手册记录
概述 在阅读完阿里Java开发手册(嵩山版)后,发现自己在开发过程中有一些没有按照规范开发的情况,这里将容易忘记的规范记录下来,并且添加自己的理解,一方面方便自己巩固记忆,另一方面希望对其他同学能够提 ...
- 阿里JAVA开发手册零度的思考理解(二)
转载请注明原创出处,谢谢! 说在前面 人生的大道上默默地走,就必须要有一盏灯亮着为你引导方向!而这盏灯抑或只是一句话,一句鼓励,一个赞美,一次承认,一次认可,一次相识一次交流-- 上篇文章:阿里JAV ...
- 阿里java开发手册中命名规约解读之DO/BO/DTO/VO/AO
前言 在阅读<阿里巴巴Java开发手册>时,看到命名规则中有这样一条 虽然知道这些是根据Java对象的角色所分配名称的后缀,但是没有弄清楚分别是什么意思,日常开发中也没有使用到. 网上查找 ...
随机推荐
- 《Programming in C》读书笔记
该书由美国Seephen G.Kochan著 贾洪峰译,电子工业出版社,来源是九江学院图书馆采购,现在藏于九江学院图书馆逸夫楼. 本书的主要内容: 第一章.基础知识 第二章.编译和运行第一个程序 第三 ...
- wpf GridControl selectAll UnSelect
<Window x:Class="WpfApplication1.GridControlView" xmlns="http://schemas.microsoft. ...
- hdu 3605 /状态合并最大流
题意:N个人去m个星球,给出n个人可以去哪些星球的01矩阵.求是否能满足所有人都去.(n到10万,m<=10) 一看,起先一瞬间就建图,准备秒了,人向星球连边,直接最大流判断是否为n,提交超时. ...
- 微信公众号手机端PC端多客服系统
最近很多客户反应没有专门的客服坐在电脑面前,接收回复客户的问题:不能及时回复客户 咨询的问题,现在我们已经为此帮您解决烦恼!! 支持PC与手机端接收微信客户咨询与回复客户,让您随时随地及时回复客户咨询 ...
- react css module
<div className={style['content-warp']}></div> <div className={style.search}></d ...
- Codeforces Gym101606 E.Education (2017 United Kingdom and Ireland Programming Contest (UKIEPC 2017))
E Education 这个题有点意思,就是找满足条件的最小价格里的最大值的人数,有点贪心的思想吧,一开始写错了,人群的那个不能排序,而且是最小价格里找能住下人最多的部门,让这个部门去住这个房间.在循 ...
- Codeforces 635D Factory Repairs【树状数组】
又是看了很久的题目... 题目链接: http://codeforces.com/contest/635/problem/D 题意: 一家工厂生产维修之前每天生产b个,维修了k天之后每天生产a个,维修 ...
- win7快捷键和ubuntu快捷键
http://www.cnblogs.com/xfiver/archive/2010/12/08/1899905.html http://www.pc841.com/article/20121203- ...
- 某考试 T3 Try to find out the wrong in the test
Discription Hint: 对于 100% 的数据, n<=10^6.
- maven项目对于maven远程仓库没有资源的解决办法
下载资源到本地 方法一:dependency scope 是system 类型 <dependency> <groupId>edu.ucar</groupId> & ...