优雅代码实践2 之 黄金比例 1:1:1
今天给小组开发人员做了一次简单的分享,分享完了,再给取了这么一个名字,因为联想到了金龙鱼食用油曾经到处轰炸的广告词 1:1:1(随便百度一下,才知道是指 不饱和脂肪酸:中度不饱和脂肪酸:饱和脂肪酸 为 1:1:1)。我这里指,业务上的一项配置,对应到配置表中的一条记录,对应到代码中的一个 Class,所以也是 1:1:1。
我把这种 1:1:1 也称之为一一映射,这个是数学中的概念,但是应用到业务开发中来,也是一种很好的借鉴。这种映射,是一种天然的映射,非常简单明了,无需经过大脑二次转换,是非常直接的方式。话说如果原始人最多只能数到数字3,那么Ta怎么能确定左手和右手的手指头数是一样多呢?对了,两只手掌对起来,形成一一映射,左手有一只大拇指,右手有且仅有一根大拇指与其映射,反之如此。
更多的关于构建一一映射,可以翻阅《图灵的秘密》这本书。比如,里面说到能与自然数数列形成一一对应关系的集合,称之为可数的;比如0与1之间实数,可以与大于1的实数一一对应,只需要每个数求一下倒数即可。
1、原始设计:
存在问题:1) 一条业务需要对应到多条记录,是在(业务类型、发送类型、发送角色)三者之殇一个笛卡尔全集;2) 根据触发条件(TRIGGER_SITUATION)进行查询配置,缺乏与业务的直接映射;3) 页面上需要写死诸多业务代码;总之,不是一一映射,是一对多映射,缺乏直观性,不利于数据维护。
2、那么多的属性,怎么会不遗漏呢?答:还是一一对应。使用 IDEA 的分栏模式,Alt+鼠标选择的列模式,再加数字顺序编号(String Manipulation 插件)。
3、在代码方法的注释上,模板与示例,也形成一一对应关系,有助于对参数设置的理解。
4、在枚举变量上,我采用了一以贯之的 大白话 的形式,不做任何编码约定,直接使用 “馆主”,“店长”,“教练”,“会籍”,“客服” 的字眼,而不是之前的编码 100、108、101、107、102。这种编码我总是记不住,每次我都得去下面这张表去找答案(也或许是我主观不愿意去记忆这种编码的原因了)。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论