Java Web技术经验总结(一)
来源:互联网 发布:盛势网络剧台湾未删减 编辑:程序博客网 时间:2024/05/29 09:29
- 统一的响应体、请求体,规避Map、List作参数或者响应结果的方式(尤其是参 - 数用Map来包装,这种代码有时候看起来真的让人很沮丧)
- 统一的错误信息
- 统一的请求数据校验
- 统一的接口异常捕获
- 表名,以及备注
- 字段定义,以及备注,注意按照下列顺序定义字段!
- id,主键,自增
- 按照字段的使用频率依次定义(字段的顺序为什么重要:);
- 可为空的字段要提供默认值;
- 修改时间(mtime)
- 创建时间(ctime)
- 索引和约束(强文推荐:如何应对并发(1):关于数据索引)
- 唯一键(对于有唯一约束的表,插入数据时应使用insert ... on duplicate语句,参考insert on duplicate语法)
- 普通索引
- 组合索引
- <task:executor/>标签对应的实现类是ThreadpoolExecutor
- pool-size(core-size和max-size):有异步请求到达时,如果当前线程数小于core-size时,则启动一个新线程提供服务;如果当前线程数达到core-size,则将新请求放入Blockqueue;如果BlockQueue也满了,则启动新线程提供服务,直到线程池内的线程数达到max-size;
- queue-capacity:BlockQueue的大小
- keep-alive:超过core-size的那部分线程,任务完成后在线程池中存活的时间;
- rejection-policy:线程池内线程超过max-size之后,对于新来的服务请求的处理策略(忽略、抛异常或者改为同步调用)。
- 线程池的大小:可根据Little定律(队列中任务的平均数量等于进入速率和平均停留时间的乘积)估算。
- 需要通过日志打印验证@Async确实起作用了,可能有三个坑:(1)内部调用不能异步;(2)不能重复扫描,确保带@Async注解的方法所在的类只被Component-Scan扫一次;(3)必须是public的,不能是public static的。参考文章如下:
- Spring的两种任务调度Scheduled和Async
- Spring Async not working
- 需求评审,产出需求文档
- 设计评审,产出设计文档
- 代码开发(尽量使用最佳实践,注意要写基本的单元测试)
- 基本功能开发
- 日志记录
- 异常处理
- 入参检查
- 返回结果生成
- 异步任务处理
- 代码review:自己review => 高级开发者review;核心代码需要团队review
- 测试
- 功能测试(正常case、异常case)
- 性能测试(压力测试)
- 稳定性测试
- 发布
- 风险评估(影响范围、后果)
- 回滚预案(应急处理方案、服务降级等)
- 灰度发布(流量灰度、用户灰度、地域灰度等)
学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:454297367 我们一起学Java!
4 1
- Java Web技术经验总结(一)
- Java Web技术经验总结(一)
- Java Web技术经验总结(一)
- Java Web 技术经验总结
- Java Web技术经验总结(二)
- Java Web技术经验总结(三)
- Java Web开发技术(一)
- 深入分析Java Web技术内幕 (一)
- Java Web技术总结(一):Servlet原理
- 深入分析java web技术内幕----读书笔记(一)
- 《深入分析Java Web技术内幕》学习(一)
- 深入分析Java Web技术内幕(一)
- Java Web dev搭建经验总结
- Java WEB系统国际化经验总结
- [ACM] 经验总结(一)
- 项目经验总结(一)
- 开发经验总结(一)
- java web开发:ajax技术(一)——局部刷新技术的实现
- eclipse快捷键
- yii框架中省市三级联动
- 选择排序
- struts学习笔记:在jsp页面显示结果的三种方式
- 51nod 1201
- Java Web技术经验总结(一)
- 3-6 静态数据成员与静态成员函数
- 5pdshell15软件使用、遇到的错、页面编写案例、
- Bitmap缩放剪裁便宜旋转
- 清无时空【CSDN】正式启动
- MVC开发模式
- MySQL的主从复制
- pycharm激活码
- Android Studio 运行代码时device不能识别genymotion设备