KEEP K.I.S.S.

tk's blog

推荐一篇文章

tk posted @ Dec 18, 2013 07:50:53 PM in 业余 with tags 读书 , 1064 阅读

Notes on Programming in C

文章讲述C编程里的一些注意点,涉及命名、风格、数据结构。作者是 Rob Pike

其中关于注释、复杂度、数据驱动以及函数指针这几小节特别值得一读。

简要笔记:

注释

作者倾向于少写注释,只写必要的

  1. 代码清晰,命名良好的代码应该是自解释的
  2. 编译器不会检查注释,不能保证注释是正确的,尤其是代码已经修改而注释没有更正
  3. 注释会打乱代码的排版
  4. 注释用于解释全局变量或类型的用法,介绍不寻常或者重要的子程序,将大量计算划分小节
  5. 避免花哨的注释
  6. 给数据写注释要比算法注释有用的多
  7. 如果代码需要注释来帮助理解,那么应该考虑重写以便于理解

复杂度

作者认为大部分程序写的过于复杂源于不好的设计,但是没有讲设计而是给了6条规则

  1. 避免过早优化
  2. 在没有测定程序运行效率前,不要进行优化
  3. 高级算法在数据规模小的时候会变慢,除非确信数据规模很大,不要使用高级算法。就算 数据规模很大,首先考虑规则2
  4. 高级算法比简单算法更难实现,更容易滋生bug,使用简单算法和简单的数据结构
  5. 数据主导。使用了正确的数据结构,那么算法就很清晰明了
  6. 没有规则 6

总结起来2点:杜绝过早优化,数据主导

包含文件

包含文件不应包含已经被包含的文件

避免编译依赖和物理耦合

PS:这里介绍两个技巧

  1. 前向声明,用于避免引用整个头文件
  2. 不透明指针,在C++中常称作 Pimpl idiom,可以完全接偶接口(头文件)和 实现(源文件),修改实现可不必重新编译其他引用了模块的部分,可以用来保证二进制 兼容性(在制作动态库时很有用)。

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter