zoukankan      html  css  js  c++  java
  • 软件构建过程中的隐喻

          最近刚刚看了"国外程序员推荐:每个程序员都应读的书"博文,就立马买了本《代码大全》拜读,看得不多,但是对第二章《用隐喻来更充分地理解软件开发(Metaphors for a Richer Understanding of Software Development)》颇有感触。

          通过读的这点点内容,我管中窥豹,感觉《代码大全》是一本帮助和促进软件开发人员建立软件构建思想的经典之作。

          其实,隐喻在各个领域都是不可或缺的,它有助于领域人员提高理解力和建立高层概念。对于普遍意义下的个人而言,学习使用隐喻是个人成长的各个阶段都不可或缺的一项本领。人之初,认识的事情十分有限,对于新事物,总是在用以前已经内在化(internalizing)的概念来去对比(或隐喻),从而加快对新事物的理解,并逐渐认清新事物的本质,直至这个新事物变为新的内在化的概念。有些情况下,如果找不到内在的概念去隐喻新事物,那么个人对新事物的认知进程将会比较漫长。简单的例子,在认识狗之后,没有认识狼之前,个人会建立这样的一个隐喻:狼类似于狗,狗就是狼的隐喻,但是二者并不相同,随着认识的加深,个人就会建立两个内在化概念,狗的概念和狼的概念,二者是不同的。

          软件构建中的隐喻重要性不言自明。《代码大全》中对隐喻的阐述更多是指启示,是指导思想,而不是一个具体的实现。隐喻是有意识的,当构建人员碰到领域知识后,会用已有的知识去理解;同时隐喻是无意识的,构建人员可能很少会注意到自己往往一直在做这样的一个类比(隐喻)。通过阅读《代码大全》,可以敦促构建人员有意识的进行隐喻,快速提高理解力,减少不必要的沟通和误解,提高构建效率,真是大有裨益啊!

          隐喻,其实是一个很浅显的道理,浅显但是不简单,需要多多提高!

  • 相关阅读:
    1105 Spiral Matrix (25分)(蛇形填数)
    1104 Sum of Number Segments (20分)(long double)
    1026 Table Tennis (30分)(模拟)
    1091 Acute Stroke (30分)(bfs,连通块个数统计)
    1095 Cars on Campus (30分)(排序)
    1098 Insertion or Heap Sort (25分)(堆排序和插入排序)
    堆以及堆排序详解
    1089 Insert or Merge (25分)
    1088 Rational Arithmetic (20分)(模拟)
    1086 Tree Traversals Again (25分)(树的重构与遍历)
  • 原文地址:https://www.cnblogs.com/junier/p/2417846.html
Copyright © 2011-2022 走看看