打字猴:1.70049054e+09
1700490540
1700490541
1700490542 这会吸引你的注意力,而且,如果做得有规律,这还会组成你大脑中识别和理解的一个较大模式。读者Dierk Koenig告诉我们他主动花时间以这种方式来“排版”他写的代码。
1700490543
1700490544 新手会立刻开始这样做——毕竟,这是一种很容易遵循的规则。但是高级初学者可能会拒绝,抱怨花时间在代码格式上是一种浪费。精通者和专家则会对格式差的代码发怒,如果难以看到那些他们早已习惯要看见的模式,不论写的代码是什么,他们都会认为很糟糕。
1700490545
1700490546 这些视觉提示有很多形式,比如对齐格式和头部说明块,还包括更细致的形式如方法的大小。一旦你习惯了阅读只有几行代码的小方法,遇到一个非常长的方法你就会认为是错的。
1700490547
1700490548 括号的放置也形成了一种可视化的模式,这也是为什么有人长期执着地争论,一定要坚持在那些使用花括号的语言中遵守一种特定形式的括号位置。他们不是为了争论而争论,而是因为模式匹配影响他们的感知。
1700490549
1700490550 然而,代码中的模式匹配也有不好的一面。看看下面这个用可敬的C语言所编写的经典代码片段:
1700490551
1700490552 if (receivedHeartbeat())
1700490553
1700490554 resetWatchdog();
1700490555
1700490556 else
1700490557
1700490558 notifyPresident();
1700490559
1700490560 launchNukes();
1700490561
1700490562 在这个令人遗憾的例子中,不论receivedHeartbeat()的值是多少,launchNukes()总是会被执行。缩进的代码看起来很舒服,可读性强,但是编译器并不这样认为:else只关联了第一个语句,缩进反而起了误导的作用。排版对感知具有很强的影响——无论是好还是坏。
1700490563
1700490564 适应不同技能层次。
1700490565
1700490566 Accommodate different skill levels.
1700490567
1700490568 请努力使用一致的排版提示来辅助可视化知觉。编译器也许不在意,但是我们的确在意。对下述可能会出现的情况也要理解:如果你处于较高的技术水平上,同时又遭遇到团队里其他人的阻力,要明白他们看待问题的方式肯定和你不同。他们不会自觉地认识到这种价值,因此你必须向他们解释。
1700490569
1700490570 如果你没有看到这些模式的价值,但是团队里的专家们意识到了,那么请遵循他们。记住,这不是一种浪费时间的愚蠢修饰,而是一种重要的交流工具。
1700490571
1700490572 4.5.2 换换脑子
1700490573
1700490574 很多时候你难以看清摆在面前的事情,因为你已经习惯于通过某种特定的方式来看待模式。我们往往会遵循老套子,即陷入特定的思维模式和习惯的思维方式。努力从完全不同的角度看待问题,这是获取洞察力的诀窍。
1700490575
1700490576 车辙和坟墓之间的唯一区别在于尺寸。
1700490577
1700490578 The oniy difference between a rut and a grave is the dimensions.
1700490579
1700490580 举例来说,这里有一道题可能会难倒你(如果你已满六岁):施洗约翰(John the Baptist)和维尼熊(Winnie the Pooh)之间有什么共同点?答案〔37〕不是你通常所想的。好了,这是一个傻傻的玩笑,但是我想说的是,这个完全出人意料的字面答案来源于一种你可能不习惯的情境。
1700490581
1700490582 拥有创造力和问题解决能力的关键在于寻找思考问题的不同方式。不同的关联会强制R型发起不同的搜索,这样新的素材可能立即就会出现。
1700490583
1700490584 把问题倒过来。
1700490585
1700490586 Turn the problem around.
1700490587
1700490588 Dave Thomas在面对难题时,经常会说“倒过来看”。这是一种智力冲撞:使你脱离思维定势,从不同角度思考问题。
1700490589
[ 上一页 ]  [ :1.70049054e+09 ]  [ 下一页 ]