随笔分类 - 其他
摘要:进程监控端口 1)netstat -anp | grep xxx 2)lsof -i:句柄 lsof -n | grep xxxx线程栈 1)gstack 2)用gdb attach进去 3)java进程用jstack,或btrace运行时系统调用 strace -fp -o /var/lo...
阅读全文
摘要:最近做了一个迷你的java项目,当初有意识地不考虑代码设计,代码写得天马行空,以便留有足够的重构余地,也好有一次重构的经历。这是一个有页面,有中间逻辑,有数据库的系统,当前没有使用ssh框架、没有连接池、没有缓存、没有日志、没有单元测试、没有javadoc注释、没有版本管理,代码到处都是坏味道,几乎烂透了。架构上,甚至没有做到MVC,仅仅具有MV而已,页面与业务逻辑混杂,代码重复率高。就是要在这么一个烂摊子上,最好代码重构。 不能免俗,做了代码统计,总行数15460,代码行数11375,另有29行代码包含注释,纯注释172行,还有815空行。设立几个目标:(1)加入单元测试 (2)希望在...
阅读全文
摘要:类图:最常用,描述子系统或模块的内部结构序列图/时序图:单个场景下,子系统间或对象间的交互操作活动图:流程图与序列图的结合,可以在序列图的基础上表达更多业务逻辑,比序列图更能表达细节状态图:多场景、多种操作下,系统或对象的状态变化通信图:序列图的变种,形式更自由,不能体现子系统的生命周期包图:大型系统实际代码中,各子系统间、应用分层间的依赖关系组件图:实际模块或逻辑分层间,接口的依赖关系部署图:各子系统所使用的软件环境,部署的软件包信息用例图:描述需求的场景或粗略用例其他杂图:个人认为,只有能把问题从某个角度描述清楚,便于大家理解,图怎么画都行
阅读全文
摘要:项目中有好几个地方用到了哈希算法,更确切地说,是SHA算法的应用场景。MD5也是常用的哈希算法,但已经被证明不再安全,SHA-1也是如此,不安全的原因主要是彩虹表,或是碰撞计算,这里不详细描述。一般推荐使用SHA-256或者SHA-512,至少在当前是安全的。 哈希表在代码中也普遍使用,是一种用于关键字查询的数组或顺序列表,这里就不说了。1. 校验安装文件的完整性 在软件部署的时候,计算软件包当前的哈希值是否与预设值相等,防止软件包被篡改或被替换。Linux提供了基于sha算法的命令,用于计算文件的哈希值sha256sum fileName2. 存储和校验用户口令 用户口令不能用明文...
阅读全文