Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Objective-C(iOS应用程序)代码分解为面向对象的设计_Ios_Objective C_Oop_Model View Controller - Fatal编程技术网

如何将Objective-C(iOS应用程序)代码分解为面向对象的设计

如何将Objective-C(iOS应用程序)代码分解为面向对象的设计,ios,objective-c,oop,model-view-controller,Ios,Objective C,Oop,Model View Controller,我第一次启动了一个大型项目。我本应该是这个大项目的开发人员之一,突然,首席开发人员和他的团队退出了合同。现在,我只剩下自己管理这个大项目,手下有几个初级开发人员,我正试图牢牢掌握如何分解这些代码 从逻辑上讲,对我来说,代码应该被它拥有的屏幕分解。我知道可能不应该这样做。那么告诉我,应该怎么做?该应用程序总共有6个屏幕。它连接到一个服务器,该服务器在其他手机上维护应用程序所有其他实例的数据。你可以认为它是半社交的。它还将在某些部分使用相机功能,并且肯定会使用地理定位。可能是地理围栏。它显然需要一个

我第一次启动了一个大型项目。我本应该是这个大项目的开发人员之一,突然,首席开发人员和他的团队退出了合同。现在,我只剩下自己管理这个大项目,手下有几个初级开发人员,我正试图牢牢掌握如何分解这些代码

从逻辑上讲,对我来说,代码应该被它拥有的屏幕分解。我知道可能不应该这样做。那么告诉我,应该怎么做?该应用程序总共有6个屏幕。它连接到一个服务器,该服务器在其他手机上维护应用程序所有其他实例的数据。你可以认为它是半社交的。它还将在某些部分使用相机功能,并且肯定会使用地理定位。可能是地理围栏。它显然需要一个API来连接到服务器。很可能不止1个API。我不能在不违反保密协议的情况下说更多


因此,我的问题再次涉及如何分解代码以使其尽可能高效。就我个人而言,我将在这个项目上做一些编码。可能主要是代码评审、单元测试和规划。每个屏幕应该有一个文件,重复的部分应该有自己的类吗?应该是MVC吗?我们这里说的是一款30k线的应用程序,它是最好、最高效的。有没有比我列出的方法更好的方法来分解代码


我想我真正的问题是,有没有人对解决我当前问题的书籍有好的建议?建议代码清理,这是一个好的开始。我已经阅读了《神秘的人月》和《完整的代码》,但它们并没有真正解决我当前的问题。我需要一些书的建议,这些书可以帮助我学习如何构建和计划大型代码库的创建,因为我相信你知道这是一个非常模糊的问题,你可以写一本书来回答这个问题。事实上,我建议你读一本,比如干净的代码。但我想尝试一下10000英尺的高度

首先,如果你正在做一个iPhone应用程序,你会想使用MVC,因为这是苹果设置框架的方式。这意味着每个屏幕将(至少)有一个视图控制器,可能是一个自定义视图或NIB

此外,您希望视图控制器指向您的模型(业务对象),而不是相反方向。这些对象应该在没有任何用户界面逻辑的情况下实现用例。这就是视图控制器和视图将要执行的操作

如何分解用例?嗯,这是非常具体的你的计划,我不能告诉你很多细节。没有一个正确的答案。但一般来说,您希望尽可能将每个对象与其他对象隔离开来。如果任何一个对象引用了任何其他对象,那么你就没有真正的OO设计,你就陷入了混乱。特别是当您谈论单元测试和TDD时。如果当你测试一个部件时,你最终拉入了整个系统,那么你不是在测试一个小部件,是吗


真的,不过,找一本关于OO设计的好书。这是一个很大的问题,没有人能用这样的答案来解释。我认为这是一个好的开始,也许其他人会有其他建议?

“每个屏幕应该有一个文件”这是一个完全任意的指标。简单的回答是使用您需要的任意多的文件。冗长的答案是阅读文档。首先,你问的是项目管理咨询。(我通常会向其他人收取350美元一小时的费用)但简单的介绍是,根据他们的实力决定你的团队,然后根据将要处理的技术安排项目。给每个团队一小段开始,然后在他们完成后添加更多。完成的时间框架至关重要。你自己拿一大块,让他们帮你处理大块中较小的部分。为项目的每个部分制定一个时间表,并尽可能高效地执行。基本上,阅读所有的建议,然后忽略90%的建议。诀窍是选择正确的10%不要忽略。@XCodeMonkey-$350/小时??我得和老板谈谈。谢谢你的回答。书是有用的。我读过《代码全集》和《神话中的人月》,但它们并没有真正解决我目前面临的问题。我还没有读过《代码全集》,它可能有一些有用的想法,但如果我记得《神话中的人月》,我会同意它没有那么实际。干净的代码是关于如何构造代码以及为什么,这就是您要问的问题,也是我在本例中向您推荐它的原因。特别是第3章,函数和第10章的类。读完这些章节只需要几个小时。祝你好运