工程结构
工程结构之应用分层
1、( 分层异常处理规约 ) 在 DAO 层,产生的异常类型有很多,无法用细粒度的异常进行 catch ,使用 catch(Exception e) 方式,并 throw new DAOException(e) ,不需要打印日志,因为日志在 Manager / Service 层一定需要捕获并打到日志文件中去,如果同台服务器再打日志,浪费性能和存储。在 Service 层出现异常时,必须记录出错日志到 磁盘,尽可能带上参数信息,相当于保护案发现场。
工程结构之二方库依赖
1、定义 GAV 遵从以下规则:
1) GroupID 格式: com.{公司/BU }.业务线.[子业务线],最多 4 级。说明: {公司/BU} 例如: alibaba/taobao/tmall/aliexpress 等 BU 一级; 子业务线可选。
正例: com.taobao.jstorm 或 com.alibaba.dubbo.register
2) ArtifactID 格式:产品线名-模块名。语义不重复不遗漏,先到中央仓库去查证一下。
正例: dubbo-client / fastjson-api / jstorm-tool
3) Version:二方库版本号命名方式:主版本号.次版本号.修订号
2、赖于一个二方库群时,必须定义一个统一的版本变量,避免版本号不一致。
工程结构之服务器
1、 高并发服务器建议调小 TCP 协议的 time_wait 超时时间。
2、调大服务器所支持的最大文件句柄数
4、在线上生产环境, JVM 的 Xms 和 Xmx 设置一样大小的内存容量, 避免在 GC 后调整堆大小带来的压力。
5、 服务器内部重定向使用 forward; 外部重定向地址使用 URL 拼装工具类来生成, 否则会带来 URL 维护不一致的问题和潜在的安全风险。