余果的博客

MVC架构导致的词汇表分裂

Introduction

user

余果

一个产品设计师。了解详情


Featured

MVC架构导致的词汇表分裂

余果 back-end

MVC是一种非常适合大型软件开发的架构方法,现代复杂软件多多少少都会使用到这种思想,分离了模型-控制-视图之后可以让流水线上的程序员和设计师可以各自专注自己的代码。但这种分离也导致了词汇表的分裂。虽然这种分裂最终不会体现在用户界面层面上(用户界面上的词汇表完全由视图层来定义),但它会体现在整个软件的代码架构中,在整个流水线联调中,有可能会出现在这个上面浪费时间的状况。如果不看大型软件,只看小型软件的开发,只涉及一个开发人员,也会出现前后不一致的现象。

我来解释一下问题发生的原因吧:

在创建数据库的时候,表的名字假定为hero(首页大图的一些信息),然后在M层就会有一系列对heroes进行操作的方法。

在创建视图的时候(这个过程可以是和数据库同时开发,这也是MVC的优势),我会有一些html,里面有id和class,名字就按自己的喜好来:id=”image_l”。

在创建控制器的时候,涉及到url的定义,这时候开发按restful的规则,来使用一个复数名词:http://yuguo.us/heroes/jobs 类似这样。

这就是比较常见的大型软件开发中遇到的一种情况。说实话,这种情况还比较好处理,因为大家各司其职,完全分离。除了控制器程序员会做一些词汇表的对接,只要他好好沟通,就不会犯错。我遇到过一次例外,在做一个页面的时候,用户可以选择深浅色底色,然后文字对应的是浅深反色。我作为视图把背景深色定义为dark,而模型把文字深色定义为dark,这时候控制器程序员没有意识到这个冲突(无论他更倾向于哪一种),测试的时候才发现,所有的页面颜色都反了。

而个人单独开发的时候,这种词汇表的不统一往往是由于英语词汇的多样性+自己对函数定义还没有形成一个统一的习惯,或者遵循一个规范导致的,这种情况建议读读《clean code》,对此可能有所帮助。

user

余果

一个产品设计师。 了解详情