阿里 JAVA 开发手册 学习 4 工程规约

时间:2023-01-01 13:45:55

应用分层

1.分层如下

阿里 JAVA 开发手册 学习 4 工程规约

  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 工程规约的更多相关文章

  1. 阿里Java开发手册学习 3 MYSQL规约

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  2. JUC学习笔记--从阿里Java开发手册学习线程池的正确创建方法

    前言 最近看阿里的 Java开发手册,上面有线程池的一个建议: [强制]线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式, 这样的处理方式让写的同学 ...

  3. 从阿里Java开发手册学习线程池的正确创建方法

    前言 最近看阿里的 Java开发手册,上面有线程池的一个建议: [强制]线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样的处理方式让写的同学更 ...

  4. 【转】线程池体系介绍及从阿里Java开发手册学习线程池的正确创建方法

    jdk1.7中java.util.concurrent.Executor线程池体系介绍 java.util.concurrent.Executor : 负责线程的使用与调度的根接口  |–Execut ...

  5. 阿里Java开发手册学习 2 异常日志

    异常日志 异常处理 1.不要捕获继承自RuntimeException的运行时异常类,这类异常通常由程序员来校验,来保证查询的健壮性. 2. 不要对大段代码 try catch,分清稳定代码和非稳定代 ...

  6. 阿里JAVA开发手册零度的思考理解(一)

    转载请注明原创出处,谢谢! 缘由 阿里JAVA开发手册已经发表有很长时间了,值得认真研究思考推广 阿里官方的Java代码规范标准,这份开发手册不仅规范了一些开发细节,也提出了很多工程开发的哲学,值得好 ...

  7. 阅读阿里Java开发手册记录

    概述 在阅读完阿里Java开发手册(嵩山版)后,发现自己在开发过程中有一些没有按照规范开发的情况,这里将容易忘记的规范记录下来,并且添加自己的理解,一方面方便自己巩固记忆,另一方面希望对其他同学能够提 ...

  8. 阿里JAVA开发手册零度的思考理解(二)

    转载请注明原创出处,谢谢! 说在前面 人生的大道上默默地走,就必须要有一盏灯亮着为你引导方向!而这盏灯抑或只是一句话,一句鼓励,一个赞美,一次承认,一次认可,一次相识一次交流-- 上篇文章:阿里JAV ...

  9. 阿里java开发手册中命名规约解读之DO/BO/DTO/VO/AO

    前言 在阅读<阿里巴巴Java开发手册>时,看到命名规则中有这样一条 虽然知道这些是根据Java对象的角色所分配名称的后缀,但是没有弄清楚分别是什么意思,日常开发中也没有使用到. 网上查找 ...

随机推荐

  1. spring security 判断用户是否登录 只要登录就可以访问资源

    有些情况,只要用户登录就可以访问某些资源,而不需要具体要求用户拥有哪些权限,这时候可以使用IS_AUTHENTICATED_FULLY,配置如下所示: <http auto-config='tr ...

  2. (转)HelloWorld CMake CMake中构建静态库与动态库及其使用

    继续完善Hello World,建立它的共享库, 包括静态库和动态库. 本节的任务: 1,建立一个静态库和动态库,提供HelloFunc函数供其他程序编程使用,HelloFunc 向终端输出Hello ...

  3. SpringSecurity的简单应用(一)

    java项目首先要提的就是jar包了,Springsecurity的jar下载地址:http://static.springsource.org/spring-security/site/downlo ...

  4. Android 发展 ------------- Unable to resolve target &amp&semi;&num;39&semi;android-19&amp&semi;&num;39&semi;

    又一次装完Ecplise+ATD+Android SDK 在Ecplise工作空间导入之前写过的Android项目会出现错误,大部分是SDK 版本号不符,例如以下错误提示: Error:Unable ...

  5. 《JS权威指南学习总结--6&period;1原型》

    内容要点: 一.每一个JS对象(null除外)都和另一个对象相关联."另一个"对象就是我们熟知的原型,每一个对象都从原型继承属性. 二.所有通过对象直接量创建的对象都具有同一个原型 ...

  6. 浅谈C10K问题

    在大型的APP中进行高并发的访问,淘宝,支付宝,微信,QQ,等 C10K问题:高并发的进行访问 C10K问题的最大特点是:设计不够良好的程序,其性能和连接数及机器性能的关系往往 是非线性的.举个例子: ...

  7. idea下使用autowire注解注入对象,结果初始化不到类

    如果idea下使用autowire注解注入对象,结果初始化不到类,明明使用快捷键alt+insert是可以找到该注入的对象的. 而我们在使用的时候,缺报错了??? 注意,当我们在注入对象的时候,我们留 ...

  8. GitHub入门之路&lpar;1&rpar;

    介绍 从本篇文章开始,是一系列介绍GitHub相关内容以及Git的一些基本操作的文章,记录了自己的学习过程. 概要 简单介绍GitHub是什么,Git又是什么. 1.Git是什么 Git是一款分散型的 ...

  9. usrp-B210

    sudo add-apt-repository ppa:ettusresearch/uhd sudo apt-get update sudo apt-get install libuhd-dev li ...

  10. css处理超出文本截断问题的两种情况(多行或者单行)

    1.非多行的简单处理方式: css代码: .words{ width:400px; overflow:hidden; /*超过部分不显示*/ text-overflow:ellipsis; /*超过部 ...