用于学习最佳编码实践的开源iOS项目

时间:2012-03-06 14:48:59

标签: iphone objective-c ios ipad coding-style

我在iOS开发方面有一些经验(更多Java背景),最近我开始阅读“清洁代码”。

我注意到在我的iOS项目中我有很多反模式。

2个最受欢迎的建议我没有正确遵循:小方法小类。 然后我对GitHub做了一些小研究,我找不到可以用作“清洁代码”的示例/参考的项目。

在大多数情况下,ViewControllers有几十种方法,它们有很多方法,比如loadView,我们以编程方式构建视图层次结构。

例如来自Facebook的示例应用wishlist-mobile-sampleHomeViewController类中有1431行代码,其loadView有170行代码。

您是否有链接到您建议的项目作为一个非常好的编码示例?

5 个答案:

答案 0 :(得分:3)

我敢说有所有课程< 100行代码实际上是最好的编码实践......这完全取决于你使用它的目的,以及让一个类真正干净和通用的重要性。我知道很多代码片段在类中比数百行更容易阅读,而不是带有超级迷你类的类混乱代码,而是数百个类代码......很可能有很多项目有更大的类。

你是否真的认为如果声明是“一个函数应该有最多100行代码”,那么具有130行的函数已经符合错误编码的条件?!

BTW: Apple的viewDidLoad课程中的UICatalog函数有42行代码 - 其余的是空格和注释 - 我宁愿不把它们留下来你的代码要保持在100行以下: - )

答案 1 :(得分:2)

答案 2 :(得分:1)

Apple示例代码是学习干净代码的最佳来源。 开源项目无法击败那个..

答案 3 :(得分:1)

不要忘记Apple发布的示例的目的并不是要在代码中一直显示最佳实践,而是要说明具体的项目。当您尝试演示如何进行异步网络呼叫时,为什么还要将init方法分解为许多较小的块(这需要时间)。

在编写代码时,编写大型方法或大型课程并没有错,因为它们适合您正在做的事情,正确评论并且不会复制任何内容。这可能就是你必须做的事情。

根据经验,在编写代码时,只需考虑一下您要做的所有事情,并考虑是否可以将其分解为更小的块。考虑一下是否必须做你正在编写代码的任何事情,并考虑将如何处理该任务。

例如,您可能希望编写一个初始化显示的方法。所以,你可以编写一个可以完成所有事情的巨大方法。或者,您可以将其分解为

[self initButtons];
[self initTextEntry];
[self initLabels];

同样,在initButtons中,你可能会发现你再次编写相同的代码来创建和初始化按钮,结果发现唯一改变的是按钮的位置和触摸时他们调用的选择器。所以你可以重构那个

button1 = [self createButton:position callback:selector];
button2 = [self createButton:position2 callback:selector2];

只需采用迭代的方法来处理你所写的内容。写下代码。一旦你有一个功能正常工作,停下来然后返回并查看代码,看看你可以将项目考虑在哪里,你有多少次公共代码,等等。使用XCode中的重构工具。

发展自己的风格。随着时间的推移,您编写和重构的代码越多,您就越容易看到事情在开始时如何被拆分。当我想到20年前我写的一些代码时,我希望它已被破坏,再也不会被编译器看到。我曾参与过" professional"开发人员和有很多方法。例如,我最近看到的是500(!)行代码长。而且评论很少。

请记住,有很多小方法与很多类相结合(即使它们是小类)也可能是一种反模式。

答案 4 :(得分:-2)

facebook的3-20框架结构非常整齐。

http://three20.info/

源代码: https://github.com/facebook/three20/tree/master/src