代码的缩进和嵌套
浏览:2401次 出处信息
Ash Furrow在关于避免不必要的代码缩进问题上这样说:
自从第一年一个睿智的高年级的学生向我展示了如何在代码里避免不必要的缩进后,我一直都保持着这种做法。我并不去纠正已有的代码,因为这并不能改善程序的性能,我只是在些新的程序里避免不必要的空格缩进。
我还有另外一个很相似的习惯,但并不是关于缩进的,而是关于避免嵌套。乍一看,这两个问题很相似(连视觉上都有缩进的表现)。但核心问题不一样,前者是关于程序书写问题的,后者是语义上的。
避免嵌套这种编写风格最大的好处是bailing early。跟深层次的嵌套你的语句(这样会同时导致你深度的缩进)的做法相反,简化你的语句,把你的程序设计成最终要执行的语句尽可能的少,简单的越容易让人理解越好。观察一下下面的例子:
- (void)doSomethingWithString:(NSString *)s { if (nil != s) { if ([s length] > 0) { NSLog(@"%@", s); } } } // 相对于 - (void)doSomethingWithString:(NSString *)s { if (nil == s) return; if (![s length]) return; NSLog(@"%@", s); }
细心的读者可能会注意到一些问题:
当然,这种特别的”bailing early”的风格在处理内存管理上会有一些其他方面的问题。如果你使用这种风格,某些时候你必须做一些额外的操作。也就是你有时候会过于频繁的使用内存自动释放(autorelease),或你需要在程序的多个地方使用重复的释放代码来避免对象分配泄漏。在真实工作中这种情况很少见,但我想你还是要把这点记在心里。
建议继续学习:
- 让Vim(gVim)更好的支持python语法缩进(强烈推荐) (阅读:6279)
- VIM 设置缩进 (阅读:3732)
- 无递归实现无限级嵌套评论 (阅读:3551)
- 用TAB缩进, 用SPACE对齐 (阅读:3210)
- IE6,IE7中负缩进的问题 (阅读:1818)
- 写 CSS 时要避免的几个地方 (阅读:949)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:Firebug Console API 与命令行
后一篇:记录程序日志 >>
文章信息
- 作者:外刊IT评论 来源: 外刊IT评论
- 标签: 嵌套 缩进
- 发布时间:2011-06-01 13:22:25
建议继续学习
近3天十大热文
-
[85] memory prefetch浅析
-
[57] 基本排序算法的PHP实现
-
[51] 深入浅出cassandra 4 数据一致性问
-
[43] 转载:cassandra读写性能原理分析
-
[40] javascript插入样式
-
[40] MySQL半同步存在的问题
-
[38] Inline Form Labels
-
[38] JS中如何判断字符串类型的数字
-
[36] 获取Dom元素的X/Y坐标
-
[36] 字符引用和空白字符