第五部分-编程建议

代码是否干净

一个东西干不干净,不同的人会有不同的说法。
拿衣服来说,通常人们觉得衣服洗白洗净就算干净了,但是对于医生来说,可能要无菌才叫干净。
其实他们的说法都没有错,因为用途不同,才导致的切入点不同。
那么回到代码上面,为了写出健壮的软件系统,我们需要定义出什么是干净
不同的程序员对干净有不同的看法
文中对程序员分了几个境界等级:
1)无法分辨代码干净与否
2)对代码只有肤浅认识,可能仅局限于代码风格
3)一些很隐蔽的语法层面的BUG,和逻辑错误,比如

char* a, b; //看上去声明了2个char指针,其实只有a是指针
# 这里的result默认值不会每次调用的时候重新生成
def append(num, result=[]):
result.append(num)

4) 清晰易懂不易出错,如良好的代码结构与设计模式等。

第四种境界的一些方法:

通用规则:

  1. 尽量将函数名写得简短 //备注:保证可读性的前提下
  2. 变量声明的位置离使用的位置越近越好 //主要是为了避免变量类型或用途混淆问题
  3. 不要使用宏去创建你自己的编程语言 //代码生成器?生成的代码修改起来非常不方便,其实可以通过封装来解决
  4. 不要使用goto
  5. 不要让一个代码块超过一个屏幕 //显示器横放!30寸以下!

匈牙利命名法:

  1. 应用型:
    文中所推崇的,变量名前加种类(kind)前缀
    前缀如s=安全型字符串,us=非安全字符串
  2. 系统型
    被广泛吐槽,几乎没什么用,前缀就是变量type,如sz=字符串,int=整数
    //windows的SDK好像几乎是这种风格,什么szName, lpszClassName,dwSize

异常处理:

  1. 基于错误码:容易区分写的是否干净
  2. 基于异常:很难区分是否干净
    //文中观点可能是从代码Review角度来看待异常处理的,对此看法还是持保留态度,也可能我的水平还没到达那种程度。
    文中对异常处理的劝退文(翻译):https://www.cnblogs.com/majianguo/p/6770192.html

2 thoughts on “第五部分-编程建议”

  1. Hey there 🙂

    Your wordpress site is very sleek – hope you don’t
    mind me asking what theme you’re using? (and don’t mind if
    I steal it? :P)

    I just launched my site –also built in wordpress like yours–
    but the theme slows (!) the site down quite a bit.

    In case you have a minute, you can find it by searching for "royal cbd" on Google (would appreciate
    any feedback) – it’s still in the works.

    Keep up the good work– and hope you all take care of yourself
    during the coronavirus scare!

  2. I’m impressed, I have to admit. Seldom do I come across a blog that’s both
    educative and entertaining, and let me tell you, you’ve hit
    the nail on the head. The issue is something which too few folks
    are speaking intelligently about. I’m very happy I found
    this during my hunt for something concerning
    this.

Justin进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注