一个连衣服都穿不整齐的人,代码也肯定写不整齐。
今天我想和大家讨论的话题就是关于代码缩进的问题,再说之前,我想先给大家看两段代码:
代码片段一:
<div id="titleinfo"><div>
</div></div>
<div id="header">
<ul id="navigationMenu">
<li><a href="#" onclick="tixing()" class="normalMenu">首页</a></li>
<li><a href="#" onclick="tixing()" class="normalMenu">爱看电锯</a></li>
<li><a href="#" onclick="tixing()" class="normalMenu">爱品电锯</a></li>
<li><a href="#" onclick="tixing()" class="normalMenu">爱玩电锯</a></li>
<li><a class="selectedMenu">爱听电锯</a></li>
<li><a href="#" onclick="tixing()" class="normalMenu">爱藏电锯</a></li>
<li><a href="#" onclick="tixing()" class="normalMenu">在开发中</a></li>
<li><a href="end.html" class="normalMenu">后记</a></li>
</ul>
</div>
<div id="mbnav">
<a href="#" onclick="tixing()">首页</a> > <a href="ting.html">爱听电锯</a></div>
<div id="content">
<div id="detail">
<div style="width:453px; margin:0 auto; padding:0;">
<p style="float:left; clear:left; padding-top:3px"><a href="http://u.115.com/file/f146e8f016" target="_blank" style="padding:0"><img src="image/ting/1/logo.jpg" width="210" height="190" class="ting_tip" title="点<br>击<br>下<br>载<br>第<br>一<br>部<br>原<br>声" /></a></p><p>
<object type="application/x-shockwave-flash" data="flash/dewplayer-playlist.swf" width="240" height="200" id="dewplayer" name="dewplayer"><param name="wmode" value="transparent" /><param name="movie" value="flash/dewplayer-playlist.swf" /><param name="flashvars" value="showtime=true&autoreplay=true&xml=image/ting/1/playlist.xml" /></object></p>
</div>
<fieldset class="re">
<legend class="title">胡尐睿丶推荐:</legend>
<p> 下面这首是我很喜欢的一首歌曲,它虽然只是第五部预告片里的背景歌曲,但真的很好听,建议大家听听。歌曲名:《be thou my vision》,演唱者:Corrinne May,也有其他人的翻唱版本,不过我还是喜欢原版。<br />
<object type="application/x-shockwave-flash" data="flash/dewplayer.swf" width="200" height="20" name="dewplayer" id="dewplayer">
<param name="movie" value="flash/dewplayer.swf" />
<param name="flashvars" value="mp3=image/ting/Corrinne May - be thou my vision.mp3" />
<param name="wmode" value="transparent" />
</object></p>
</fieldset>
</div>
</div>
代码片段二:
<div id="titleinfo"><div></div></div>
<div id="header">
<ul id="navigationMenu">
<li><a href="#" onclick="tixing()" class="normalMenu">首页</a></li>
<li><a href="#" onclick="tixing()" class="normalMenu">爱看电锯</a></li>
<li><a href="#" onclick="tixing()" class="normalMenu">爱品电锯</a></li>
<li><a href="#" onclick="tixing()" class="normalMenu">爱玩电锯</a></li>
<li><a class="selectedMenu">爱听电锯</a></li>
<li><a href="#" onclick="tixing()" class="normalMenu">爱藏电锯</a></li>
<li><a href="#" onclick="tixing()" class="normalMenu">在开发中</a></li>
<li><a href="end.html" class="normalMenu">后记</a></li>
</ul>
</div>
<div id="mbnav"><a href="#" onclick="tixing()">首页</a> > <a href="ting.html">爱听电锯</a></div>
<div id="content">
<div id="detail">
<div style="width:453px; margin:0 auto; padding:0;">
<p style="float:left; clear:left; padding-top:3px"><a href="http://u.115.com/file/f146e8f016" target="_blank" style="padding:0"><img src="image/ting/1/logo.jpg" width="210" height="190" class="ting_tip" title="点<br>击<br>下<br>载<br>第<br>一<br>部<br>原<br>声" /></a></p>
<p>
<object type="application/x-shockwave-flash" data="flash/dewplayer-playlist.swf" width="240" height="200" id="dewplayer" name="dewplayer">
<param name="wmode" value="transparent" />
<param name="movie" value="flash/dewplayer-playlist.swf" />
<param name="flashvars" value="showtime=true&autoreplay=true&xml=image/ting/1/playlist.xml" />
</object>
</p>
</div>
<fieldset class="re">
<legend class="title">胡尐睿丶推荐:</legend>
<p> 下面这首是我很喜欢的一首歌曲,它虽然只是第五部预告片里的背景歌曲,但真的很好听,建议大家听听。歌曲名:《be thou my vision》,演唱者:Corrinne May,也有其他人的翻唱版本,不过我还是喜欢原版。<br />
<object type="application/x-shockwave-flash" data="flash/dewplayer.swf" width="200" height="20" name="dewplayer" id="dewplayer">
<param name="movie" value="flash/dewplayer.swf" />
<param name="flashvars" value="mp3=image/ting/Corrinne May - be thou my vision.mp3" />
<param name="wmode" value="transparent" />
</object></p>
</fieldset>
</div>
</div>
就以上两段一模一样的代码,如果老板说,这里面有几个错误,你会选择哪一个去修改?我想毫无疑问都会选择代码二吧。
可能有人会钻牛角尖,说就这么几行,选代码一也一样。试问,如果一个十万行的项目代码,成篇都是这样无规则的缩进,你还有维护他的欲望么?别说维护的欲望了,要是这事摊到我头上,我都想有辞职的欲望了。
说到这里,我不禁想问一句开发人员,代码缩进真有那么困难么?别再和我说什么“我们要专注于开发,别鸡蛋里挑骨头谈什么缩进,那只会减少我们开发时间”这类扯蛋的回话。我也是做开发的,如果敲缩进的时间都没有的话,那你就别写什么功能实现代码了,写了也没人想看。
至于缩进,我建议是用tab键。首先,一个tab的长度相当于4个空格,但容量只有其1/4,减少文件大小;其次,空格要按4下,tab只需按1下,减少重复无意义的操作。但有人会反驳,说tab在不同IDE下长度显示不一,其实这个在实际开发中可以尽量避免,如果公司不是很大,开发人员不是很多的时候,IDE完全可以统一,同时也避免了个人英雄主义的出现。
要说的就这么多,这次不算分享,算是告诫吧。代码规范不仅仅只是缩进,希望所有开发人员都能从代码编写规范做起,为自己,也为他人。
收尾呼应下吧,其实不一定要看穿衣是否整齐,从很多方面都可以,比如桌面图片排放,硬盘文件分类,都能看出一个人做事是否有条理。相反,从代码也能体现出一个人性格,做事方式等等一些习惯。