TDD两小时实现自定义表达式模板解析器
为什么要重新造一个车轮? 很多情况下,用户需要按其自定义模板动态生成邮件、PDF。开源组件中,有两类较贴合需求的产品系列: 模板渲染引擎,如FreeMarker, Velocity虽然强大异常,但是过于灵活,不利于按需裁减出自己想要的少量语法; 纯字符串模板引擎,要么取数据不够动态(需要提前预知有哪些变量),或者是语法冗长(函数调用来实现动态扩展)不利于非IT人事编写。 那么有没有一款产品,既简洁可控,又易于扩展呢? 其实自己实现一个够用的模板解析器,也是很简单的事情,下面分享一款我两小时在融创地产HR项目中实现的模板解析器。 本实现没有任何外部依赖,很容易移植到其它语言,比如用javascript实现甚至更简单。 用户场景 用户的原始需求: 亲爱的XXX先生/女士 你好!欢迎加入XXX公司,你的部门是XXX,岗位职级XXX … 人事部 HR XXX先生/女士 模板设计: 亲爱的${uid|userInfo|prop:name}${uid|userInfo|prop:gender|genderName} 你好!欢迎加入 一天一个小目标 公司,你的部门是${uid|depart...

