其实我是个 C 程序员

最近开始修改其他人的 ksh 脚本,边改边庆幸不是跟这些人一起用 C 开发程序。在下虽然现在只写脚本,但是用 C 时养成的习惯已经在脑中根深蒂固,不管看什么程序,最见不得与自己习惯相违背的代码。shell 虽然很灵活,但有些一般性的原则总不能不遵循吧?试举数例:

  1. 函数定义一会 function f 一会 f(),其实两者区别很大,就算没搞清楚,保持一致应该不难吧?
  2. 函数内部变量不加 typeset,到处都是全局变量
  3. 代码缩进风格不一致,空格和 TAB 混用?建议大学程序设计入门改成教 python,先学会写整齐的代码再说。
  4. 变量名字这里大写那里小写,时不时又出来个大小写混合,还好你没听说 camelCase
  5. 重复代码宁愿贴来贴去,也不抽象出一个函数
  6. 函数不加返回值,有返回值的也不检查
  7. 公共函数不加注释,不检查输入参数
  8. 不检查空串,经常出来个 awk syntax error,或者 grep 等在那(因为输入文件名为空)
  9. set -x 不删除就提交了
  10. log 语句太少,阅读 journal 是不够的,出错之后看源码是必需的
  11. 临时输出宁愿重定向到中间文件,而且文件名是个随意的

据说美国人曾抓住一个前苏联高级间谍,审问的几个人故意当着他的面作出各种愚蠢假设和推理,最后间谍听不下去,招了。让一个严谨的程序员抓狂的,莫过于阅读有上面这些类问题的程序。

 1

Tags

Blogroll

Fairy World | STUPiD | 阅微草堂 | ShelleX | 流浪五天