程序员编程序离开不了功能和界面。有的涉及界面多一些,有些涉及少一些,也有一些后台维护的工作甚至不涉及到界面。当前,一些软件公司专业化程度较高,不但设计和编程分开了,甚至界面制作和功能制作也分离开了,设立了专业的美工岗位。但是大多数单位和软件公司还没有出现这种界面和功能的分离。有关功能和界面那个更重要的话题,时常在很多程序员不经意交谈中流露出来。在工作中我也常常面对界面和功能开发安排进行选择。有人的强调功能重要,有人的强调界面重要;我自己有时会强调功能重要,有时也会强调界面重要。到底那个重要?在这里我想谈谈我对两者认识的过程。我想通过看看这个过程,这会对程序员进一步认识功能和界面的关系有所参考。

第一阶段:两者不分

在自己编程初期,真的没有什么界面和功能之分的概念,界面是都靠程序写出来的,总是感到功能和界面是一回事。那个时候的界面大都采用行字符形式,没有控件和图形,只有简单的线条和字符(包括汉字)。例如C语言主要是用move,print来实现的界面的。加上那时候用户对界面没有什么太高的要求,所以,我们根本不把界面当作一回事,只是把界面当作程序的一部分,而且当作一个简单的部分。

第二阶段:功能重于界面

后来,程序的功能慢慢多了起来,系统也越来越大了,用户的界面也多了。但是,当时的重点还是在功能设计和功能实现。项目组的主要精力和人员调配还是放在功能设计和功能实现上,当然界面也开始有人做了,单是没有人专门去做。人们普遍的看法是编程是最有技术的,编界面是很一般的。当时的客户最关心的还是功能实现,主要是看程序能不能实现他的功能要求。

第三阶段:功能与界面并重

再后来,随着windows兴起,各种图形界面运用而生,客户对界面的要求,不仅仅是功能实现,而且有美观、友好、易操作、提示、帮助等方面的要求。人机对话开始形成,界面开始形成了风格,形成了流行。这个时候进行编程,你就会不自觉地把界面当作一个很重要的工作,你不仅要考虑功能能不能实现,而且要考虑你的界面是否能被客户接受,你的界面是否友好。这就迫使你要注重界面设计、迫使你学会欣赏和评价用户界面的好坏。你要花很大精力去用于界面。而由于程序员那时专注于功能设计,对于转变至界面往往感到力不从心,很多人都会借口编程,而不敢碰及界面。但是,界面的重要性从此凸现出来了。

第四阶段:界面重于功能

再再后来,我发现界面很重要,有的甚至比功能很重要。当参加项目介绍的时候,当参加项目评选的时候,用户往往会选择界面美观的、界面友好的项目,尽管另外一个系统功能方面更优。用户往往首先从外表选定自己所爱。有的甚至对PPT的做的好的,给与更多的关注。

就如同人们吃饱了,要娱乐一样。吃可能基本相同,但是娱乐就各不相同了。这个时候娱乐可能就比吃更重要了,而吃,因为有钱了,有了吃的保证就不显得重要了。以前人们是因吃而吃,现在是因娱乐而吃了。功能和界面就如同吃和娱乐。

人们流行这样一种观念:功能大家都是能实现的,但是界面就很难说了。界面反过来决定了功能。界面这种重要地位和作用,很快让界面设计变成了专业,于是有了专业的美工,有了人机交互的概念和行业。

第五阶段:发现界面的本质。

我在反思自己对功能和界面认识过程,为什么有这样转变?这些转变说明了什么问题?记不得是 那一天了,我突然发现这种转变是程序主导者发生了变化,程序由过去的程序员主导已经变成了客户主导了。这就是说,原来我们编写的程序,编写的界面都是由程序员主观进行认可的,程序员是主体;而现在竞争加剧,导致整个社会开始面向的公众,企业面向客户的转变,反映在软件行业其中一个方面就是界面越来越重要。界面不仅仅是用户和计算机之间的接口和桥梁,更是反应了软件制作者对客户一种服务态度。界面的本质是客户。只有面向市场、只有面向客户,树立“以客户为中心”的理念,获得客户对界面对功能的青睐,我们的软件才能销售出去,我们的软件才能被用户所接受和使用,我们的功能才有意义、我们的界面才有意义,我们的程序员才能够生存下去。

我对功能和界面调度不是很硬性的,不是说谁谁更重要。在项目开发初期,我强调的是功能,功能为先,程序员应该先把功能设计出来,界面不要花太多精力,能表意就行了。当功能基本上开发完成后,我就会把主要精力放在界面上,关心界面的风格、关心界面的色彩、关心界面色彩的协调性、关心界面的美学的简明和平衡、关心界面风格的一致性、关心界面中用户可操作性、关心用户操作后的容忍性、关心用户的对意外出错的提示、关心界面向客户提供更多的联机帮助、关心界面向客户提供操作流程的易用性、关心界面使用通用流行的图标、关心界面是否不通过培训就能让用户正确使用等等。

这些方面有些是和功能是无关的,但是有些方面是和功能有关的,好的界面将会使功能更加丰富和合理。

我想寄语程序员的是:程序员要重视界面设计、不要把自己关闭功能编码的小天地内,要通过界面设计,拓宽自己的审美意识、增强自己的客户意识、换位重新审视自己的功能设计、让更多编程以外的知识来丰富自己的编程思想、扩展自己的编程视野,使得自己编程水平有着根本性的提高。

(转自http://www.uml.org.cn/RequirementProject/201107061.asp)

转载于:https://www.cnblogs.com/xiaoyunxiao/archive/2012/03/22/2412053.html

功能和界面哪个更重要相关推荐

  1. python 倒计时功能怎么用print实现_python 实现倒计时功能(gui界面)

    运行效果: 完整源码: ##import library from tkinter import * import time from playsound import playsound ## di ...

  2. 肉肉谈对需求设计的想法--到底是功能驱动界面?还是界面驱动功能?

    所有的软件开发无非都离不开那几个阶段第一步:需求调研分析 第二步:概要设计 第三步:详细设计 第四步:编码 第五步:测试 第六步:软件交付准备 其实对于一个程序员来说,最为关心的当然是CODING,但 ...

  3. python时间倒计时显示屏厂家_python 实现倒计时功能(gui界面)

    运行效果: 完整源码: ##import library from tkinter import * import time from playsound import playsound ## di ...

  4. 4G路由2pro虚拟服务器,【华为 路由2pro路由器使用体验】设置|功能|信号|界面|控制_摘要频道_什么值得买...

    华为 路由2pro路由器使用体验(设置|功能|信号|界面|控制) 插入Micro SIM卡开机. 华为4G路由 2 Pro这款路由的PC端设置还是很简单的,与大多数路由首次安装一样,都有设置向导,依次 ...

  5. APP开发流程实例讲解-儒释道网络电台八天开发全程-功能和界面初步设定

    APP开发流程实例讲解-儒释道网络电台八天开发全程 能和界面初步设定 APP开发流程实例讲解-儒释道网络电台八天开发全程 项目发起 功能和界面初步设定 在Android Studio中完成界面设计 实 ...

  6. 易开发是一款帮助开发人员快速开发的工具,功能包括界面分析,页面信息,加固脱壳,支持 Android9.0

    DeveloperHelper 项目地址:WrBug/DeveloperHelper  简介:?易开发是一款帮助开发人员快速开发的工具,功能包括界面分析,页面信息,加固脱壳,支持 Android9.0 ...

  7. java模拟计算器_java 计算器 (模仿windows自带计算器的功能和界面)

    [java]代码库import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import jav ...

  8. 设计功能和界面测试用例

    1.1 文本框.按钮等控件测试 1.1.1 文本框的测试 如何对文本框进行测试 a,输入正常的字母或数字. b,输入已存在的文件的名称: c,输入超长字符.例如在"名称"框中输入超 ...

  9. 宽度发生变化事件监听_PyQt5(3) :实现登录 事件监听处理 程序逻辑功能和界面分离...

    学习于: 学点编程吧:PyQt5图形界面编程(目录) 最终界面如下: 然后是代码: import sys from PyQt5.QtWidgets import QApplication, QWidg ...

  10. JAVA语言实现计算器小项目(与Windows附件自带计算器的标准版功能、界面相仿)

    文章目录 一.计算器界面 二.已实现功能 三.准备工作和思路搭建 四.代码与注释(已尽力做到条条代码条条注释了) 六.下载 七.写在后面 一.计算器界面 二.已实现功能 BackSpace:实现退格键 ...

最新文章

  1. C++11中default的使用
  2. SQL之 Stuff和For xml path
  3. EasyExcel导入的时候报错Caused by: java.lang.NoClassDefFoundError: org/apache/poi/poifs/filesystem/File
  4. 《四世同堂》金句摘抄(九)
  5. django url 生效_Django基础知识
  6. 对安装好的hadoop集群做个测试
  7. Kafka 副本leader选举
  8. jdk lambda表达式的坑
  9. 分析sql字段_全面解析一条SQL语句执行得很慢的原因有哪些
  10. 获取各城市poi数据
  11. 1147 Heaps (30分)
  12. 计算机无法访问inter,电脑网络提示无Internet访问权限解决办法
  13. ORA-01045: user lacks CREATE SESSION privilege
  14. 均方根值、均方根误差以及标准差的区别
  15. 在 Windows 系统下常用的 bat 脚本分享
  16. CSDN博客——从失望到希望
  17. Python——输出大写英文字母
  18. “浪潮信息龙蜥联合实验室”正式成立!2万+人在线,带你一文读懂MeetUp精彩瞬间
  19. win10退出当前guest用户
  20. 转:C++到底还能做什么? C++的前景分析

热门文章

  1. 为PHP开发搭建环境
  2. 解决Docker for window与VMware虚拟机同时安装,造成虚拟机网络不通以及无法启动问题...
  3. 关于 if __name__ == '__main__' 的理解
  4. CSS选择器详解(转)
  5. Codeforces Round #273 (Div. 2) D. Red-Green Towers DP
  6. 如何合理封装你的轮子、飞机、大炮(以封装OkHttp为例)
  7. HTML中IE条件注释判断语句(!--[if XX IE X]![endif]--)
  8. [Vmware]IP配置方式
  9. VS2008使用技巧及快捷键大全
  10. 【转载】细说 ASP.NET Cache 及其高级用法