博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我心目中的代码三要素
阅读量:4140 次
发布时间:2019-05-25

本文共 1220 字,大约阅读时间需要 4 分钟。

        工作这么长时间了, 几乎每天都在和代码打交道。 看到漂亮的代码, 就有赏心悦目的感觉, 看到蹩脚的代码, 真想把原作者揪出来, 狂扁一顿。 每个人对代码好换的定义不一样, 下面, 以我个人的理解, 谈谈我认为代码中最重要最基本的三个方面, 欢迎大家提出不同的见解。

        第一, 代码要正确。

        这里所谓的正确, 不是数学意义上的百分之百正常, 实际上, 代码也不可能百分之百正确(算法倒是可以百分之百正确)。 我所说的代码正确, 意思是指代码要实现特定的功能。 不能实现特定功能的代码, 是毫无意义的。 这个道理很简单, 你买个手机, 但手机不能开机, 你买个灯泡, 但灯泡不亮, 你自然不爽。 所以实现功能是最重要的, 没有实现功能的代码, 有什么意义?

     

       第二, 代码要有良好的风格。

       写代码干什么?仅仅为了实现功能吗? 我们知道, 软件是一个比较复杂的东西, 复杂的东西就有可能有bug, 所以必然需要维护。 软件开发人员流动性大, 软件也经常变更, 当别人维护或变更已有代码时, 他能轻松地读懂吗? 当你看你三个月之前写的代码的时候, 你能很快知道各个分支的功能吗? 我看未必。 所以, 我要说, 代码需要有良好的风格。 有一句话有一定道理: 代码是写给人看的, 其次才是给机器执行。 看有的人写的代码, 一头雾水, 注释没有注释, if while for 乱嵌套, 多重嵌套, 不懂得利用空格和空行, 变量和函数的命令不注意规范。最后自问自答:什么是良好的风格? 良好的风格就是人能快速看懂代码的意思, 让人看得不难受, 不恶心。

       (补充一下, 代码的注释非常重要, 不仅要让自己明白, 更要让他人明白。 最近我看到几个莫名其妙的分支, 然后就不高兴了好长时间.)

       第三, 代码要健壮。

       这里的健壮性是指程序要有防错处理, 看看优秀的大型程序吧, 很多分支都是在处理异常分支, 并在异常分支中加入日志。 你创建一个函数, 就一定能创建成功吗? 你new一块内存就一定能成功吗? 你往数据库写一个字段, 就能一定成功吗? 你是否还在用不安全的sscanf, sprintf, strcpy, strcat这些垃圾函数? 或许你要说, 我夸张了, 但是, 当大型程序出了问题, 没有对异常分支的处理, 怎能快速定位到问题呢? 如果代码不健壮, 动不动就出问题, 怎能获得用户的信任?  一个句柄泄露,你不在乎, 那用户连续数天开机用你这个东西, 你不担心会死机吗?你new了一块内存, 在异常分支又不去释放它, 那程序要是进入了异常分支怎么办? 所以, 代码要健壮, 尽量抵挡各种恶劣环境。

       其余的, 我就不想扯了。 略不高兴地扯一句, 那些还在实际项目中讨论++i和i++哪个效率更高的人(实际上++i的效率确实高一点点), 我懒得说你。最后, 我补充一句, 为了简便示意, 我博客中的代码,基本上躲到了第一点和第二点, 但没有做到第三点。

转载地址:http://jxrvi.baihongyu.com/

你可能感兴趣的文章
文件上传时生成“日期+随机数”式文件名前缀的Java代码
查看>>
Java代码检查工具Checkstyle常见输出结果
查看>>
北京十大情人分手圣地
查看>>
Android自动关机代码
查看>>
Android中启动其他Activity并返回结果
查看>>
2009年33所高校被暂停或被限制招生
查看>>
GlassFish 部署及应用入门
查看>>
iWatch报错: Authorization request cancled
查看>>
iWatch报错: Authorizationsession time out
查看>>
X-code7 beta error: warning: Is a directory
查看>>
Error: An App ID with identifier "*****" is not avaliable. Please enter a different string.
查看>>
Xcode 报错: Extra argument in call
查看>>
iTunes Connect 上传APP报错: Communication error. please use diagnostic mode to check connectivity.
查看>>
#import <Cocoa/Cocoa.h> 报错 Lexical or Preprocessor Issue 'Cocoa/Cocoa.h' file not found
查看>>
`MQTTClient (~> 0.2.6)` required by `Podfile`
查看>>
X-Code 报错 ld: library not found for -lAFNetworking
查看>>
Bitcode
查看>>
3.5 YOLO9000: Better,Faster,Stronger(YOLO9000:更好,更快,更强)
查看>>
iOS菜鸟学习--如何避免两个按钮同时响应
查看>>
How to access the keys in dictionary in object-c
查看>>