开放式面试问题:功能设计中隐喻的作用?
这个问题选自前段时间微博上一位技术高手所发的开放式问题。初看之下有点懵,表示没看懂,功能设计与隐喻有什么关系,一个是软件设计中的东西,一个是文学修辞里的概念。谁要是面试的时候这么问的话我第一反应肯定是真TMD装逼。好吧,搜了搜这玩意儿,原来在互联网应用中早就有这么个提法了,毕业之后一直做企业应用,发现落后真多!
“隐喻”按照【维基百科】里的解释:用在比较两个好像无关事物,制造的一个修辞的转义。 通常,一个第一个事物可以被描述成作为第二个物体。 以这种方法,第一个对象可能在很容易从第2物体能用来描述。
用在软件设计中,实际上我的理解就是软件产品中的概念以更通俗更易于常人理解的概念表达出来。我们设计出来的软件不是只给自己用的,特别是互联网应用,目标就是要让越来越多的人用你的东西,而在此过程中势必需要降低初次接触者的使用门槛,最好做到别人不需要浏览太多文字,按照网页上所提供的图标、按钮之类形象化的不需要停留思考过长时间的接触而能够很容易达成自己的目的。这点上其实与企业应用还有些区别,因为做企业应用的软件很多概念实际上该行业已有共通的表述(即行业术语),做这一行的软件的人员只需要也必须拥有该行业差不多的行业背景知识即可。互联网应用很多时候是在创造概念,而此时如何给这些概念命名是门学问。这个问题里要达到的最好的状态是提供出易于理解的形象表述,并且让使用者按照自己过往操作同类或相似产品的经验便可以达到目的。
这方面竟然有已经有人写过论文《互联网产品中隐喻表达的设计研究》,虽然整个看下来有价值的信息其实没多少,抽去八股式的废话、概念之后发现原来等于啥都没说,以前一直这么干的,只不过没怎么总结出来罢了。
写到这儿才想起来,其实这个在《领域驱动设计》那本书里面早就提到过了。说起来很简单,windows里面的文件夹用黄色的文件夹图标来显示就是一个很好的隐喻,当年刚学计算机时一看这玩意儿就知道,再点击一下,果然那些要的文件如你预期一般展现在屏幕上了。
当然,那种一套系统通过自造的概念能够引进大量用户的传奇故事我没见过,这方面得承认,我们的IT水平其实只是在拷贝层次,绝大部分都是国外已经兴起了一个什么东西,咱搬过来,本地化一下,翻译上能追求个“信达雅”罕见了。
扯了这么半天,标题中的这个问题其实没有什么答案,至少就我目前的精力没有碰到过几个可以值得一说的故事。我承认,隐喻在用户操作、功能设计甚至是编码层面(比如Coder会对某个类、某个变量起什么名字抓耳挠腮)的特殊意义。但能说的也仅止于此,已做、在做、能做原创性的事情越多,这个问题的答案才会越丰富。
相关推荐
- 声明式设计(Declarative Design):强调表达设计的意图,而非实现细节。 第四部分:上下文映射 - 上下文映射(Context Mapping):在战略设计阶段,用来表达不同上下文之间的关系,有助于理解整个系统的宏观结构...
- **软件开发中的作用**:通过元认知,开发者可以更好地理解问题、评估解决方案的有效性,并进行自我反思。 ##### 2.2 常见的软件开发隐喻 - **建筑隐喻**:将软件开发比作建筑设计和施工过程。 - **农业隐喻**:...
3. 系统隐喻:用简单易懂的比喻帮助所有团队成员理解系统。 4. 简单设计:仅设计当前所需功能,避免过度设计。 5. 重构:持续优化设计,保持代码简洁。 6. 单元测试:先写测试,后写代码,确保代码正确性。 7. 结对...
尽管XP本身不特别强调传统的体系结构设计,但其核心实践中蕴含了若干机制,确保了软件体系结构的有效性和适应性。 #### 一、探究(Spike) **定义与目的** 探究是一种快速的、抛弃式的实验方法,用于探索可能的技术...
与之相反的是开放式结构,后者允许更多的自由和多样性。 3. 文学语言:文学批判语言的科学性体现在精确的术语和系统的构建,这有助于深入分析文学作品的内涵和技巧。 4. 杂语与互文性:在文学文本中,一种语言内含...
交通和活动分析图展示了广场如何通过精心布局,促进人流互动和活动发生,而广场中心的开放式设计,如拱门和错落的“柱廊”,进一步增强了公众参与度。 【设计元素】广场中的元素融合了后现代主义的“拼贴”手法,...
在IT行业中,图标是一种至关重要的视觉元素,它们用于传达各种功能、状态或信息,尤其是在用户界面(UI)设计中。"上传图标"是常见的图标类型之一,它在各种应用程序和网站上广泛使用,用于指示用户可以将文件或数据...
在【描述】中提到的“Zeon-MS-05和MS-05 Zaku”,可能是对这个库的一个隐喻,意味着Zeon MS-05具有类似MS-05 Zaku那样的多功能性和适应性。在实际的开发环境中,这可能意味着Zeon MS-05不仅可以用于传统的Web应用,...
在描述中,“仿佛数以百万计的太空酒吧突然在恐怖中呼喊,然后突然沉默了下来”,这句话可能是一种隐喻,暗示着在Go语言的世界里,开发者们可能在面对复杂的编程问题时,通过使用Go语言找到了解决方案,使得原本混乱...
6. 响应式设计:由于现代用户常常通过各种设备访问网站,"Spider Eyeballs" 应该采用了响应式设计,确保网站在不同屏幕尺寸下都能良好显示。 为了充分利用 "Spider Eyeballs",用户需要有一定的技术背景,比如HTML...
Material Design是一种以材料隐喻为基础的视觉设计系统,强调层次感、动画效果和响应式交互,使得用户界面更为生动且易于使用。 在MaterialAdmin中,开发者可以找到一系列预构建的页面和组件,这些都经过精心设计和...
4. **图形用户界面(GUI)设计**:如果项目涉及到交互式应用,可能会利用MATLAB的GUI工具箱创建用户友好的界面。 5. **算法实现**:"睡美人"的主题可能意味着项目包含某种唤醒机制或状态切换的算法,比如定时任务、...
4. **响应式设计**:考虑到不同设备的用户访问,模板应具有响应式布局,确保在手机、平板电脑和桌面电脑上都能提供良好的用户体验。 5. **交互效果**:网页可能包含了各种特效,如鼠标悬停效果、滚动动画等,这些都...