cyou-framework 使用规范

前端在做页面时,需要从设计师的 UI 文件中切图。为了使我们工作协作更加顺畅和高效,这里提出一些建议。 有些时候,设计师一个小小的改进,会给我们前端带来极大的方便。

工具类使用规范

工具类从 Apache Commons, Google Guava, Spring 中筛选.

  • StringUtility

    有关String操作的都请使用该工具类, 该工具类继承并扩展了 Apache Commons Lang3的StringUtils.

  • TemplateUtility

    充当简易模板引擎的功能,主要处理模板和数据的结合并输出处理结果。

  • ReflectionUtility

    三家的Reflections类都不够粗暴, 不能完全无视private/protected修饰符强制访问. 因此自己实现.

  • CollectionUtility

    Guava中一些, Apache Commons的有点太老, 尽量不用吧. 所以自己封装.

  • Apache Commons Lang3 Validate, Assert防御式编程

    选用Apache Commons Lang的Validate. Spring的Assert容易和JUnit的混淆, 而且校验函数没有返回输入参数的能力, 出错信息也没有格式化字符串+自定义参数的能力. 而Guava的类名叫Preconditions太长太怪,所以最后选了Apache的。

  • DateUtility 时间处理

    Joda-Time优先。

  • EncodeUtility

    Commons-Codec的 hex/base64 编码 自制的base62 编码 Commons-Lang的xml/html escape JDK提供的URLEncoder

  • IdentityUtility

    封装各种生成唯一性ID算法的工具类:uuid, uuid2...

  • PropertiesLoader

    Properties文件载入工具类. 仿造Spring编写,可载入多个properties文件, 相同的属性在最后载入的文件中的值将会覆盖之前的值,但以System的Property优先. Path可以是classpath,绝对路径file或者web-inf/

  • IOUtils(Apache Commons)

    IO工具类.

  • ThreadUtility

    只封装了两类函数: 一个是sleep函数,屏蔽了InterruptedException的异常. 一个是仿照JDK的shutdown/shutdownNow中的注释,提供了一个有超时控制,而且先尝试shutdown,超时了再尝试shutdownNow的gracefulShutdown()函数.

  • Concurrency

    JDK自带,Google补充,还有自己也写了个ThreadUtility.

  • Resource

    Spring的Resource, 可以方便加载文件路径, Classpath路径和Web App内路径的内容.

  • Dozer

    异构对象间的复制拷贝.