【问题标题】:How do i break Objective-C (iOS app) code into an object oriented design [closed]我如何将Objective-C(iOS应用程序)代码分解为面向对象的设计[关闭]
【发布时间】:2014-02-24 23:53:36
【问题描述】:

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

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

同样,我的问题是关于如何分解代码以使其尽可能高效。就个人而言,我将对该项目进行少量编码。可能主要是代码审查、单元测试和规划。每个屏幕应该有 1 个文件,重复的部分应该有自己的类吗?应该是MVC吗?我们在这里谈论的是一个 30k 行的应用程序,它是最好和最有效的。有没有比我列出的方法更好的方法来分解代码?

我想我真正的问题是,是否有人对可以解决我当前问题的书籍有好的建议?建议使用 code clean,这是一个好的开始。我已经阅读了神话般的人月和完整的代码,但它们并没有真正解决我当前的问题。我需要有关书籍的建议,以帮助我学习如何构建和规划大型代码库的创建

【问题讨论】:

  • “每个屏幕是否应该有 1 个文件”这是一个完全任意的指标。简短的回答是根据需要使用尽可能多的文件。长答案是阅读文档。我会开始here
  • 你问的是项目管理咨询。 (我通常会为此向其他人收取 350 美元的费用),但简要介绍一下,根据他们的优势决定您的团队,然后将项目设置为将要处理的技术。给每个团队一个小块开始,然后在完成后添加更多。完成的时间框架是必不可少的。自己拿一大块,让他们帮你处理大块的小部分。为项目的每个部分设置时间表并尽可能高效地执行。
  • 基本上,阅读所有建议,然后忽略其中的 90%。诀窍是选择正确的 10%,不要忽视。
  • @XCodeMonkey - 每小时 350 美元?我得和我的老板谈谈。

标签: ios objective-c oop model-view-controller


【解决方案1】:

我相信您知道这是一个非常模糊的问题,您可以写一本书来回答它。事实上,我会推荐你​​读一读,比如 Clean Code。但我会在 10,000 英尺的高度进行概述。

首先,如果您正在开发 iPhone 应用程序,您将希望使用 MVC,因为 Apple 就是这样设置框架的。这意味着每个屏幕都会(至少)有一个视图控制器,可能是自定义视图或 NIB。

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

您如何分解您的用例?好吧,这对您的程序非常具体,我无法告诉您(很多)细节。没有一个正确的答案。但总的来说,您希望尽可能地将每个对象与其他对象隔离开来。如果曾经有对象引用过其他对象,那么你就没有真正的 OO 设计,你一团糟。尤其是当您谈论单元测试和 TDD 时。如果当你测试一个部分时你最终拉入了整个系统,那么你不是只测试一个小单元,是吗?

真的,买一本关于 OO 设计的好书。这是一个很大的主题,没有人能够在 SO 答案中解释。我认为Clean Code 是一个好的开始,也许其他人会有其他建议?

【讨论】:

  • 感谢您的回答。书籍很有帮助。我已经阅读了完整的代码和神秘的人月,但它们并没有真正解决我目前面临的问题
  • 我没有读过 Code Complete,它可能有一些有用的想法,但如果我记得 Mythical Man Month,我会同意它不那么实用。清洁代码就是关于如何构建代码以及为什么,这就是您所要求的,也是我在这种情况下向您推荐它的原因。特别是第 3 章,函数和第 10 章类。只需几个小时即可完成这些章节。祝你好运。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-25
  • 2011-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多