UI端编程的22个问题
接下来我所要讲解的,是一个宏大的主题,结合了我这些年来从事UI端编程的经验,我将用一系列文章来搭建用户界面(UI)的底层框架,这里我使用的技术实现是Silverlight,但是,你将会发现,我所介绍的都是UI端的设计思想,所以是超越于语言,是不局限于技术实现的,所以,它将适用于Windows Form, WPF, FLEX, HTML5,以及所有手机编程领域Phone7, IOS, Android。
分类如下:
框架级别:
1) Wait Cursor
在调用Service端方法的时候,如何能锁住当前的UI,直到Service返回结果,用户才能继续操作。
2) Chain of Async methods
如何将异步方法转化为同步方法,这将使我们的代码更加清晰。
3) Domain Cache
如何在客户端缓存一些数据,比如说国家列表,学校列表,等等。
4) Code Injection
如何巧妙的注入一些代码,使UI端的代码更优雅。
5) UI Logger
如何记录UI端的日志。
6) Exception
如何设计Service端的异常的处理机制,就是有Exception,也要友好的显示给UI端。
7) Abstraction
如何设计用户界面的接口和基类。
功能设计:
8) View Split
如何更加有效的将一个复杂的页面拆分成多个小页面。
9) Navigation
如何设计导航,包括菜单,导航树,导航器。
10) On-Site Edit
如果设计在线编辑(On-Site Edit),也就是通常所谓的CRUD,一揽子解决方案。
11) Popup
如何统一弹出框。
12) Server paging/filter/sorting
如何处理大量数据的显示,比如分页,排序和过滤,可以是UI端来做,也可以是Service端来做。
MVVM设计:
13) MVVM
如何将数据从界面逻辑中剥离出来。
14) Event
如何建立我们自己的事件机制
15) Command
如何建立我们自己的命令机制,以及如何将事件转化为命令
16) UI Unit Test
如何设计UI端的单元测试。
综合设计:
17) Validation
如何设计客户端的验证体制,从而让用户总是提交有效的数据。
18) Concurrency
如何处理并发操作,当然,这也是从UI、Service和DB层同时考虑的。
19) Mock data
如何Mock一些数据,使UI端的开发不依赖于Service
20) Print/Export
如何打印和导出数据
21) Performance Tuning
如何调试性能,当然,不止局限于UI端。
22) Work with UX team
如何组织UI端项目的结构,以及如何与美工协作。
总而言之,这都是一些经验的汇总,是一些通用的模式,出于对GOF的Design Pattern的尊敬,我在上面只列出了22个场景(其实是我实在想不出第23个,而又不想随便写一个来凑数)。