分层是一种很优秀的方法。主要用于对大量的数据,对象进行合理组织,使之便于管理:便于查找,避免命名,便于理解,并于命名。
分层用于开发的各个方面,可以说无所不在,分层会使你的代码变得优雅,赏心悦目,繁杂的数据不在混乱,而变的井井有条。
一、界面的分层
界面的分层,是指在界面设计时,界面元素的外观,布局,命名要有层级概念
通过框线划分区域,通过上下关系,缩进,字号大小,等等个确定上下级控制和隶属关系
控制范围、隶属关系,要通过空间位置来表达。
不能是 能用就行,还要好用,好用的基础上,还要美观。
能用--好用--好看。
有的人说,我把这个放在这里,用户用起来更方便
1,到底有多方便,值得你违背这个层级原则。
2,会不会造成用户的困惑,理解上的障碍,
3,遵循规范更重要。否则,你觉得放在这个地方方便,另外的人觉得放在其他地方更方便。这样就没有标准了。规范具有稳定性,普适性,标准性。
我们不要把用户往沟里带,要往正路上带。
举个例子(和分层没有关系):
下面的界面上有个 打印设置 功能,猜猜在哪?
在打印按钮上点击鼠标右键,弹出打印设置窗口!
我们不做过多评判,但是我认为这不是好的UI交互设计。
按钮 是用来干啥的,是用来“按” 的。你见过用左手按,和右手按 执行不同动作的按钮吗?
二、代码的分层。
所谓代码实现的分层,其实是模块职责的分层,从大到小,从高到底,将功能层层分解下去。层与层之间定义清晰的接口,定义明确的功能。分层就是分责。不同的层,完成不同的功能。
1、分层就是分责
2、层级之间的接口
3、层级之间的调用。层的调用是单向的,只能是上层调用下层,绝对不可以反过来下层调用上层,也不能跨层调用。
跨机器调用
跨网络调用,调用协议 RPC,HTTP,RESTFUL
跨进程调用,SHELL
进程内调用,call 就ok了。
无论哪种调用方式,都需要明确指定对方需要的参数。
三、命名的分层
1、数据库表名册命名
数据库的表名设计要体现出表与表之间的层级关系,比如一个报销单是分层的
单据头
- 车船费
- 交通费
- 住宿费
- 出差补助
那么在设计表名时就要从名字上体现这种关系,
ic_bt_doc
ic_bt_doc_traffic
ic_bt_doc_local_traffic
ic_bt_doc_hotel_fee
ic_bt_doc_allowance
2、模块的命名,类的命名
3、其他命名
比如,bsconfi中配置变量的命名
报表名称的命名。
如果我们没有额外的分类对名称进行组织,那么我们在命名的时候,通过名字分出层级,比如 cxgl.report_server_url ,查询系统中,报表服务器的地址,通过.分割层级
也可以通过 - /等层级符号,这个要看具体的使用场景,有没有限制。比如文件名使用的符号就不能用 /,那我们可以用-或者 _,或者 . 都可以。