我被告知并为自己发现,很多开发人员都不擅长UI设计(我不知道这是多么真实),但至少对我来说是真实的。
在Web开发中,如果没有UI设计方面的精湛技能,仅凭良好的代码开发技能是不够的。
因此,对我和像我这样的许多开发人员来说,只有一半的东西(良好的开发技能),除了付钱给设计师之外,我们应该如何完成另一半?
使用经过少量修改的开源Web模板是对此的最佳解决方案,还是有其他选择?
我被告知并为自己发现,很多开发人员都不擅长UI设计(我不知道这是多么真实),但至少对我来说是真实的。
在Web开发中,如果没有UI设计方面的精湛技能,仅凭良好的代码开发技能是不够的。
因此,对我和像我这样的许多开发人员来说,只有一半的东西(良好的开发技能),除了付钱给设计师之外,我们应该如何完成另一半?
使用经过少量修改的开源Web模板是对此的最佳解决方案,还是有其他选择?
Answers:
我是一个也不擅长设计的开发人员。当我在必须进行设计的项目中工作时,我尽最大努力使事情尽可能简单。我采用非常合乎逻辑的方法,并且仅针对用户体验进行设计。我无法使其看起来真正美丽,但可以使它易于使用并且相对悦目。
我已经阅读了其中几本书:http : //www.uxbydesign.org/2009/06/24/20-user-experience-books-you-should-own/,它们确实帮助了我。
编辑该列表上我最喜欢的是“不要让我思考:Web可用性的常识方法”,第二版,史蒂夫·克鲁格(Steve Krug)
(任何东西)设计是各个利益相关者(客户,开发人员,用户)的需求之间的协商。通常,没有任何一个利益相关者处于创建最佳设计的有利位置,因为他们倾向于最了解自己的需求,并将其置于其他利益相关者的需求之上。优秀的设计师可以确定各个利益相关者的需求-常常需要利益相关者自己没有意识到的需求-并提出一种适合所有人的解决方案。
您可能已经看过很多次了。用户通常根据已经熟悉的其他系统来思考如何与系统交互。开发人员主要考虑系统的工作方式。客户通常想要能够解决所有问题的产品,否则他们希望以最低的成本解决一些非常具体的问题。
要成为一名优秀的设计师,您必须学会停止思考如何实现某些东西。相反,您必须专注于其他利益相关者告诉您他们需要和想要的内容,并且您必须能够在两行之间阅读。像开发人员一样,客户和用户通常会想到一些先入为主的解决方案,并且他们倾向于描述该解决方案而不是基本要求。(也就是说,重要的是要意识到有时候客户在告诉您他们真正想要的是什么时就说了他们的意思;如果不确定,请询问。)
从表面上看,UI的美学设计也是一些开发人员遇到的麻烦。我认为部分原因是软件开发人员经常没有接受过美学方面的培训-CS学生可能没有太多时间参加美术课。这也部分是因为我们对事物的工作方式比对事物的外观更感兴趣。我们只是不在乎按钮的角是9像素半径还是10像素半径。这两个因素肯定是相关的。有时,您可以依靠UI框架形式的固定解决方案来克服此问题,并且使用预先设计的组件的优势在于可以将您自己的工作与同一系统上的其他应用程序直观地统一起来。您可以通过阅读,看别人的作品来提高自己的审美能力,并密切注意您过去可能忽略的视觉细节。您还应该尝试理解视觉差异背后的逻辑:方形角按钮的含义不同于圆形按钮吗?如何使用颜色?等等
以下是一些对我有帮助的事情:
记下您喜欢/不喜欢其他软件中的内容。我们是程序员,我们将大部分时间都花在计算机上。尝试并记下您在使用软件时喜欢/讨厌的东西。不管是计算机软件,视频游戏,移动设备等,都只是想让您的眼睛注意方便和易于使用的内容,而不是什么。
寻找一个易于使用的草图绘制工具,为您和您的用户绘制UI。我喜欢使用Balsamiq,因为它快速,简单并且可以免费使用Web版本。
请记住,您不需要寻找专门从事软件设计的人员来帮助您设计某些东西-任何用户都可以。我经常由一些与该项目完全无关的人来做我的草图,因为我知道他们整天都在使用软件,并且可以告诉我某些事情看起来不错还是用户友好的。请记住,它们经常会给您关于做什么的疯狂想法,并且您必须知道什么将仅仅是“很酷”的事情,以及实际上会提高生产力的东西。
随时在/ux//上询问详细问题
老实说,UI设计是完全不同的。开发人员始终会考虑微妙的设计,并且在设计时也不太有创意。我觉得确定的方法是让UI设计使用其他开发人员。尽管这会增加成本,但绝对会帮助您获得更好的结果。
对于一个自己做两件事的人,从来没有真正给出最好的结果。因此,恕我直言,这两个不同方面应分配给两个不同的开发人员。如果使用不同的CMS,建议您对HTML和CSS有一些皮肤和主题开发方面的知识,但是当您需要开发全新的设计时,请咨询UI设计师。
我绝对可以推荐Joel Spolsky的《程序员的用户界面设计》一书。在本书中,他几乎采用了您所寻找的方法:解释为什么UI设计对程序员很重要。对于一些在线相关材料:
UI设计对于许多人来说并不是很自然的事情。但是,我最近通过遵循一些简单的原则而变得更好。
不要害怕,这并不像您想的那么难。
首先对数据结构和引擎建模。创建清晰且与现实世界相对应的模型。显然,这是假定您已花时间了解客户的需求。
现在,用一张纸和一支铅笔坐下来,开始绘制屏幕的逻辑布局。通常,这只是简单地以有组织的方式将您的数据模型呈现给用户。您的目标应该很简单:
一种。模拟将要部署应用程序的环境。例如,如果它是Windows应用程序,则其行为必须与Windows应用程序相似;如果它是Web应用程序,则其行为应类似于流行于您的同类Web应用程序。
b。您的目标是以他们所能预测的方式引导用户遍历数据模型。当用户在您的应用程序中执行某项操作时,它的设计恰到好处,并且功能完全符合他们的预期。
C。这需要时间,这是一个学习曲线,但是任何人都可以做到。
不必担心图形,即按钮,背景等。这时,您的唯一目标是页面的逻辑布局。
您确实需要掌握正在使用的gui lib,无论它是html,gtk,cocoa,android,Windows.Forms还是其他,以便您了解事件处理机制,布局引擎以及检索输入和显示数据。任何开发人员都应该至少能够做到这一点。
让平面设计师从这里接任并没有什么可耻的。但是您至少应该能够通过步骤5。这是整个应用程序工作量的95%。
这是一篇很有帮助的文章,使我从一个贫穷的gui设计师变成了一个更好的gui设计师。
随着HTML的引入,创建一个简单,外观不难看的网站成为一个挑战。尽管您可能有这个概念,但它需要一些技巧,工具,现成的图形和CSS知识才能正确实现。而且,需要使用可用性技术和其他影响设计过程的人为因素来产生清晰的页面。
开发人员大部分时间都在学习复杂的语言,OOP,ORM,SQL,T-SQL等上。他们也很少投资于用于创建网站的工具(大多数都很昂贵)。
结果,许多开发人员无法制作出令人惊叹的网页。我相信,如果您学习所需的工具,那么您也可以创建良好的页面。
了解您在应用程序开发过程中的角色也很重要。您可能会发现,网页设计是一种不错的技能,而不是一项强制性技能。在大型项目中,至少由于上述原因,它不应该是程序员的任务。
我发现此工具是一个很棒的工具,它可以帮助您:
看看它并尝试演示,它真的很好。
仍在网络开发中,如果没有出色的设计技能,那么好的开发技能是不够的
我不知道这句话是否正确,我认为这取决于您的工作地点。
例如,规模较小的公司可能会要求您更加熟练地使用技能,而规模较大的公司可能没有相同的期望,实际上,您可以在设计团队进行设计时将所有时间都花在开发上。
Microsoft实际上已经更新了他们的工具集,以强调开发人员和设计人员之间的清晰区分。他们推出了带有WPF的Expression Blend,这意味着开发人员可以开发软件的功能,而其他人可以为其设计。他们俩都使用不同的工具,都可以同时在项目上工作,但是一个人从事功能,一个人从事设计。
开发人员指定数据点,设计人员将其显示。
您将不得不伪造它并复制其他设计。除了一个或两个对用户有重大好处的功能外,请避免其他任何花哨的事情。遵循一些限制字体,颜色和混乱的基本做法。
不要害怕在UI.stackexchange.com上发布问题
尽管这不是您的专业领域,但我认为研究如何创建UI总是很有趣。如今,大多数网页都是非常动态的,并且了解一些UI技能肯定会在创建组件以及设置它们与页面元素的交互时有所帮助。我来自仅后端开发的背景,我对创建接口涉及多少费用感到惊讶。
我读过一本关于网页设计的特别好书,针对开发人员:
开发人员的网页设计:http : //pragprog.com/book/bhgwad/web-design-for-developers
这是一本易于阅读的书,涉及创建界面时的所有阶段:从简单的草图绘制和原型UI到使用HTML + CSS创建设计。
为了进一步提高您的UI技能,我还建议与Ryan Singer进行PeepCode的最新截屏视频:http ://peepcode.com/products/ryan-singer-ux
我认为了解UX / UI /图形/印刷术的一些基础知识无疑是一项宝贵的工作。当然,您不能总是拥有一支“全面”的专家团队。很多时候人们不得不戴多顶帽子。优秀的开发人员会发现,花时间学习自己领域以外的东西会很有价值,并且应该至少能够认识到设计方面的出色工作。
但是,对于设计师所做的事情,有话要说。开发人员只能在设计领域做很多事情(可以做的比其他更多)。尤其是,通过聘请实际的设计专业人员,大型,面向公众的项目会从狭窄的利基市场中脱颖而出。我不仅是指可以在CSS和html颜色代码之间摇摆的人们。我的意思是那些花了多年时间研究字体的人,他们已经阅读并理解了约瑟夫·阿尔伯(Josef Alber)关于彩色的书,他们可以用新闻纸上的木炭倒成漂亮的草图。这些都是宝贵的技能,可以识别这些技能并将其集中使用的项目在竞争中具有决定性的优势。
就是说,在某些领域,设计师和开发人员可以重叠他们的技能。特别是UX及其子域UI。我建议 ...