大规模的Swift —我在2016 Swift Summit中学到的东西

我参加了2016年11月7日至8日在旧金山举行的Swift峰会,该峰会仅针对Swift开发者。该峰会在美术宫剧院举行。 演讲者来自海湾地区的Facebook,LinkedIn,IBM和Uber等大公司。 他们分享了如何在大型软件项目中使用Swift的经验。 我从他们的谈话中学到了很多东西。 苹果公司有一些与会者。 克里斯·拉特纳(Chris Lattner)也参加了会议。

对于Swift而言,大公司要求的第一大功能是缩短编译器时间。 耐心一点! Swift团队正在为此努力。

案例研究:Swift与Uber的约150名工程师

演讲者:Uoma的Tuomas Artman

Uber的iOS团队在不到9个月的时间内就使用Swift重写了整个iOS应用程序。 那就是上周发布的新iOS应用Uber。 演讲者分享了他们如何将编译器时间从20分钟减少到6分钟。 他们做了什么:

  1. 不要使用类型推断。 编译器不需要查找类型信息本身。
  2. 合并文件。 将200个模型文件合并为1个可以将编译时间从1分钟35秒减少到17秒。
  3. 在Xcode的调试模型中禁用某些编译器优化。 这些编译器优化可以在针对发行版的继续集成中重新启用。 他们从Airbnb学到了这个技巧。

他们甚至试图使用另一个构建系统-Buck。 这是Facebook开发的快速构建系统。 同样,它是可重用,灵活和可扩展的。 该项目正在进行中。 发言者说,如果Buck按照他们的预期工作,则编译器时间可能为2-3分钟。 他为Swift的新构建系统感到非常兴奋。

Uber的另一个挑战是二进制文件大小。 iOS应用程序的最大大小为100 MB。 似乎他们没有找到一个好的解决方案,只提供了更少的代码。

快速规模化

演讲者:卡米尔·泰勒(Kamilah Taylor),Linkedin

LinkedIn是最早使用Swift在生产中开发iOS应用的少数公司之一。 他们还抱怨非常非常长的编译时间。 在15 rMBP上进行冷构建大约需要25分钟。 一个挑战是,由于Swift编译器不稳定,因此构建系统失败了。 随着Swift语言本身的变化,迁移到新版本的Swift通常需要一周的时间。 他们学到的是:

  1. 使用Swift并非免费。
  2. 投资您的工具和基础架构团队
  3. Swift确实需要更多的开发人员维护时间,而培训和实际编码所需的时间更少。
  4. 准备好耐心和幽默。

将Swift的边界推向服务器

演讲者:Chris Bailey,IBM

根据我的观察,IBM是唯一在Linux上使用Swift的公司。 他们将Swift引入了他们的云服务器-Bluemix。 Swift最初没有许多常见的框架,因此它们不得不花很多时间来开发这些框架,包括Https,JSON和异步调度。 发言者提到了为什么在服务器上使用Swift。 他比较了Swift,Java,Node.js和Ruby。

  1. Swift比Node.js和Ruby快得多。 Java与Swift几乎同时完成任务。
  2. Swift使用较少的内存。

演讲者几周前也做了类似的演讲。 您可以在https://realm.io/news/tryswift-chris-robert-end-to-end-application-development-swift-backend/上观看视频和博客。

Swift峰会涵盖了许多其他主题,例如Swift中的反应式编程,面向协议的编程,Swift枚举和Storyboard。 有关https://www.swiftsummit.com的更多详细信息

这就是我学到的。 很高兴听到您对此的看法!