用户工具
登录
您在这里:
start
»
如何开发一个优秀的程序
您的足迹:
•
如何开发一个优秀的程序
目录
保持逻辑简单,语义清晰
函数注意事项
对象注意事项
fast fail原则
异常处理机制
配置文件机制
日志监控策论
健壮性
资源使用释放机制
测试
性能优化
监控机制.报警
预热机制
其他
保持逻辑简单,语义清晰
保持逻辑简单,语义清晰
函数注意事项
java函数
对象注意事项
一个对象在构建时必须检查自己是否合法,如果自己不合法,则构建失败。
可能构建失败的对象一般返回一个Optional类型的对象
所以一个对象存在,则必须可用,否则不应该存在
fast fail原则
保证函数快速失败:把错误影响控制在最小范围内
如果有出现(java.lang.OutOfMemoryError: GC overhead limit exceeded)
说明程序内存马上不够用了,应该立马退出,不要硬撑着,由于内存不够会一直触发gc,导致程序执行的很慢很慢…
异常处理机制
统一处理,见异常处理篇
java异常
配置文件机制
见配置文件篇
java配置文件
日志监控策论
本地程序,日志文件
分布式程序,logstash
使用方式见
java日志系统slf4j_log4j_logback
正常日志滚动保存,
错误日志永久保持直到被处理处理
健壮性
超时重试机制(长用于数据库连接)
连接断开重连机制
线程监控,线程挂掉之后自动重启机制
每个资源类必须提供一个clean函数释放资源(redis连接等等)
资源使用释放机制
一个线程使用一个连接,线程退出后连接退出(个人觉得没必要新建一个连接池,每次create一个连接有close一个连接)
测试
java测试
性能优化
将程序种耗时的部分分离出来
比如异步持久化
多用future机制
最好加上超时重试机制
监控机制.报警
zabbix
内存监控
进程死掉
进程假死(程序还在,但是没有运行)
检测心跳是否停止
第三方组件短时间内大量超时(数据库连接)
最近10分钟内超时次数大于某值
influxdb
qps
request time
预热机制
可能时候可能需要提前预热
提前加载缓存
提前初始化数据库连接
…
其他
经验教训
页面工具
显示源文件
修订记录
反向链接
导出 PDF
回到顶部
跳至内容
fang qiang
站点工具
最近更改
媒体管理器
网站地图