Validation工具库是我在团队沟通协调过程中设计的一个开源的Java工具类库。这是一个简单的库,它不助力程序员解决开发过程中的疑难杂症,也无益程序运行时的性能。那么为什么还要设计这个库工具库呢?答案是沟通与协作。

       一个软件研发团队,典型的成员和(或)涉众有:产品、设计、开发、测试、用户。通常产品和设计输入开发内容给开发,而开发则输出产品给测试和用户,在开发接收开发内容(输入)与交付产品(输出)之间,则是开发的加工过程,即开发活动。

       如果将最终交付的产品看成是能协同工作完好并能符合要求的工件的集合,并且工件可以由更小的工件组成,那么开发最终的提交的就是大大小小的工件。在开发活动中,工件的要求总能描述为:在满足条件Condition时,将输入符合规格Specification-Input加工成符合规格Specification-Output的输出。

       显然,从上可以看出,开发工件多达有1个条件,2个规格共计3个地方需要检测。在产品特性或设计层面,一般还要求检测不通过时做出额外的特殊行为,譬如打印日志,提示出错等等。Rule工具库的目的就是提醒产品、开发和测试在开发的过程中重视这个环节,并且期望他们在这个环节的工作中能够轻松愉快。

       什么样的工作体验能让我们轻松愉快呢?我认为主要是:

  1. 产品与设计:
    真好,这个疏忽可以悄悄的修订,声张的不要;
  2. 开发:
    哈哈,不变就是王道,简单就是愉快,不要来打扰我;
  3. 测试:
    怪兽!怪兽!!就在哪个地方!怎么描述,你想怎么描述就怎么描述。

       理想是丰满的,现实是骨干的!理想离现实总是有一段距离,但这不妨碍我们靠近。Validation工具库的目的就是在开发过程中的3个检测环节协助团队朝理想靠近。总的说来通过以下方式来达到目标:

  1. 检测点统一编码:
    每个检测点统一编码,通过编码确定检测点在系统中的唯一位置和含义。
  2. 编码信息可配置:
    每个编码的信息,可以配置,并且可以按优先级覆盖重复既有配置;越靠近用户的优先级越高。
  3. 统一编程方式
    显示明确的编码,无隐藏行为,无歧义行为。