架构师速成6.11-开发框架-后端封装思路
来源:互联网 发布:中国少年儿编程网视频 编辑:程序博客网 时间:2024/06/02 01:36
要做一个好的开发框架并不是直接找一个现成的Spring就ok了,这个对于一般新手来说学习难度还是有点高。另外Spring还是一个通用性的框架,我们需要针对业务的定制化封装。我以java为例讲解一下后端需要做什么:
- 确定层数结构
- parent
- common
- test
- dao
- service-common
- service
- web-common
- web
- parent
- parent统一引入的类库及版本,通过maven方式进行类库管理,在parent中定义所有引入的类库及版本,不需要其他人私自引入类库。java类库的膨胀及冲突控制的确是一项很头疼的事情,一不小心最终的项目就达到几百兆,每次编译发布就需要很长时间。我在这里强烈推荐一下一个国内开源框架nutz,无引入其他任何jar包,提供了spring和hibernate的最常用功能,只有1M。我们之前使用Spring,后来换成nutz,而且严格限制引入的jar包后,web最终打完包,才10M左右。
- common工具类确定及封装,不要引入过多的包,只引入最基础而且是最必须的工具类。比较极端的情况下,自己写。
- StringUtils,DateUtils等,这个引入common-lang
- 语法糖,比如 map,list等的泛型构造,isEmpty(Object ) length(Object)等
- JodaTime,谁用谁知道
- guava,缓存,限制流量
- log,java的日志是一大堆,建议slf4j+logback,其他的都桥接到这上面。
- Exception,定义异常接口 ISystemException,IBusinessException,IAuthException,及几个实现类,这个会单独起一个异常章节进行讲解。
- Ioc,这个一般你使用的框架已经提供了。
- Aop,这个一般你使用的框架已经提供了。
- test 单元测试,集成测试的辅助类封装,让写单元测试跟玩一样,否则没有人愿意写的。
- IOC容器,Spring上下文及测试类封装
- 通用的Mock类
- dao 对于db或者hbase,mongodb等一系列存储的封装,当然如果有必要还可以拆分。我针对db先说一下,其他的先不说:
- 全局唯一主键生成算法
- 主备库,多数据源
- 统一的IdEntity,IAuthorEntity(带修改人,修改时间记录的),所有数据库实体都继承自他2个
- 针对统一类的泛型增删改查封装
- 扩展自定义的标注,比如@Column @MyId等等用于实现自己特殊的逻辑
- 数据级别的权限控制
- 数据库事务,这个一般你使用的框架已经提供了。
- service-common,封装业务逻辑所需要的工具类或基础类,如果没有多少,可以和service合并。
- service真正的业务逻辑,根据不同的业务及规模可以进一步拆分service-a,service-b
- web-common,封装于界面及mvc相关,filter等等的逻辑
- mvc,url-mapping 这个一般框架已经提供,比如spring,nutz都会有。
- 异常处理,后面会单独写
- 单点登录filter,其他统一的filter
- 访问权限控制
- 不同后缀的处理,json,html,json及jsonp的封装
- 动静分离,静态文件使用nginx进行加载,设置缓存时间等等
- 界面统一的变量封装,比如根路径,user
- 用户获取
做完这些,后端的基本封装才算稍微有一个样子。
0 0
- 架构师速成6.11-开发框架-后端封装思路
- 架构师速成6.12-开发框架-前端封装
- 架构师速成6.3-设计开发思路
- 架构师速成6.4-开发框架
- 架构师速成6.7-设计开发思路-uml
- 架构师速成6.8-设计开发思路-领域驱动
- 架构师速成6.13-开发框架-前后结合
- 架构师速成6.14-开发框架-异常处理
- 架构师速成6.15-开发框架-单点登录
- 架构师速成-目录
- 架构师速成-架构体系
- 后端开发框架
- AFN框架封装思路(新版本)
- 面向对象框架封装思路
- 架构师速成1-前言
- 架构师速成2-概述
- 架构师速成4-幼儿园
- 架构师速成5-小学
- (转)参加SCRUM中文网CSM认证班的一些感想
- Cable master
- JDBC中使用存储过程
- 基于Hadoop SLA认证机制实现权限控制
- Oracle索引
- 架构师速成6.11-开发框架-后端封装思路
- Linux 分区简介
- Android 应用启动界面自定义
- 懵懂到迷茫的开始
- 初始MVC
- 多线程访问共享数据(1)
- Linux内存管理原理
- Android中Service类onStartCommand
- 产品运营