业务实践系列(4):项目开发常规规范

最近先后接手了 2 个项目,接第一个项目觉的好乱,花了好几天略有理清;接第二个项目时觉的第一个项目还行,就这样认知底线又被突破。

一个没有规范化的团队和项目,项目经过多人多次迭代,简直是一团乱,属性、方法、表字段命名不规范,表关系设计不清晰,Mapper 层与业务强耦合,注释与实际功能不一致,业务包结构不规范,公共功能不抽出独立,新人接手难以通过代码快速了解业务,真是太糟糕了。

本篇基于个人在项目中遇到的以上原因而记录需要的规范。

阅读更多

Java基础:JDK 8 之 LocalDate,LocalTime,LocalDateTime 使用

因为 Date 实在不方便,特别是在日期计算时难用,并且格式化是非线程安全的。

JDK 8 提供 LocalDate, LocalTime, LocalDateTime 可以更方便操作日期时间,是线程安全的。

在 JDK 8 出来之前,大多会使用第三方库 Joda 来操作日期时间,GitHub joda-time

国内工具类 Hutool 也提供了日期时间工具类,可以方便操作。

阅读更多

Utils-获取真实IP地址

获取真实 IP 地址。一次项目中有记录请求方的 IP,某天收集到的 IP 地址全是相同的,后面定位到问题是在阿里云启用了 SLB(负载均衡),收集到的全是负载均衡服务器的 IP,而不是用户端的 IP,后面改为判断从 x-forwarded-for 中取。

阅读更多

设计模式(十一):观察者模式(Observer Pattern)

观察者模式 又称为 发布 / 订阅(Publish / Subscribe)模式、源 / 监听模式(Source / Listener)。

观察者模式定义对象之间的一对多的依赖关系, 一个对象的行为发生改变,所有依赖于它的对象的行为也发生改变。观察者模式是对象的行为模式。

如果有了解 Servlet 监听器或消息中间件的 发布 / 订阅 模式的应该很好理解观察者模式。

阅读更多

设计模式(十):状态模式(State Pattern)

状态这个词较好理解,生活中很多事物都会有状态,有不同的状态,状态是可转变迁移的。例如 人有精神状态、身体会有疲劳状态或打鸡血状态。

在系统开发中,程序中有些对象可能会根据不同的状态做出不同的行为,把这种对象称为 有状态(stateful)的对象,把影响对象行为的一个或多个动态变化的属性称为 状态

阅读更多