当前位置:  开发笔记 > 编程语言 > 正文

可可坏习惯

如何解决《可可坏习惯》经验,为你挑选了7个好方法。

自从你开始使用Cocoa进行编码后,你开发的那些坏习惯是什么?

我认为制定一个坏习惯列表并积极地添加它,更重要的是,打破这些习惯是产生代码质量的好方法.所以从现在开始,让你的坏习惯脱离你的胸膛.也许其他人分享你的坏习惯.



1> lfalin..:

传递NULL给需要的论点NSError**,纯粹的懒惰.


你是对的,`nil`是对象.应该是`NULL`而不是.

2> Dave Dribin..:

没有足够的单元测试.如果没有单元测试,那么清理和重构代码真的很困难.没有不断的重构和清理,代码腐烂开始进入并传播.

使用单例模式共享对象,例如+ [MyObject defaultObject].这本质上是一个全局变量,它可以产生一些很好的隐藏依赖关系和耦合.反过来,这会使代码更难以测试.


-1因为这些都是任何OO语言的问题.
任何更好的替代解决方案,而不是单身?

3> mmalc..:

使用控制流的异常

(和其他非特殊情况.)

由于异常的使用在这里得到了另一个答案,并且评论中提到的文档并没有特别强调这一点,因此值得强调的是,异常不应该用于正常的控制流程(在一些其他环境中很常见).可可的例外情况相对非常昂贵.如果要传达错误,请使用Cocoa提供的NSError对象和错误处理体系结构.不要抛出异常.


错字颠倒了意义.而不是"现在应该使用例外",我认为它应该是"不应该使用**的例外".

4> schwa..:

这是我的一些:

投掷异常而不试图抓住他们.我开始越来越多地依赖NSError来防止NSExceptions在John Woo电影中像子弹一样飞行,但我仍然有很多特殊的代码.

写一个快速课程来做X,Y和Z然后忘记在dealloc中清理.泄漏啊!

直接在各个地方使用字符串(KVO)而不是定义常量并使用它(有关更多信息,请参阅Dave Dribin 关于KVO 的优秀博客文章)


我真正喜欢Cocoa设计的一件事是,NSExceptions被定义为仅用于程序员错误(如越界索引),而NSError将用于运行时错误.自从我意识到这一点后,我觉得使用NSException要少得多.

5> Jablair..:

我对在类中使用访问器感到懒惰.通常,最大的问题是我无法轻易地快速了解变量的范围.然后我上周花了几个小时来调试因使用而导致的内存损坏问题

self.displayName = name

在某些地方和

displayName = name

在其他人.当我发现它并且我的应用程序停止崩溃时,我很高兴.我不是很高兴我浪费了几个小时寻找这样一个可以避免的错误.


如果像许多人建议你不应该这样,你可以避免使用@synthesize displayName = _displayName,然后永远不要使用_displayName.这是一种代码嗅觉策略.

6> Ben Gottlieb..:

我经常使用#defines,我应该使用const声明.

另外,我可能会在我转发的NSNotifications中过于多产; 脱钩运行!



7> Jeff..:

坏习惯:保持我的Java心态.

我的Java背景导致我甚至在考虑使用变量做任何事情之前都要经常检查null,当我可以利用Objective-C的能力向nil发送消息时.(参见:"发送消息为零?")

我必须提醒自己,Objective-C允许我简单地编写优雅地使用返回值0或nil的代码,而不是尝试先发制人地获取nil.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有