软件构造课程的意义(一):编程规范

引入

软件构造课上我们学了很多编程规范 (无特殊含义,就是代指写代码的注意事项)。

有些规范不遵守会报错,或者出现错误结果,这个我觉得与基础语法并无区别。

还有些规范违反的话,不仅没有提示,反而也能得到正确的结果。比如:

  1. 表示泄露。比如所有字段设置为public,getter函数直接返回mutable属性的引用等等。我验证过了,这是可以的。

  2. 不写规约和测试。显然可以。

还有某些课上没提到过的。

  1. 随意命名,没有使用成套的命名规范,或者混用。

那这些不影响得到正确结果的编程规范有意义吗?我认为分情况讨论。

编程规范的意义

代码自用&&简单程序

我认为这种情况自由选择就好,比如自产自用的简单排序,这种情况只要得到正确结果,越快越好,编程规范随意。

多人协作||复杂程序

多人协作,如果大家遵循同一套规范会省心很多,调用他人的函数/接手他人代码,阅读规约即可,不用阅读其写的代码(老费劲了,最怕看又看不懂,写又不想写),并且这样每一个人为自己写的代码负责,清晰明了(我写的竟然有bug??原来是调用的函数有问题,那不关我事)。

如果想写一个复杂程序,无论是自己写还是多人协作,我觉得都要遵守编程规范,或者约定一组也可以。

场景一:我想调用一个函数,却在想它会不会改变我的参数。

  1. 不遵守编程规范
  • 没写规约->读代码->暴毙。
  • 写了规约,但没提到是否改变参数->还是不知道改变了没->读代码->暴毙。
  1. 遵守编程规范
  • 有规约->注明改变则改变,没注明改变则没改变。

场景二:我想改变一个类,它的影响范围多大?如果没有设置访问权限的意识,那么访问范围是多少便要检查多少代码,并且极有可能访问权限设置全部为public(就是我)。

场景三:变量命名。

  • 命名为a,b,c,阅读时连猜带蒙
  • 命名为pCacheLine,应该是一个指向缓存行的指针。

场景四:debug半天找不到错误在哪,后来发现某处无心的改动导致了其他地方的变动。没错,就是mutable没处理好。

软件构造课程的意义(部分)

我觉得现在的软件构造课程是:Java编程+编程规范+面对对象编程(这个大一真没学)+git。

代码是程序员的语言,编程规范是普适性的社交礼仪。

现在写代码大多是实验+作业,各人独立完成,偶尔看同学的代码,网上的代码,着实不习惯(别人看我的代码大概一样)。代码的摆放,变量的命名,程序内部函数的设计,我觉得都有美丑之分。好的代码看着让人舒服不少。

代码是程序员的工具,编程规范是保护性的使用建议。

虽然编程规范不遵守同样可以得到正确的结果,但书写规约,注意代码简洁,易于理解,复用性高,我觉得很能提高效率,减少bug。不仅是方便别人,也是方便自己。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值