算法的乐趣1.4 算法与代码_算法的乐趣1.4 算法与代码试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > 算法的乐趣 > 1.4 算法与代码

算法的乐趣——1.4 算法与代码

本书讲到的算法都是以计算机程序作为载体展示的,其基本形式就是程序代码。作为一个软件开发人员,你希望看到什么样的代码?是这样的代码: double kg = gScale * 102.1 + 55.3; NotifyModule1(kk); double kl1 = kg / l_mask; NotifyModule2(kl1); double kl2 = kg * 1.25 / l_mask; NotifyModule2(kl2); 还是这样的代码: double globalKerp = GetGlobalKerp(); NotifyGlobalModule(globalKerp); double localKrep = globalKerp / localMask; NotifyLocalModule(localKrep); double localKrepBoost = globalKerp * 1.25 / localMask; NotifyLocalModule(localKrepBoost); 程序员都有一种直觉,那就是能看懂的代码就是好代码。但是“能看懂”是一个非常主观的感觉,同样的代码给不同的人看,能否看懂有着天壤之别。《重构》一书的作者为不好的代码总结了21条“坏味道”规律,希望能够对号入座地判断一下代码中的“坏代码”。但是这21条规律仍然太主观,于是人们又给代码制定了很多量化指标,比如代码注释率(这个指标因为没有意义,已经被很多组织抛弃了)、平均源代码文件长度、平均函数长度、平均代码依赖度、代码嵌套深度、测试用例覆盖度,等等。做这些工作的目的在于人们希望看到漂亮的代码,这不仅仅是主观审美的需要,更是客观上对软件质量的不懈追求。漂亮的代码有助于改善软件的质量,这已经是公认的事实,因为程序员在把他们的代码变得漂亮的过程中,能够通过一些细小却又重要的方式改善代码的质量,这些细小却又重要的方式包括但不限于更好的设计、可测试性和可维护性等方面的方法。 在保证软件行为正确性的基础上,人们都用什么词来形容好的代码呢?好看、漂亮、整洁、优雅、艺术品、像诗一样?我看过很多软件的代码,有开源软件的代码,也有商业软件的代码,好的代码给我的感觉就是以上这些形容词,当然也见过不好的代码,给我的感觉就是“一堆代码”而已。我在写“算法系列”博客专栏的时候,就特别注意这一点,即便别人已经发布过类似的算法实现,我也希望我的算法呈现出来的是完全不一样的代码。设计算法也和设计软件一样,应该是漂亮的代码,如果几百行代码堆在一起,不分主次,关系凌乱,只是最后堆出了一个正确的结果,这不是我所希望的代码,即虐人又虐己。大部分人来看你的博客,应该还是为了看懂吧。在我准备这本书的时候,我把很多算法又重新写了一遍,不仅算法有趣,研究代码也是一种乐趣。如果算法本身很有趣,但是最后的代码实现却是毫无美感的“一堆代码”,那真是太扫兴了。

展开全文

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《算法的乐趣》其他试读目录

• 1.1 什么是算法
• 1.2 程序员必须要会算法吗
• 1.3 算法的乐趣在哪里
• 1.4 算法与代码 [当前]
• 1.5 总结
• 7.1 稳定匹配问题
• 7.2 Gale-Shapley算法的应用实例
• 7.3 有多少稳定匹配
• 7.4 二部图与二分匹配
• 7.5 总结
• 7.6 参考资料