当前位置: 首页 > 科技观察

那些开发设计中常见的比喻

时间:2023-03-21 14:48:18 科技观察

设计师/产品经理:“他会出现在众人的视线中,身披金甲圣衣,脚踏七彩祥云,卡卡卡会实现我所有的设计!”设计师同事们聊起了他们眼中的程序员应该是什么样子。大叔:“一个好的程序员不应该三心二意,一开始应该学习多种不同的语言,应该精通一门语言!”小九:“那设计师就只会精通Photoshop、Pixelmater、Sketch、balsamiq等工具中的一种,而不去学习其他的东西?”大叔:“不一样啊,编程语言怎么能和这些工具比,比如Sketch比较适合快速实现一些Hi-Fi高保真原型,Photoshop擅长处理位图,balsamiq用来画一些低保真线框图,这些工具用于不同的情况和需求。”小九:“我觉得跟编程语言一样,需要写后台服务器的时候用Java;想快速写工具脚本用Ruby;想写页面交互用Javascript;用C或者C++当你想写低级高性能代码的时候,每种语言都有自己的特点和使用场景,设计师不应该说只要精通Photoshop或者Sketch就可以不学其他工具,怎能为了一滴水而放弃整个海洋!每一种设计工具都有其独特的魅力,学习中会体会到不一样,熟悉PS的都知道,有一系列的特点,比如Photoshop中的滤镜、蒙版、图层,我们经常先学习工具,顺便学习这些功能,但是这些功能其实比工具本身更具有复用性,现在几乎所有的绘图软件都会有图层功能。对程序员来说是这样,往往从语言入手去了解语言的特点。比如我们学过C++,顺便知道Template;我们知道如何处理Java的异常,我们知道Javascript的闭包,我们知道Scala的Monad,等等。这些特性和思想在编程中的应用往往比语言本身更重要。除了语言,其实还有一些其他的东西是程序员和设计师可以比较的。思维方式在编程世界中,存在三种经典的编程范式:面向过程、面向对象和函数式。面向过程的编程范式,简单来说,就是把一个大的任务拆分成N个步骤,只要从上到下按部就班地执行即可。面向对象就是把程序中的所有概念都看成具体的对象。每个对象都有自己的属性和行为,每个对象都可以完成一些它应该完成的事情。通过对象之间的交互来完成复杂的功能。函数式更侧重于用数学函数的方式进行思考,将现实中的复杂问题转化为各种类型的函数,通过数学思维来解决问题。这是程序员的三种不同思维方式,映射到设计师身上,可以理解为平面设计师习惯的二维思维和工业设计师习惯的三维思维。模式编程界的设计模式是对前人大量经验的总结,是面对具有某些共同特征的问题时在实战中形成的一些最佳实践。在产品设计中,也有一些模式可以遵循。比如现在的提醒功能,经常使用里面有数字的小红点图案。再比如消息通知功能,往往采用消息中心模式。再比如一些常用的组件,比如输入框,在交互中共享自动提示等模式。有了这些模式,无论你是做程序设计还是界面设计,都可以有效降低设计的复杂度。整洁代码-|-人机界面指南大多数时候,我们不是单独工作,而是作为一个团队工作。作为程序员,我可能会阅读和修改团队中任何人的代码。这时候,一套统一的规范就很重要了,《Clean Code》就是这样一套规范,让我们写的代码可读性提高,让团队之间可以互相分享和编辑代码。而作为设计师,也有这么一套规范,比如iOS中的《Human Interface Guidelines》,或者Android中的MaterialDesign。这些规范用于指导我们在进行界面设计时如何选择合适的控件以及它们应该具有什么样的风格,如何在界面上进行合理的布局,在团队中形成共识,让大家在同一个项目中协调工作。***综合以上:程序员和设计师的工作看似差别很大,但其实大家做的事情有很多相似之处。细心体会不同,可以填补之前未知未知的空白,说不定还能为你现在的工作带来一些新的灵感。【本文为专栏作者“ThoughtWorks”原创稿件,微信公众号:Thinkworker,转载请联系原作者】点此查看该作者更多好文