开题阐明观点:
隐喻是个好东西,帮我们理清思路、落到实处。
隐喻是个蜜罐,我们陷进去,忘记了真实的目的。
题中的“桎梏”本身就是一个隐喻,所以先说几句好话。
代码大全中,专门有一章来总结隐喻的优点。
隐喻为分析问题提供一个具体的形象,有利于我们沟通交流,避免对着一堆代码展开形而上的思辩。
优点满满,不再一一展开。
现在,切入正题,我们聊下隐喻的消极因素。
表意偏离,仁者见仁,智者见智。对一个隐喻,每个人的视角不同,理解也不尽相同。你设计个连接类叫螺丝,为此还得意了几天。可实现者脑洞开的有点大,以为螺丝是用来嵌入其他类的通用小部件。
于是,误会产生了。有个成语:买椟还珠。其实这里一个抽象的“Connector”完美解决。
传递风险,上面的问题只造成困惑,可有种隐喻却会产生实质的风险。这点,古人宋玉深有体会。“空穴来风”,必有因。结果被今人理解为无中生有。这么个重要的布尔值,被生生的逆转了含义,这得给系统带来多大风险?
危险导向,设想一个棋牌系统中玩家的概念,手用来摸牌,出牌;眼用来看牌;嘴用来发消息;耳用来收消息;头发用来换发型;衣服用来换装;腿用来换桌;口袋用来装钱;脚用来踢人。。。看上去顺理成章,实则走向过度设计,每个清晰的概念都需要在脑中做个map映射。要疯了。上成语:画蛇添足。
思维约束,其实每个人或多或少都有感受,这里“抛石”也是思维约束,就不多说了,期待就此跟我交流,最后半个成语:“引玉”。