把你的代码写得漂亮些
来源:互联网 发布:淘宝大学开网店视频 编辑:程序博客网 时间:2024/05/01 06:18
代码规范,是一个老生常谈的问题了,网络上也有大量关于规范的文章。本文希望抛开规范的条条框框,从根本上谈一下如何写出自然的漂亮的代码。因为漂亮的代码,就是规范的代码。
那么,怎样才能写出漂亮的代码呢?窃以为,看着顺眼,用着顺手,追求完美,避免技巧。
看着顺眼
这一点,与审美观搭一点边。作为一名理科生,不必去发挥想象力,只要做到整齐划一,层次、段落分明就行了。写代码的时候要随时注意,你的代码看着顺眼吗?哪里别扭就调整一下。对于规范中规定的哪里该缩进,哪里需要空行,一行写多少个字母等等,都不用记住。你要做的仅仅是把你的代码写得看着顺眼,整齐划一,做到这点你就成功了。
举一反三,一个文件写完之后,看一下函数列表,可以用source insight, eclipse等工具的函数列表。看看它们是否整齐划一。
函数列表 文件列表
有了自己的经验见解之后,再回过头来看规范,则会有一种豁然开朗的感觉。看规范,就相当于看画家的精美画作,也是对代码审美观的一个提高。
用着顺手
这里的顺手,就不是写的时候了,关键体现在用起来方便快捷。
先说目录。所有文件堆在一个目录中,显然会杂乱无章,想找文件时也很麻烦。如果把它们按功能分到不同的目录中,是不就清楚一些了呢?
再说函数名。函数名要体现其意义,这样才能在调用时更快的找到它。给它加上模块前缀,则更容易与其它模块的万千函数区分。拿码流管理来说,我们将其模块名命名为mstream,然后所有相关的函数,都以mstream_开头。当使用这里边的函数时,直接写上mstream_,然后编辑器(比如eclipse)就会有提示,相关的函数一目了然,这就带来了使用上的方便。反之,假设函数名为getparam,不说调用时不好查,重命名的风险也非常高。
写到这里忽然发现,从目录到具体某一行代码,更像是一个树形结构。每一个函数,都是树的叶结点,而目录、文件则是其枝干。这棵树长的越好看,用起来就越顺手。
追求完美
两行代码的缩进看起来是一样的,但用鼠标选中一下,发现一行前边是8个空格,一行是两个Tab。
它们完美吗?
No!
把它们改成一样的吧。无论你喜欢的是空格还是tab。这没什么实际意义,但是,这代表了一种追求完美的苛刻态度。
当用svn提交修改的时候,当然是先对比与之前的修改有何差异了。如果新的代码因为调试比原来多了一条空行,是否要提交呢?
不!
将它改回原来的样子。因为,那会增加一份代码的修改。以后如果比较代码,你就要多花5秒钟来检查这个文件的修改。
Cmake工具生成的makefile,在编译时,是整齐的一行一个文件的绿色。当有Warning发生时,就会因Warning提示打乱这份美丽。搞定这个warning吧。
文件中,所有函数都叫mstream_xxx,忽然有一个成了mstreamSetParam。它破坏了完美,那就把它改成mstream_set_param吧。
避免技巧
技巧,意味着晦涩难懂,也就意味着风险。所以,如果不是特别关键的代码,请把它写得像白话文一样直白。
如果,你在调试一段代码时,被其中的逻辑绕的五迷三道,删了它重写吧。如果你仍然坚持尝试搞清逻辑,修正这代码,60%的可能会引起新问题。90%的可能在不远的将来会再冒出一个BUG来。
- 把你的代码写得漂亮些
- 要写漂亮的代码
- 要写漂亮的代码
- 远离你的电脑,代码写得更好!
- 把PHP代码编译成C/C++代码,使你的php跑得更快
- 把PHP代码编译成C/C++代码,使你的php跑得更快
- 支持柴静,我们把代码写的这么漂亮,却呼吸着肮脏的空气,有意思么???
- 让你的代码看起来更漂亮
- 试着品评:远离你的电脑,代码写得更好!
- Js实现订阅发布模式(让你的代码写得贼六)
- 【代码积累】写一手漂亮的代码(1)
- 从HTML原型到jsp页面完美转型攻略(教你即使不会写代码也能弄出漂亮的网页)
- 从HTML原型到jsp页面完美转型攻略(教你即使不会写代码也能弄出漂亮的网页)
- 写代码提高效率的几点心得
- 牛腩—漂亮写代码
- 你是怎样把石头雕得飞起来的
- 把你的大名写进开始菜单
- 把你写进三月的春天
- JavaScript trim函数大赏
- 用VISO 分割线条或图形
- android apk 应用 重新签名 方法
- 关于AB和16706的奇妙关系
- 关于如何利用移位运算和逻辑运算来加速算法的小技巧
- 把你的代码写得漂亮些
- LIS
- struts2零配置
- js_day22--js DOM编程(window对象3+猜拳游戏)
- binary tree zigzag Level Order Traversal
- 对项目一的对文件处理
- linux网络编程--服务器客户端(TCP实现)
- 成都之行
- 【iOS】关于视图生命周期、NSString变CGPath等问题