很久以前,我们添加了一项功能,使用户在将图像添加到工作流队列后可以“接受”图像。原来,我们使用了错误的术语,并且用户实际上“批准”了该图像。
在我们的界面上更改“接受接受”很容易,只需替换一个单词即可。但是,我们从CSS类名称到数据库值都使用“ accept”一词对所有层进行了编程。
- 使按钮变为绿色的CSS类:“ .accepted”;
- 验证并绑定DOM节点上的类属性的模型方法:“ isAccepted”;
- JavaScript状态属性:具有“未审阅”,“已接受”和“已发布”的数组;
- Mysql状态列:ENUM,具有“未审阅”,“已接受”和“已发布”;
- 测试名称;
替换大多数出现的接受批准很简单(特别是在进行测试时)。迁移数据要困难一点,特别是因为它需要与部署同步。
这个特定的案例很简单,但是在我的职业生涯中,我遇到过类似但更复杂的案例。当文件也被重命名并且在数十台服务器上进行部署时,或者当代理缓存时,将涉及memcached和mysql。
除了接口之外,在所有其他层上都保留“接受”是一个坏主意,因为加入该团队的新程序员可能无法了解导致该决定的历史原因,并且如果接受->赞成,则在含义上是相近的词语被重命名为“排队参加管理层下次地位会议”,这当然没有任何意义。而且,如果我们在这里和那里折衷,就会感觉到,在一些迭代中,用户界面的概念不会影响系统内部,并且我当然不希望在其中一半输出与其内部没有关系的系统上工作。
那么,您是否总是在需要时重命名所有内容?如果这发生在您身上,并且您认为这种权衡不值得,那是不是又回来咬了您?代码注释或开发人员文档是否足以避免此问题?