新计划 |
au的开源软件项目计划 | 新计划进度(一) |
编程的关键点之一就是恰当的抽象程度。
“抽象”简单来说就是找到一类事物的共同点,集中起来方便管理。
网站的各处都会使用到表格,例如基础层面上的“用户列表”“群组列表”,也有用户自定义的“虚拟国家列表”“城市列表”,表格需要的功能有“浏览”,“修改行”,“新增行”,“删除行”和比较高级的“修改结构”。找到了这种共同点,就能用比较统一的方式实现表格系统。
在一般的C/S架构的程序中,数据模型都是前后端早已协商好的,例如用户有“ID,用户名,等级”三个属性,那么前端就会设计用户表格有三个列,分别对应三个属性。如果服务端新增了一个用户属性“权限”,那么前端就必须做出相应的改动,改动html新增一个列和相应的数据绑定代码。
au构思出的新版软件架构,认为前端的表格应该完全根据后端发送的数据动态生成,完全不存储任何固定的表格结构,这样就能大大减小代码量和二次开发的工作量。
虽然听起来很不靠谱,但事实胜于雄辩,au目前已经成功实现了该功能的大半部分。新版的表格可以实现查找任何列,按任何列排序,自动分页(避免带图片的大表格加载太慢)
程序不仅应该用户好用,更应该让其他开发者方便理解和修改,如果需要新增一个属性,只需要修改服务端代码即可,不需要大动干戈。
数据库的表格和前端显示的表格是两回事,不能直接显示给用户。例如“用户列表”里需要显示用户所在的组,但是不需要显示用户密码,这种情况下就需要从“用户模型”转换为“用户列表显示模型”。至于怎么转换那就需要开发者自行实现了。
如果看不懂也没有关系,根据之前的承诺,我会提供相应的保姆级教程便于自定义。
新计划 |
au的开源软件项目计划 | 新计划进度(一) |