扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
第三章:命名
C是个斯巴达式(崇尚简洁风格的)语言,所以你的命名方法也应该如此。与Modula-2和Pascal程序员不同,C程序员不使用ThisVariableIsATemporaryCounter这样可爱的名字。一个C程序员会把一个变量
叫做“tmp”,这样的变量名更容易写,而且理解起来也不算太难。但是_,尽管人人都会对大小写混杂的名字皱眉头,全局变量名则必须如此。管一个全局函数叫“foo”是故意找岔。
全局_变量(只有在_真正_需要时才使用)需要有个描述性强的名字,这点和全局函数一样。如果你有个函数用于对活跃用户进行计数,你应该叫它“count_active_users()”,而不是“cntusr()”。
把函数的类型加入到名字中(所谓的匈牙利命名法)是脑损伤的表现 - 编译器知道类型,能够对它进行检查,这种命名法只会把程序员自己搞晕。难怪微软做了那么多充满bug的程序。 哈哈^_^,有道理,不要作茧自缚。局部_变量应该短小扼要。如果你有个随机的整数循环变量,可能最好叫它“i”。把它叫做“loop_counter”是效率低下的,在不会发生混淆的情况下。类型地,“tmp”可以被用于任何类型的存储临时值的变量。如果你担心混淆你的局部变量,那么你就会有另一个问题,所谓的函数膨胀荷尔蒙失衡综合症,请看下一章。
第四章:函数
函数应该短小而甜美,而且只能做一件事。他们应该只用一两屏幕(我们都知道,ISO/ANSI标准屏幕大小是80x24)就能装下,只做并且做好一件事。
函数的最大长度应该与函数的复杂性和缩进层次成反比。所以,如果你有个只有一个很长(但很简单)的case语句的函数,对许多case做一些很少的操作,那么这个函数长点也没有关系。
但是,如果你有一个复杂的函数,你担心一个中等智力的高一学生可能无法理解,那么你应该更严格地遵守最大长度限制。使用有描述性名字的帮助函数(你可以让编译器in-line这些帮助函数,如果你认为性能很重要的话,而且编译器恐怕会比你做的要好)。
函数的另一个指标是局部变量的数目,局部变量的数目不应超过5-10个,否则一定是哪里有问题了。再设计一下这个函数,把它分解得更小一些。人的大脑一般可以同时跟踪7个不同的东西,超过了7个就会晕菜。虽然你很聪明,不过可能你有时会想理解一下两星期前所写的代码。
第五章:注释
注释是好东西,不过存在过分注释的危险。_永远_不要在注释中解释你的代码是如何工作的:更好的做法是写出工作方式显而易见的代码,解释糟糕的代码是浪费时间。
一般来说,注释应该说明代码在做什么,而不是怎么做。并且,不要把注释加在函数主体中:如果函数太复杂以至于必须对各个部分进行注释,那么你可能要再去读读第四章。你可以加入一些短小的注释来提醒或警告一些聪明(或难看)的做法,但不要太过度。更好的选择是,把注释放在函数头,说明函数在做什么,可能还包括它为什么做。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者