GUI程序员相对于其他程序员是否有不当优势?


23

经理和客户很容易欣赏他们所看到的内容。

我见过许多GUI开发人员,他们是普通的程序员,对设计原理或其他编程习惯知识最少。但是,如果程序员可以创建令人印象深刻的用户界面,这些缺点通常就不会引起人们的注意,特别是对于管理人员和客户而言。如此之多,以至于我认识的许多GUI开发人员都花了数小时来美化GUI,却以编写糟糕的,无法维护的代码为代价。

另一方面,开发API或业务功能或数据库代码(SQL等)的中间层程序员处于劣势,因为没有任何可展示的东西。也许代码审阅者或架构师可能会喜欢代码的优雅,良好的设计,可伸缩性等,但这对外界毫无意义。您的代码可以运行数年而不中断,可能非常易于维护并具有良好的性能,但它从未像光滑的GUI一样引起人们的赞叹。

在我看来,这样做的必然结果是(我知道,对此我会感到不满),GUI程序员编写好的纯净代码的动机更少。

编辑:我在这里必须解释,对于GUI程序员,我不是指成熟的Web / GUI设计人员,而是前端程序员,例如Java-Swing程序员。

社区其他人是否同意?


6
谁必须忍受用户对字体,标签,颜色和四处移动的“愚蠢”要求?善与恶。
JeffO

@Jeff O:非常正确。从来没有用户批评过我为数据结构分配多少内存或要对数据库表的哪些列进行索引的选择。
dan04 2011年

2
必须使用布局(Swing,GWT,HTML,CSS等)是一种折磨,以至于不必处理它是一种优势……
Uri

@ dan04:尝试与高级科学用户合作。他们很高兴使用丑陋的UI,并且会花很多时间来争夺数据库结构(通常是为了保留一些旧的无法索引的内容,因为他们的旧脚本会使用它)。Grr…
Donal Fellows

有点像贝斯手与乐队其他成员之间的区别。他们在后台做了很多导入工作,但是除了其他贝斯手之外,没有人注意到。
戈登

Answers:


21

我想我明白你的意思,但我怀疑还有一个相反的问题要考虑。

本质上,我认为您建议,因为UI是最终用户“面对”应用程序的元素,因此UI开发人员比在应用程序更深层工作的团队成员享有更高的可见性。

当然,我同意可能会有更高的知名度。例如,从事UI元素的开发人员可能会更频繁地与最终用户进行交互(可以说是有充分的理由,因为他们确实专注于人机交互方面)。

但是,我认为即使在出现问题的情况下,更高的可见性也会发挥作用。例如,即使没有,最终用户也很有可能将问题报告为“ GUI问题”。

这可能全部归结为感知,并且成熟的组织应该能够独立于各个团队成员从事应用程序的哪一层来认识各个团队成员的价值观,优点和缺点。一个成熟的组织可能也已经超越了“ UI开发人员”和“业务层开发人员”之类的区别,他们认识到他们都是团队成员,也许拥有不同的专业知识,但总是试图在这些专业知识方面互相教育。


1
并不是大多数公司都会进行用户调查来确定谁是最好的程序员。
JeffO

1
+1。我使用GUI,只要有“问题”,它就会进入我的收件箱。然后,我有责任“证明”问题的根源来自下层。GUI程序员还必须在混乱的用户需求中兼顾那些漂亮的API的“纯度”。
Benjol 2011年

10

对于一个不与程序员打交道的人,我可以自信地说他们会相信这种东西。他们不知道在后台进行的工作量,他们所看到的只是一堆按钮/文本框/菜单/ [插入GUI元素]以及完成按钮启动所需的速度。因此,起初,GUI被人们所喜爱。

如果此人确实与程序员打交道,则情况有所不同。正如您所说,他们会注意到您是否使它具有可伸缩性,易于维护,重写算法以使其更有意义,或者执行任何其他维护类型的任务。这种人会平等地看着所有程序员。

在中间,这取决于您的工作。速度便成为这里的重要因素。如果您可以在记录之前和之后显示处理和存储表格需要多长时间并且有所改善,那么您是平等的。如果您可以显示来自100个客户端的负载下的应用程序,并向他们显示服务器融化,然后向他们显示您的版本,那么一切都很好,就等于。等等。


简而言之,这取决于人和您的工作。


8
正如有人谁刚刚花了5年左右的工作基础的东西(SIP栈)+1 -大多数人不知道自己在做什么,并没有什么特别明显,比其他的东西工作。在管道破裂之前,您如何看待管道?
Frank Shearar 2010年

6

作为我公司的“ UI专家”(负责所有UI开发,而不仅仅是设计的人),我认为您可能会漏掉故事的某些部分。虽然我是负责UI的人,但我也在后端,数据库等上工作。我做到了所有这些(我们是一个小团队)。[C#和ASP.Net WebForms开发]

首先,是的,对于非技术人员而言,欣赏GUI开发人员的工作要容易得多,因为这就是人们所面对的。对于非技术人员,GUI是应用程序。缺点是当出现问题时,GUI也是第一个被指责的人。

其次,对我来说,开发前端要比后端更具挑战性(不包括模糊/复杂的算法)。还有很多需要注意的地方,它是无状态的(我们的应用程序在Web上),浏览器的行为不一致(JavaScript库是天赐之物),等等。我希望这种复杂性的大部分归因于我拥有的框架与(ASP.Net WebForms)一起使用,将来所有困难的事情都不会成为问题。

总体而言,与后端问题相比,我在解决UI问题上遇到了更多困难。


5

我讨厌GUI开发有两个原因,

  1. 我比图形艺术更具逻辑性,因此我的UI总是受苦。
  2. 由于UI并非基于逻辑,因此单元测试几乎不可能以任何含义编写

然而,总的来说,我认为最终用户(而不是项目发起人)会比最终用户(通常是UI专家)对我的代码的欣赏程度更高(对于项目发起人而言) 。


4

为了(也许)扩大@TheLQ的答案,我认为这也取决于“查看者”。

我曾与一些没有编程背景的高层管理者/主管有一些经验。一些人赞赏他们不编程,但了解铬和轮毂盖与引擎和底盘一样重要。

我曾与一些高层管理人员/主管合作,他们不关心UI异常以外的任何指标。甚至在重要的地方说明更多面向UI的开发人员。

恕我直言,我们都知道您无法打磨,而且快速,可靠但丑陋的应用程序将比看起来既好又功能良好的应用程序差得多。这一切都在情人眼中,并且在某种程度上,通过为那些欣赏与您相同的品质的人工作,您有能力(无论您做什么)看到自己的力量。

编辑:我可能会补充说,作为一个对使用低级项目感到更自在的人,当您与UI团队同样努力时,我已经感到厌倦了,在演示中值得称赞的是波兰人,而不是系统“刚刚工作”。但是就像我说的,我知道我的主管知道在所有领域都需要进行这项工作。


3

我认为普遍存在UI开发人员是“初级”开发人员的假设。我只能想到一个案例,我遇到了一个UI专家被认为是高级的人。

就是说,我认为UI比我们应用程序的任何其他部分都要难得多。而且我不是在谈论UX设计,而是在谈论编码。在必须说明数十个(如果不是数百个)或可能的情况的地方,我们还要编码几个其他区域?当您需要弄清楚几十个元素需要发生什么时,仅调整屏幕大小有时会成为一种痛苦。当您有说“我们需要支持800x600”的准则,然后UX设计人员从不使用HD分辨率以外的其他任何功能时,这首先会出现。

因此,如果由于接触更多而获得更多好处,那么他们可能应该得到它。通常,它们在错误的接收端比在良好的接收端更常见。


3

经常有人认为GUI程序员位于程序员链的最底层。将VS中的按钮拖放到表单有多困难?什么,要花一周的时间进行编程?它正在绘制一些条形图。因此,我不感到惊讶的是GUI程序员(本身就是按钮拖动器)也必须编写可怕的代码。

GUI编程确实存在一些独特的挑战。多线程可在数据加载时使GUI保持活动状态。这导致线程安全和正确的代码。性能非常重要。没有人喜欢等待两分钟,直到他们再次获得对应用程序的控制。可重用性也成为一个大问题。如果必须编写十个类似的屏幕,则最好更好地组织代码。这导致更好的代码。当然,创建一个好的GUI本身就是一个挑战。

但是对于某些人来说,这只是将一个按钮拖到您的应用中。就像某些人一样,业务逻辑无非就是“解析消息并将其放入数据库”。


2

我认为他们确实这样做了。也许一流的开发公司是免税的,但其他大多数公司不是。

当您的经理询问您上个月的工作时,很容易显示出很酷的GUI。很难显示出很酷的API。很难。API的凉爽只有通过实际使用才能体现出来-一眼就无法体会到。


1

您可以摆脱内部系统中的各种黑客和捷径。使用GUI时,您没有那种自由。您的内部api可能有不一致之处,您只是希望编码人员能够对其进行处理,因为它很难修复。您无法尝试让客户做同样的事情。因此,从某种意义上讲,必须处理用户可见组件的人员实际上必须遵循更高的标准。


1

我要说的是,原因很简单:iPhone。我曾经与之交谈过的每个人都认为它很棒,因为其光滑的界面,但是我只能想象下面的工作使这一切成为可能。


1

这取决于观众。我与许多财务分析师一起工作,他们关于好的GUI设计的想法是,它具有尽可能多的领域,您可能会陷入一种形式。说真的,我说的是75-100。他们是数据迷,他们总是想要更多。最近,我提高了一些存储过程的性能,这些过程可能需要45秒才能加载(计算从开始计算时间以来的加权平均值)。降低到30秒;我在想,哇,减少三分之一的时间;它应该是我的简历中的订单项。甚至没有人注意到。继续努力,将其提高到15-20。明显的变化。每个人都很高兴。我仍然认为GUI是可恶的,如果我们删除了这个无用的废话,它将在2秒内加载,

因此,如果您想让用户真正爱您,请记住,最好的用户界面根本就是没有界面(我想起了谁曾说过的话)。在想要查看所有这些数据之后,我的分析师意识到他们是进行所有数据输入的人-恐怖。


1

测试应用程序的UI部分是一场噩梦。

周围的每个人都觉得有能力提出建议或提出要求,您应该如何做。

系统正常运行后,即使有人意外地回想起了谁在其中的美德,也没人会记住谁做了什么。

但是,如果看到任何错误(总是会发生某些错误),第一个被定罪的人将是GUI程序员,而用户根本就从未见过其他错误!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.