技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 算法 --> Objective-C Coding Style

Objective-C Coding Style

浏览:1534次  出处信息

一直一来我都没有找到详细明确的Objective-C Coding Style,这让我很苦恼,因为我很关心一些小细节,比如 “{” 的位置,到底应该把 { 和关键字/方法名放在一行:

1
2
3
if(condition){
}else{
}

还是应该把 { 另起一行:

1
2
3
4
5
6
if(condition)
{
}
else
{
}

关于这两种写法,其实争议已久,一般来说都认为把 { 直接放在行尾可以节省屏幕空间,而另起一行写 { 会让代码更易读,因为可以更容易看出 { 和 } 的对应关系。JAVA 和 JavaScript 一般都是采用直接放在行尾的写法,而另外一些语言比如C/C++ 往往会在新的一行写 { 。

那么在 Objective-C 中到底采用哪一种写法呢?官方没有给出明确的编程规范,只有一些命名规范,而官方网站上提供的示例源码也是风格不一,有一些代码甚至夹杂使用了这两种写法。不过根据我的猜测,官方其实鼓励直接把 { 写在行尾,因为在创建项目的时候会根据模板生成一些文件,模板中的代码都是直接把 { 写在行尾的。

不过猜测毕竟是猜测,我仔细斟酌了一下这两种写法。如今显示器都还算比较便宜,而且尺寸也很大,所以屏幕空间已经不需要通过把 { 写在行尾来节省了,尤其是对那些买了宽屏显示器又竖起来用的家伙。关于“在新的一行写 { 可以更容易看出 { 和 } 的对应关系”的说法,对于很多人来讲也已经没有这种问题了,因为 XCode 实在是很好用,对于大括号匹配有很漂亮又实用的功能。所以对于那些在 Mac OS X 上使用 XCode 编程的人来说,使用哪种风格都无所谓,看自己喜好就行。但是,我觉得写 Objective-C 的人应该都不是那种只会JAVA这种“高级语言”而不知指针为何物的人,而这样的人往往都是Geek 或者 Hacker ,写程序很有可能会使用 VIM 或者 Emacs 这两个神器(可能还有一些人特别喜欢使用 Textmate),然后命令行编译。针对这些使用“高级记事本”写代码的人,我觉得还是新起一行写 { 比较好,方便他们查看代码,而不用在 VIM 中把光标移动到 } 上然后再反复按 “%” 键确认自己没有看错。

好了,现在确定了自己的编程风格了。不过事情还没有结束,虽然我决定以后都要在新的一行写 { ,但是 XCode 的代码提示还是默认设置的,如果每次都手动修改就太麻烦了,还好我在网上找到一个方法,可以把代码提示修改成默认在新的一行写 { ,方法就是在命令行下输入:

defaults write com.apple.Xcode XCCodeSenseFormattingOptions -dict BlockSeparator “\\n”
(如果直接复制上面这行,请注意最后的引号是英文引号)

然后重启 XCode ,代码提示就会更改了。不过现在项目模板还是老样子,如果想要手动修改项目模板的话,可以去 /Developer 目录下修改,下面这个是 iPhone 项目模板的目录:

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/

更多关于 Objective-C 的 Coding Style ,可以参考 Google Objective-C Style Guide ,非常详细,除了 { 的写法之外,该有的都有了 :)

最后说一下 Coding Style 的意义。可能一些人会觉得 Coding Style 是形式,“把功能和结构写好就行了,为什么要关心缩进用几个空格这种问题?”。但是,“代码是写给人看的,只是顺便让机器运行一下而已”,所以写出清晰易读的代码是绝对有必要的,“优秀的程序在任何方面都是完美的,下至注解语句结束的句号”。Coding Style 除了审美上的意义之外,更重要的意义在于它保持了代码的一致性,摘录 Google C++ Style Guide 中的最后一段话:

Use common sense and BE CONSISTENT.

If you are editing code, take a few minutes to look at the code around you and determine its style. If they use spaces around their if clauses, you should, too. If their comments have little boxes of stars around them, make your comments have little boxes of stars around them too.

The point of having style guidelines is to have a common vocabulary of coding so people can concentrate on what you are saying, rather than on how you are saying it. We present global style rules here so people know the vocabulary. But local style is also important. If code you add to a file looks drastically different from the existing code around it, the discontinuity throws readers out of their rhythm when they go to read it. Try to avoid this.

OK, enough writing about writing code; the code itself is much more interesting. Have fun!

这段话说明了一个很重要的问题:Coding Style 不是个人风格。你自己开发一个项目的时候,完全可以根据自己的喜好来写,但是在修改别人代码的时候,一定要遵循整体的代码风格,这保持了原有代码的可读性。Coding Style 是为了增加源码可读性存在的,而不是用来彰显自己个性的。

关于

参考:
[1] XCode: The Starting Curly Brace
[2]Google Objective-C Style Guide
[3]Google C++ Style Guide

QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1