读《代码大全》

        前段时间把《代码大全》略略翻了一遍,网上down的电子书,省了笔书费——当然这是不对的,无论从版权的角度还是从爱护眼睛的角度。英文版的书名为Code Complete,从书的内容来看,我更愿意把书名译作《代码写作攻略大全》。这确实是一本攻略大全,最佳实践大全。书中第2章介绍了软件开发中的“隐喻”。软件开发是相对较新的活动,通过已有的活动来理解软件开发,兴许会更容易而深刻。作者最为认同的隐喻是“建造软件”,以下不妨以下围棋喻之。

        在软件开发中,大量的工作需要严谨的逻辑思维——如写个子程序,写个算法(相当于围棋中的局部计算);而设计则需要发散思维,好比围棋中确定行棋的方向,策略等战略决策。“设计是一个险恶的问题”,而围棋中的战略决策亦充满变数;“设计是个了无章法的过程”,而围棋中的战略决策亦无章法可寻——那些雄奇的构想,鬼知道是怎么出来的。“设计是不确定的”,围棋中不同的战略决策也常常难分优劣。

抱着“实用主义”的程序员也许会觉得“学院派”程序员的种种“最佳实践”是多此一举;我觉得多一些最佳实践并没有坏处——因为在代码中,美与实用是不矛盾的。优雅的代码简洁明了,行云流水,它的价值将体现在后期的维护与扩展中。而“坏味”的代码是潜在的麻烦制造者。围棋中亦有“味道”一词,味道好的棋形静如处子,动若脱兔,蕴藏着潜力;而味道坏的棋形则是行棋的累赘。

你可能感兴趣的:(代码)