精华内容
下载资源
问答
  • 隐喻

    2018-11-27 19:35:16
    创造往往源于想象力,写代码也是如此,计算机科学的语言可能是所有科学领域中最丰富的。通过编程可以创造出你想要的世界,只要你够能想象。

    隐喻的重要性

    我之前认为事物的逻辑性,只有对错之分,但是读完这一节带给我许多新的思考,咱们一起来品读。

    重要概念的产生往往通过类比产生,比如将分子类比为保龄球一样的小球;光和声音的传播类比等等。这些类比有好有坏,但没有绝对的对错之分,其实看待任何事物不能只是狭隘地区分对错,而应该从多个角度深入地去看。

    模型之所以容易被接受,是因为它生动形象,我们从认知上来讲最容易接受图像信息,就是因为直观,生动形象。模型有好有坏,而且对于同一事物的不同角度也能分出不同的模型,也能有不同的理解。

    比如一个悬在铁链上来回晃动的大石头。在 Galileo 之前,Aristotelian 看到它时想到的是重物必然要从高处落下来停在低处,他认为石头是在克服阻力下落,而当 Galileo 看到同一现象时,他认为自己看到了一个单摆,他认为石头是在不断地重复同一运动。

    1973年的图灵奖颁奖演说中,Charles Bachman 叙述了从地心说向日心说转移的过程。Bachman 把天文学中从地心说向日心说的转变,与 70 年代前期在计算机编程中的变化作了个对比。在当时,数据处理正从以计算机为中心向以数据库为中心进行转变。Bachman 指出,在旧的处理模式中,数据被当成是一个连续流过计算机的卡片流(以计算机为中心);而在新的模式中,数据好比是一个水池,而计算机则偶尔涉足其中(以数据库为中心)。

    旧理论一旦被抛弃就很难再捡起来,具有讽刺意味的是,旧理论的相信者认为新理论荒唐可笑,就像我们今天看旧理论一样。

    当然我们不能一味地评判对错,科学史并不是由一系列从“错误”模型到“正确”模型开关组成的,而是逐渐由“坏”模型变为“较好”的模型,从包含面较窄到包含面较宽,从覆盖领域较少到覆盖领域较多。

    事实上很多被替代的旧理论还在发挥作用,像数学理论、基础力学等。

    在软件科学中,拥有的是大量相互矛盾的模型,对于模型的理解决定了对于软件开发的理解。

    使用软件隐喻

    隐喻对于软件的作用更像是灯塔,给人以启发性的思考。

    公式是一套规则,你的所有行动必须在公式的限定下进行,而启发往往与运气相关,更具有趣味性和未知性。公式与启发的区别是微妙的,他们之间的主要区别是:公式直接指令,而启发会告诉你如何找到这些指令,至少你知道去哪里寻找。

    编程中最富于挑战性的问题便是将问题概念化,编程中许多错误往往都是概念性错误,因为每个程序在概念上都是独特的,所以创立一套可以指导每一个问题的规则是非常困难,甚至是不可能的。这样,从总体上知道该如何解决问题,便几乎和知道某一特定问题的答案一样重要了。

    你是怎样使用软件隐喻的呢?应该用它来帮助你获得关于编程过程的内在理解,利用它们来帮助你考虑编程活动,想象解决问题的更好办法。

    常用的软件隐喻

    Writing Code(写代码)

    开发软件最原始的隐喻出自“写代码”一词。这个写的隐喻说明开发一个程序就像随便写封信,你准备好纸、笔和墨水,坐下从头写到尾就算完成了。这不需要任何正式计划,你只是把你要说的都写出来。

    Jon Beitle 说,你应该准备好一杯白兰地,一支上等雪茄,与你喜欢的猎狗一同坐在火边,像一个优秀小说家一样享受一次“自由编程”。

    在一些小问题中,写代码隐喻可以充分描述他们,但是随着软件的发展,开发一个主要系统的投资已经相当于建一幢十层办公楼或造一艘远洋客轮的费用了。这种写代码隐喻已经不适用了。

    Growing a System(软件播种)

    与刻板的写隐喻相反,一些软件开发者认为你应该把创建软件当作播种或培植庄稼。你设计一小部分,编码一小部分,测试一小部分,然后在某个时候把它加到系统上,通过小步走,你减小了每次可能遇到的错误。

    但是软件种植隐喻的弱点是你对于软件开发失去了直接控制。你在春天播种代码,最后在秋天收获一大堆代码。所以不合适

    System Accretion(系统积累)

    有时候,人们在谈论种植软件而事实上他们指的是软件积累。这两个隐喻是密切联系的,但是软件积累更深刻一些。“积累”这个词,含有通过外加或吸收,缓慢生长的意思,就像河蚌逐渐分泌酸钙形成珍珠一样。在地质学上,水中悬浮物逐渐沉积形成陆地的过程也与此相似。

    另外一个与积累密切相联的词是增量。增量设计、构造、测试是软件开发的最强有力工具之一。“增量”一词在设计者心目中还远未达到“结构化”或“面向对象设计”等的地位,所以迄今为止也没有一本关于这方面的论述,这实在是令人遗憾的,因为这种书中所收集的技术将具有极大的潜力。

    在增量开发中,你首先设计系统可以运行的最简单版本。不需要输入输出,只需要成为一个坚实的骨架结构,以便承受在其之上的系统。就像河蚌刚开始产生珍珠的核——一粒沙子。

    当你搭好骨架后,逐渐地往上添加肌肉和皮肤。你把每一个伪子程序变成真正的子程序。

    增量隐喻的力量在于:作为一个隐喻,它并没有过分作出许诺,它不像耕种隐喻那样容易被错误延伸。河蚌育珍珠的联想对理解增量发展法或积累法有很大帮助。

    Building Software(创建软件)

    “建造”一词的想象比“写”或者“种植’软件的想象更为贴切,它与“增量”软件的想法是基本一致的。建造隐喻暗示了许多诸如计划、准备、执行等工作阶段。如果你仔细研究这个隐喻,你还会发现它还暗示着其它许多东西。

    建造不同的事物所需的集合是完全不同的,如建造沙滩上的一个小土堆和建造一个摩天大楼。

    较大的规模和复杂性往往意味着可以产生较大的成果。在修房子的时候,材料可能比较贵,但更大的花费是劳动力。拆掉一面墙并把它移到六英尺之外是很昂贵的,但并不是因为你浪费了许多钉子,而是因为你需要付出劳动。你应该尽可能精心设计,以避免那些本可避免的错误,以降低成本。在开发软件过程中,材料更便宜,然而劳动力成本却更高。改变一个报告的格式,可能与移走一幢房子里的墙壁一样昂贵,因为二者成本的主要部分都是劳动力。

    这两个活动之间还有什么类似之处呢?在建房子中,你不会去建造那些你可以现成买来的东西,比如洗衣机、烘干机,电冰箱、吸尘器等,除非你是个机械迷。同时,你也会去购买已经做好的地毯、门、窗和浴室用品,而不是自己动手建。如果你正在建造一个软件,你也会这样做。你会推广使用高级语言的特点,而不是去编写操作系统一级的代码。你也会利用已经存在的显示控制和数据库处理系统,利用已经通过的子程序。如果样样都自己动手是很不明智的。

    如果你在盖办公楼时工作做得不好,那么在楼内办公的人便可能面临危险。同样,如果你在创建医药、航空电子、空中交通管制、加工控制等软件时工作做得不好,后果也可能是灾难性的。危及别人生命是劣质软件的最可怕后果,但并不是它的唯一危害。如果公司的股东们因为你编写了错误软件而赔钱,那也是令人遗憾的。无论如何,无辜的人们没有义务为你的工作失误而付出代价。

    这两者之间的相似还可以推广到其它方面,这就是为什么建筑物创建隐喻是如此强有力的原因。许多常用的软件词汇来源于建筑学,如:软件体系结构、搭结构架、构造、分割代码、插入子程序等等。

    The Intellectual Toolbox(智能工具箱)

    在过去的十几年中,优秀的软件开发人员们积累了几十条关于开发软件的技术和技巧,有些像咒语般灵验,这些技术不是规则,它们是分析工具。一个优秀的工匠知道用什么样的工具干哪一样工作,而且知道该如何使用它们。程序员也是如此,关于编程你理解得越深入,你的工具箱里的工具也就越多,何时何地该如何运用它们的知识也就越多。

    把方法和技巧当作工具是很有益处的,因为这样可以使我们对其有一个正确的态度。不要把最新的“面向对象设计技术”当作上帝赐予的法宝,它不过是一件在某些场合下有用,而在某些场合下又无用的技术。

    在软件开发中,常常会有人告诉你用一种方法来代替另外一种方法。这实在不幸,如果你仅仅采用一种方法,那你就会把整个世界都当成那个工具的作用对象。你会失去用更适合的方法解决问题的机会。工具箱隐喻有助于我们保留一切方法、技巧、技术等,并在适当的时候使用它们。

    Combing Metaphors(复合隐喻)

    隐喻从本质上来说就是一种启发性思维,各种隐喻之间有相互联系的地方,这就需要你的想象力,去找到合适的隐喻。

    总结

    • 生动形象去联系事物之间的关系
    • 要找到好的隐喻
    • 要充分理解创建软件和智能工具箱隐喻
    展开全文
  • 隐喻的重要

    2008-05-21 18:38:00
    通过把你不太理解的东西和一些你较为理解、且十分类似的东西做比较,你可以对这些不太理解的东西产生更深刻的理解。这种使用隐喻的方法叫做“建模(modeling)”。科学史中到处都可以看到借助隐喻的力量而产生的新...

    要的研发成果常常产自类比(analogy)。通过把你不太理解的东西和一些你较为理解、且十分类似的东西做比较,你可以对这些不太理解的东西产生更深刻的理解。这种使用隐喻的方法叫做“建模(modeling)”。

    科学史中到处都可以看到借助隐喻的力量而产生的新发现。化学家凯库勒曾梦见一条蛇咬着自己的尾巴,醒来后他意识到类似的环状分子结构正好能够解释苯的各种特性。后来的进一步实验证实了他的这一假说(Barbour 1966)。

    气体的分子运动理论则是基于一种所谓的“撞球(billiard-ball)”模型,它把气体分子想象成有质量且彼此之间发生弹性碰撞的小球,就像撞球一样。有很多有用的理论就是基于这个模型提出来的。

    而光的波动理论则主要是在研究光和声音之间相似性的基础上发展起来的。光和声音都有振幅(亮度、响度)、频率(颜色、音调)和其他一些共有属性。对声波理论和光波理论进行对比研究的成果丰富,科学家们甚至付诸大量的努力,想寻找一种能在真空中传播光波的介质(就像声波能在空气介质中传播一样),并将这种介质命名为“以太(ether)”——但他们从未能找到过这种介质。虽然类比催生了丰盛的成果,这一次它却把人们引入了歧途。

    不过总的来说,模型的威力就在于其生动性,让你能够把握整个概念。它能隐隐地暗示各种属性(properties)、关系(relationships)以及需要补充查证的部分(additional areas of inquiry)。不过有时候,当隐喻的概念被过度引申时,模型也会误导人们。当科学家们寻求“以太”的时候,他们就是过度地引申了模型。

    正如你所预期的那样,有些隐喻比其他一些更贴切。一个好的隐喻应该是简单的,它与另一些相关的隐喻联系密切,且能够解释大部分实验证据及其他已观测到的现象。

    来考虑一下这个例子:把一块沉重的石头绑在细绳上让它来回摆动。在伽利略之前,信奉亚里士多德学说的人们看到这个现象时,想到的是重物体自然地从高处坠落,落向低处并静止下来。他们会想,下落的石头遇到了阻碍。而伽利略在看到这个现象的时候却想到了钟摆(pendulum)。他认为,那块石头实际上是在不断地重复着几乎完全相同的运动。

    这两种模型的启发能力是完全不一样的。亚里士多德学派的人将来回摆动的石头看作是正在下落的物体,因此会去观察石头的重量、石头被拉起的高度,以及它到达静止状态时所需要的时间。而在伽利略的钟摆模型中的要素就完全不同了。伽利略观注石头的重量、钟摆的半径、角位移以及每次摆动所花的时间。伽利略之所以能够发现亚里士多德学派的人所不能发现的单摆定律,正是因为他们所用的模型不同,这使得他们看到了不同的现象,提出了不同的问题。

    隐喻在帮助人们更好地理解软件开发问题方面所做的贡献,与它帮助人们更好地理解科学问题所做的贡献一样大。在1973年图灵奖的演讲中,Charles Bachman讲到了由盛行的地心说到日心说的转变。托勒密的地心说模型持续了1400年而没有受到严重挑战,直到1543年哥白尼提出了以太阳为中心的理论,这个理论认为宇宙的中心是太阳而不是地球。这一个认知模型的改变最终帮助人们发现了新的行星,并将月亮重新界定为地球的卫星而不是一颗独立的行星,它也使人们对人类在宇宙中的地位有了一个完全不同的理解。


    Bachman曾经把天文学中托勒密到哥白尼的转变,与20世纪70年代早期计算机编程方面的变化做了比较。当1973Bachman做这个比较时,数据处理正在从“以计算机为中心(computer-centered)”的观点向“以数据库为中心(database-centered)”的观点转变。Bachman指出,过去的数据处理是把所有数据看作流经计算机(flowing through a computer)的连续卡片流(stream of cards)(以计算机为中心的观点),现在则转变为把焦点放到数据池(pool of data)上,而计算机偶尔涉足其中(以数据库为中心的观点)。

    今天,我们已经很难想象还有谁会认为太阳是在绕着地球旋转的。类似地,我们也很难想象程序员还会认为所有的数据应被看作是一个连续卡片流。在这两个例子里,旧的理论被抛弃后,我们都觉得难以置信——居然还有人曾经相信过这些理论?更有意思的是,当人们正在相信旧理论时,也同样会认为新理论是那么地荒谬,正如今天我们对旧理论的看法一样。

    在更好的理论出现之前,天文学家因为墨守地心说而屡屡受阻。在计算机世界里面也有类似的情况,以计算机为中心的观点也让坚持它的计算机科学家步履蹒跚,直到以数据库为中心的理论出现。

    人们常常轻视隐喻的力量。对前面的每一个例子而言,很自然地有人会说:“嗯,恰当的隐喻当然是更有用,但其他隐喻都是错的!”虽然这是一种很自然的反应,实际远非如此简单。科学发展的历史并不是一系列从“错误”的隐喻到“正确”的隐喻的转变,而是一系列从“不太合适”的隐喻到“更好”的隐喻的转变,也是从不是很贴切的隐喻到更贴切的隐喻的转变,还是从在一个方面暗示人们到在另一个方面暗示人们的转变。

    事实上,那些被更好的新模型所替代的旧模型也依然是很有用的。工程师们依旧在使用牛顿力学来解决大部分的工程问题——虽然从理论上说,牛顿力学已经被爱因斯坦的理论所取代。

    相对于其他学科而言,软件开发还是一门很年轻的学科,它还没有成熟到拥有一套标准隐喻的程度。因此必然存在许多或相互补充、或相互抵触的隐喻。某些隐喻相对好一些,而另一些则比较糟糕。你对隐喻有多理解,也就决定了你对软件开发有多理解。 

    展开全文
  • 软件隐喻

    2015-04-14 15:15:30
    1.隐喻或者称为“类比”,“建模”通过把你不太理解的东西和一些你较为理解的,且十分类似的做比较,可以对那些不太理解的东西产生更深刻的理解,这种隐喻的方法叫做“建模”  2.隐喻是一种启发式的方法,告诉我们...
    1.隐喻或者称为“类比”,“建模”通过把你不太理解的东西和一些你较为理解的,且十分类似的做比较,可以对那些不太理解的东西产生更深刻的理解,这种隐喻的方法叫做“建模”
        2.隐喻是一种启发式的方法,告诉我们如何去发现这些引导信息,哪里去寻找,是激发思维灵感。算法是比较严谨的,直接解决问题引导
        3.书中举例四种常见的软件隐喻
          1)书写代码:对写作而言最重要的是原创性,但是对于软件构建来说,努力创造真正的原创成果的开发效率,往往低于专注于重用(reuse)以往项目的一些设计思想,代码以及测试用例的开发效率。这些说明了写作代码还不是一个恰当的的隐喻,容易产生延伸和误导,使用隐喻不能说是错误,而是贴切不贴切之分吧
          2)培植系统:将软件创造想象成类似播种和耕种的情形,每次设计一点,写出一段代码,做一点测试,小步前进。这种增量式的技术很有价值,很不错。可这个隐喻也同样存在弱点,它暗示人们将无法对开发软件的过程和方式进行任何的直接控制。在春天播下代码的种子,秋天收获丰盛的代码。很难将耕作这个隐喻恰当地引申到软件开发中
          3)系统生成:以牡蛎孕育珍珠的历程来形容软件开发。先做出软件系统的一个尽可能简单,能运行的版本,构成一个强壮的骨架,支撑起为来将要开发的真实系统。把真实的数据替换到进去,而形成了真实完整的系统,这也是增量式开发,敏捷编程的基础,作为一个隐喻而言,增量式开发的优势在于未做过度的承诺。

          4)建造软件:建造软件和盖房子相似点很多,从建筑的角度去理解软件开发.在开发软件的时候如果高级语言所提供的功能可以直接使用而不会自己去编写操作系统层次代码,比如软件中用户界面组件和数据库访问组件,建造房子装修的家电也不会自己去制造道理一样,按照房屋建筑所作的这一隐喻,可以向许多其他方向引申这也是隐喻这一方法如此强有力的原因

                建造什么类型的房子--->问题定义、

                 画出详细的蓝图,雇佣一个承包人--->软件的详细设计、
                 开工打地基,搭建房子等--->软件的构建、
                 装修房子美化--->软件优化、
                 监察框架,地基--->软件评审和详查
    展开全文
  • 第二章 隐喻的重要

    2009-05-08 23:05:00
    隐喻可以用苏轼的这首诗来看的话,是对同一个事物以不同角度建模得到的这么一个东西。同样是钟摆,有的人以自由落体的观点看他,有的人会以单摆定律来看。隐喻的使用方法:使用它来提高你对编程问题和编程过程的洞察...

    横看成岭侧成峰,

    远近高低各不同。

    不识庐山真面目,

    只缘生在此山中。

    隐喻可以用苏轼的这首诗来看的话,是对同一个事物以不同角度建模得到的这么一个东西。

    同样是钟摆,有的人以自由落体的观点看他,有的人会以单摆定律来看。

    隐喻的使用方法:使用它来提高你对编程问题和编程过程的洞察力;用它来帮助你思考编程过程的活动,想出更好的做事情的方法。

    软件开发的几种观点

    Write Code 做软件不能像写信一样,写错了随便一扔重新再来,这样的代价太高了,做软件就要一次成功。

    Growing System 一次写一点代码,可以将错误减少到最少,但是开始根本不能对整个过程进行控制,不知道结果会是什么,有可能种的是一棵树,长出来一颗玉米。

    System Accretion 先做一个尽可能简单的但是可以运行的版本,这样先建立起骨架,然后在增骨添肉。

    Building System 类比于建房子,根据你建的是狗窝还是摩天大楼来构建不同系统,根据系统不同做多层次的规划。一旦出错,代价可能如同移动一个摩天大楼的支柱一样,所以其中的规划不容有错。

    不同隐喻之间并不排除的,可以相互组合。结合不同角度来看一座山,会得到这座山的更多资源。

    展开全文
  • 软件隐喻It’s 2020. Technology trends continue to accelerate, thanks to a massive transition to remote work. Meanwhile, people across the world face social and economic uncertainty amid a global ...
  • 不要滥用架构隐喻

    2015-08-28 14:42:37
    无论是与其他队员沟通,还是与最终用户讨论架构全局,找到有形实物作为正要构建的东西隐喻,都是十分诱人的。 开始这很有效,使用一种共同语言,也能让大家都感觉到正确的方向,不断演化前进。随着时间推移,隐喻...
  • 关于隐喻

    2005-11-15 08:54:00
    iPod是人类历史上的一个歹怪的东西,它违反了人们之前对MP3播放器的要求,它既不轻也不小,没有击中人们对随身听的主流需求;但是iPod引 入了另一些优点。。。可以播放很久。。。你都不知道自己想听什么。。。华丽的...
  • 常见的软件隐喻

    2008-07-05 20:14:40
    通过把你不太理解的东西和你较为理解、十分类似的东西进行比较,你可以对这些不太理解的东西产生更深刻的理解。这种使用隐喻的方法叫做“建模”。   2、软件隐喻不会告诉你到哪里去找答案,仅告诉你该如何找到答案...
  • 如果通过隐喻的方式让探索式测试方法理解起来更加直观方便的话,这样应用的难度就会降低。本文参照探索式软件测试(James A.Whittaker著)一书,书中以旅游者要去新的目的地探险隐喻,称为“漫游测试”,来阐述探索...
  • 代码大全之隐喻

    2011-04-16 21:26:00
     最近买了一本代码大全的书,堪称是软件工程中的字典呀,所以决定在每次阅读后写一些自己的读后感,也算是对知识的一种理解与回顾吧,今天看的是隐喻在构建程序的好处。  在构建程序时,有隐喻与算法之...
  • 奶粉的隐喻

    千次阅读 2008-10-13 10:28:00
    而商业机构,他们知道自己的局限,他们没准备给这个社会带来了某种新的可能,其中所谓最成功的、最聪明的,知道如何利用现有的方式,最大的程度推销自己的产品。 于是,经过三十年的发展,中国正呈现出她的新...
  • 移动界面隐喻设计

    2012-02-23 20:51:14
    对于一个产品来说,隐喻设计不仅仅是动画,各种即时状态细节的设计,更多情况下,我们需要按步骤的去完成整个隐喻的系统与结构化设计。他包含以下几项内容: 1.拟物化视觉外观与听觉反馈 隐喻设计的第一...
  • 2.1隐喻的重要 通过把你不太理解的东西和一些你较为理解,且十分类似的东西做比较,你可以对这些不太理解的东西产生更深刻的理解。这种使用隐喻的方法叫“建模”。 2.2如何使用软件隐喻 2.3常见的软件隐喻 ...
  • 软件开发的隐喻

    2008-07-02 20:47:00
    昨晚刻了代码大全的第二章,很有感想,想一下,那一章,真的有很多东西.而最令我赞同的是两个印喻,软件开发向生长,另外一个是软件开发象建房子. 其实我个人以前一直认为,软件工程是工程,建筑也是工程,他们两者之间肯定...
  • 人们都有幻想的能力,这种幻想带有联系,如果你具有类比和推理能力,这将是奇妙的。 我们做一件事情的时候,总是希望一个结果,这个结果我们可以把它设想成种种事物。 用之于软件,我们称之为隐喻。 比如以前我...
  • 理解(不熟悉)的东西产生更深刻的理解,这种使用“隐喻”的方法叫“建模” 。 不是错误的“隐喻”,而是不太合适的隐喻到“更好的”隐喻转变!! 例如旧的模型和新的模型之间的比较。 [b]2,如何使用软件...
  • 重要的科学发现常常来自 analogy(类比),也即把你不太理解的东西和一些你较为理解,且二者之间存在相似东西作比较,由此可对那些你不太理解的东西产生深刻的理解。 这种隐喻的方法,也叫“建模”(mod...
  • 通过把不太理解的东西和一些你较为理解、且十分类似的东西做比较,这样可以对不太理解的东西产生更深刻的理解,这种使用隐喻的方式叫做建模。 隐喻的威力在于其生动,能够让你把握整个概念,暗示各种属性、关系...
  • 隐喻的重要 通过把你不太理解的东西和一些你较为理解的、且十分类似的东西做比较,你能对不太理解的东西产生更深的理解。这种隐喻的方法叫做“建模”。模型的威力在于生动,它能隐隐地暗示各种属性、关系以及...
  • 2.1隐喻的重要 隐喻: 用一种更容易理解的事物来说明一个不太容易被理解的事物(我这样认为) 通过把你不太理解额东西和一些你较为理解、且十分类似的东西作比较,你可以对这些不太理解的东西产生更深刻的理解...
  • 2.1 隐喻的重要  重大发现往往是从类比中产生的。通过把一个你所陌生的事物与你所熟知的事物比较,你会对它有进一步的认识,从而形成你对它的独到的深刻理解,这种隐喻方法被称之为“模型化”。  模型的力量...
  • 第2章 用隐喻来更充分地理解软件开发11 隐喻的重要:引进了一个新概念----建模 通过把你不太理解的东西和一些你较为理解,且十分类似的东西作比较,你可以对这些不太理解的东西产生更深刻的理解。这种是用隐喻的...
  • 早晨一上班就想起了隐喻,不知道是不是我那位找到工作的缘故,世界上有的东西是不可预测的,但又是可以隐隐约约可见的,记得在敏捷软件开改里有 这么一个概念(MetaPhor),又想起我的毕设,不值得一提。我觉得这个...
  • 初看之下有点懵,表示没看懂,功能设计与隐喻有什么关系,一个是软件设计中的东西,一个是文学修辞里的概念。谁要是面试的时候这么问的话我第一反应肯定是真TMD装逼。好吧,搜了搜这玩意儿,原来在互联网应用中早就...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,582
精华内容 1,832
关键字:

性隐喻的东西