如何让程序员更容易的开发Web界面
早在中国IT业方兴未艾之时,计算机应用系统主要以功能实现为主,几乎没有界面设计这个概念。时至今日,随着计算机和网络的不断普及,社会信息化程度日益加深,用户和市场的不断成熟,人们已经不仅仅满足于“够用”,而是更加强调“好用”“易用”;因此,不论是普通最终用户的个人软件,还是企业应用的大型系统,界面设计在系统构建中都成为了一个非常重要的方面。
但是,(至少在中国)由于IT业发展滞后、市场还不够成熟等原因,在绝大多数企业中,界面设计在软件系统开发中还没有获得与之重要性相匹配的一席之地,并且在企业运作和协调中也没有形成成熟的模式和解决方案,如何做好界面设计和开发,仍然是大家不断研究探讨的一个问题。
1.工作流程
下图,是整个开发过程中与界面设计相关的主要流程工作。
从最初需求分析开始,我就加入项目,自始自终参加整个开发过程。
在需求分析阶段,参与了对客户的访问和调研;
在概要设计阶段,参与了部分系统设计分析工作;
在详细设计阶段,完成了整个系统界面设计和Demo制作,并提交用户反馈;
在代码开发阶段,参与了系统表现层的设计开发。
2.需求分析
在需求分析阶段,主要针对界面交互相关问题,对用户进行若干调研。
主要包括以下内容
·受众用户群调查
·系统使用环境调查
·受众用户使用习惯调查
·用户对旧版本软件使用情况调查
这一阶段,由于成本原因,我并没有直接访问客户进行调查。工作主要是提出某些具体问题,由需求调研人员,以问卷或口头问答方式,对客户进行调研。另外,公司经验丰富的客服人员和市场人员,也是非常重要的需求来源之一。
本系统的客户群主要为国家省市下属质检单位,最终受众年龄从年轻到较高龄都有。对于普通国家机关人员,一般对计算机系统和网络不够熟悉,计算机环境一般,甚至比较差,少有配置优良的环境。在这种环境下,用户对计算机使用一般没有使用倾向,大多更适应手工操作。对本系统的前代使用,最主要意见是使用困难,不方便。
还有其他具体调查反馈,如用户基本不使用鼠标右键,年龄较大的用户难以看清密集的较小文字等等。
3.界面设计原则
在概要设计阶段,根据需求阶段的调研结果,我整理了系统界面设计的基本原则。因为在代码开发阶段,很多时候界面的具体制作是由开发人员直接写代码,因此必须确定一定的原则和规范,以保证系统界面的统一。
一般适用原则
·简单明了原则:用户的操作要尽可能以最直接最形象最易于理解的方式呈现在用户面前。对操作接口,直接点击高于右键操作,文字表示高于图标示意,尽可能的符合用户对类似系统的识别习惯。
·方便使用原则:符合用户习惯为方便使用的第一原则。其它还包括,实现目标功能的最少操作数原则,鼠标最短距离移动原则等。
·用户导向原则:为了方便用户尽快熟悉系统,简化操作,应该尽可能的提供向导性质的操作流程。
实时帮助原则:用户需要能随时响应问题的用户帮助。
·提供高级自定义功能:为熟悉计算机及软件系统的高级用户设置自定义功能,可以对已经确定的常规操作以及系统的方方面面进行符合自身习惯的自定义设置。包括常规操作、界面排版、界面样式等种种自定义。
·界面色彩要求:计算机屏幕的发光成像和普通视觉成像有很大的不同,应该注意这种差别作出恰当的色彩搭配。对于需用户长时间使用的系统,应当使用户在较长时间使用后不至于过于感到视觉疲劳为宜。例如轻松的淡彩为主配色,灰色系为主配色等等。切忌色彩过多,花哨艳丽,严重妨碍用户视觉交互。
·界面平面版式要求:系统样式排版整齐划一,尽可能划分不同的功能区域于固定位置,方便用户导航使用;排版不宜过于密集,避免产生疲劳感。
B/S构架适用原则
·页面最小:由于Web的网络特性,尽可能减小单页面加载量,降低图片文件大小和数量,加快加载速度,方便用户体验。
·屏幕适应:Web界面需要适应不同用户屏幕大小。
·浏览器兼容:需要适应不同浏览器浏览效果,虽然目前可不考虑不同浏览器差别,但仍需考虑IE浏览器版本差异带来的客户端不同效果。
·最少垂直滚动:尽可能减少垂直方向滚动,尽可能不超过两屏。
·禁止水平滚动:由于将导致非常恶劣的客户体验,尽可能禁止浏览器水平滚动操作。
·避免隐藏(右键)操作:浏览器的右键操作不符合用户体验习惯,尽可能避免。
本系统应用原则
·瘦客户端要求:由于客户应用环境配置大多较低,除服务器可单独配置较灵活外,应该保证瘦客户端,使用户容易使用。例如尽量不要使用复杂的JS脚本和HTC组件,不要在客户端使用IE整合XML/XSLT等等。
·大数据量表格的水平扩展要求:本系统中存在大数据量的列表,需要较大的交互界面支持,为避免水平滚动,应尽可能获取大的屏幕水平空间。
·桌面面板导航简化操作:为了实现方便简捷的用户操作,应该保证用户绝大多数操作可通过首页桌面面板的导航来实现。
·用户自适应定义:提供较多的可订制功能,尤其对桌面面板提供强大的定制功能;使用户能够将最常用的功能定义到桌面面板,每次登录即可直接使用,简化用户操作。
·用户常用操作记录定义:对某些需定义操作的功能如查询、搜索等,提供系统自动记忆和客户定制功能,系统可自动记忆用户前1~3次操作,或者用户可自定义操作记录,方便以后使用。
·大数据量表格的水平扩展要求:本系统中存在大数据量的列表,需要较大的交互界面支持,为避免水平滚动,应尽可能获取大的屏幕水平空间。
4.系统分析
在概要设计过程中,界面设计人员需要浏览需求分析报告,了解用户的工作流程,和整个系统功能,再根据这些原始需求功能,归纳整理分析,并针对用户交互设计需要,提出意见,参与系统设计。
其中包括对原始功能的分类归纳,提出系统交互需要的新功能,对用户功能实现的优先级进行定义等等。
例如,提出用户自定义快捷面板功能,常用操作自动记录功能等,需要在概要设计时尽早提出,以方便作好系统规划。
另外,需要对整个系统中的常见功能有比较清晰的了解,归纳整个系统界面交互中常见的交互形式,例如在本系统中就包括列表、查询、搜索、填写表单、项目分解、项目选择、审批、报告等等;只有清晰的了解整个系统需求,才能较好的把握整个界面设计的统一性。当然,这也和界面设计人员的经验有很大关系。
4.主界面设计
设计主界面,确定系统基本风格,是概要设计中的工作之一。首页主界面的主要实现功能是导航,它要达到的目的,是尽可能使用户仅通过首页面板就可以完成所有常规任务。
该主界面包含以下部分
用户信息区域 显示当前用户信息
用户导航区域 用户页面导航,收藏功能可以将当前功能页面收藏到快捷功能面板
用户导航功能树 用户页面导航,收藏功能可以将当前功能页面收藏到快捷功能面板
功能树隐藏 可水平扩展页面空间
桌面面板用户帮助导航 用户登录时可根据用户类型,自动加载相关使用帮助或导航。
主任务通知区域 通知用户系统业务流程中的待办事宜;通知用户办公系统相关信息。
用户快捷面板 为了能方便快捷的访问系统功能,避免每次访问树形菜单较深级次的繁琐操作,用户可将通过导航栏中的收藏按钮,将当前页面收藏到该面板中;该面板出现在所有业务页面,用户可以随时访问自己定义的功能页面。该导航在首页以面板形式出现,在其他页面以下拉菜单形式出现。
用户自定义功能区域 用户可将相关查询搜索等功能定义到首页面板,例如:最新完成报告察看、报告搜索、检验流程察看等等
5.典型界面
以下是系统中几个比较典型的界面模型。
在整个系统界面的设计过程中,需要注意整个系统的统一,设计风格要一致,界面中的交互元素,从色彩、样式到排版方式、具体位置都要具备延续性,这样才能使用户尽快习惯整个系统操作。
6.典型交互模式
界面交互中,根据功能不同,有不同的交互方式。应该尽量提取抽象,尽可能减少交互模式的种类,或者把交互方式尽可能设计的类似,以方便用户快速熟悉系统。
7.Demo开发
Demo是详细设计阶段的重要成果之一,在对系统进行详细的分析设计之后,开发出界面Demo原型,主要作用是提供给合作客户,在基本功能、系统组成和易用性上进行测试。
本系统的Demo主要包括界面的设计制作,和部分客户端表现层脚本的开发。为了在后面的实际业务开发中尽可能获得重用,Demo的制作在页面规范、CSS样式定义和JS脚本编写方面都严格遵循了系统开发规范,并在以后的代码编写工作中严格执行。
本系统整个Demo包括大约50个页面,耗时月3周。
在后续的开发过程中,仍然要严格控制整个开发过程,保证整个系统界面的统一,并随时维护更新系统界面的设计。
前端应该学习HTML javascript css 能够制造简单的前端页面满足自己的工作需求
后端应该学习asp.net or jsp or php 任一一个都行,主要是数据处理交互
数据库ORACLE or Sqlserver 任一一个都行,以SQL语句为主
为什么要学这么多呢,因为初级你什么都学的不深不精,和WEB相关的什么技术都要知道点
相信你接触过的某一部分的专家都其他部分都能和你侃个半天,技术是互通的,全面了解所有WEB技术对你以后专攻某一技术是必要条件
中级发展(工作期)
工作期公司不可能要求所有WEB工作都你做,你可能只负责一部分
这就要结合公司安排、你个人兴趣、命啊……来选择你主要从事的WEB工作
这时候,你要深入研究你主攻的内容,其他内容要多看新闻,了解流行及新兴技术
主攻内容,闭着眼睛都能写
其他技术,上网一查帮助资料也能搞出来
现在你是个熟练工了,工资4000-8000不等
高级发展(研究期)
公司不会给你太多的学习机会,有时提供的培训也不一定符合你的要求
这时你要留心你从事的WEB项目细分(手机应用啊、地图应用啊、门户应用啊、SNS啦)
研究他们的系统架构、服务器部署、海量数据处理、效率解决方案……
还有要了解商业上的东西,能够分析其用户、市场、盈利模式,能够做出短期预测最好。