代码整洁之道(二)
结构化编程 ,
有些程序员遵循Edsger Dijkstra 的结构化编程规则。Dijkstra 认为,每个函数、函数中的每个代码块都应该有一个入口、一个出口。遵循这些规则,意味着在每个函数中只该有- -个return语句,循环中不能有break或continue语句,而且永永远远不能有任何goto语句。
我们赞成结构化编程的目标和规范,但对于小函数,这些规则助益不大。只有在大函数中,这些规则才会有明显的好处。
所以,只要函数保持短小,偶尔出现的retum、break 或continue语句没有坏处,甚至还比单入单出原则更具有表达力。另外-方面,goto 只在大函数中才有道理,所以应该尽量避免使用。
如何写出这样的函数
写代码和写别的东西很像。在写论文或文章时,你先想什么就写什么,然后再打磨它。初稿也许粗陋无序,你就斟酌推敲,直至达到你心目中的样子。
我写函数时,- -开始都冗长而复杂。有太多缩进和嵌套循环。有过长的参数列表。名称是随意取的,也会有重复的代码。不过我会配上-套单元测试,覆盖每行丑陋的代码。
然后我打磨这些代码,分解函数、修改名称、消除重复。我缩短和重新安置方法。有时我还拆散类。同时保持测试通过。
最后,遵循本章列出的规则,我组装好这些函数。
我并不从一开始就按照规则写函数。我想没人做得到。
是多疑还是去相信
谎言背后的忠心
或许是自己太执迷
命题游戏
沿着他的脚步 呼吸开始变得急促
就算看清了面目 设下埋伏
真相却居无定处
I swear I'll never be with the devil
用尽一生孤独 没有退路的路
你看不到我
眉眼焦灼却不明下落
命运的轮轴
伺机而动 来不及闪躲
沿着他的脚步 呼吸开始变得急促
就算看清了面目 设下埋伏
真相却居无定处
I swear I'll never be with the devil
用尽一生孤独 没有退路的路
你看不到我
眉眼焦灼却不明下落
命运的轮轴
伺机而动 来不及闪躲
你看不到我
眉眼焦灼却不明下落
命运的轮轴
伺机而动 来不及闪躲
黑夜和白昼
你争我夺 真相被蛊惑
心从不退缩
这天堂荒漠 留给孤独的猎手