【发布时间】:2017-02-18 03:13:36
【问题描述】:
在提供代码示例的教程和示例中,有时我会看到 Xcode 的项目导航器中的项目文件按照 MVC 模式(“视图”、“控制器”、“模型”)按组排列,而其他时候它们是按功能分组(例如“登录”、“检查表”)。
关于 iOS,Apple 对此有何约定/建议? 哪个应该是最佳做法?
【问题讨论】:
标签: ios xcode file directory project-structure
在提供代码示例的教程和示例中,有时我会看到 Xcode 的项目导航器中的项目文件按照 MVC 模式(“视图”、“控制器”、“模型”)按组排列,而其他时候它们是按功能分组(例如“登录”、“检查表”)。
关于 iOS,Apple 对此有何约定/建议? 哪个应该是最佳做法?
【问题讨论】:
标签: ios xcode file directory project-structure
开发人员以多种方式组织他们的组、代码和文件。但我使用如下内容:
CoreData:包含数据模型和实体类。
扩展:包含一个类(默认苹果类扩展+项目类扩展。)
Helper:包含第三方类/框架(例如 SWRevealController)+ 桥接类(例如基于 Swift 的项目中的 Obj C 类)
Model:制作一个用于保存数据的单例类(例如AppModel - NSArray、NSDictionary、String 等)。 Web Service Response 解析和存储数据也在这里完成。
服务:包含 Web 服务进程(例如登录验证、HTTP 请求/响应)
视图:包含故事板、LaunchScreen.XIB 和视图类。创建一个子文件夹 Cells - 包含 UITableViewCell、UICollectionViewCell 等。
Controller:包含与UIElements相关的逻辑或代码(例如UIButton的引用+点击动作)如果使用MVVM,可以用ViewModel代替。
这个结构来自another Stack Overflow post。
这些也可能对您有所帮助:
【讨论】:
我实际上创建了一个项目来演示我认为我的中小型代码库的首选 Xcode 项目结构。你可以找到它here。
这是它的概要:
【讨论】:
在项目中组织文件时,有两种最知名的方法。 按类型和按功能组织代码文件。
按类型组织代码对于小型项目来说是可以的,但对于大型项目来说这不是一个好习惯。
这样,你把所有Models放在一个文件夹里,所有Views放在另一个文件夹里,所有Controllers放在第三个文件夹里,等等.
想象一下,您有大量按类型组织的文件和文件夹,而当您处理单个功能时,您必须打开所有文件夹。这会让您感到困惑,并且您在滚动文件时可能会迷路很多次。
类似这样的:
按功能(意图)组织代码是大型项目和大型团队的最佳实践。您将与该功能相关的所有内容都放在一个文件夹中,当您处理该功能时,您不必打开所有其他文件夹(组)。
因为团队通常只开发一个功能,并且只关注一个文件夹或一组文件。他们不一定需要了解其他功能和文件。
看起来像这样:
另外,值得一提的是,这种做法和技术(按功能组织项目)已由全球最大的公司实施。因此,他们根据项目的特性划分团队,每个团队都致力于特定的特性。除此之外,当您使用git 时,它可以减少合并和变基时发生冲突的机会。
【讨论】: