美文网首页
@Swift2017参会笔记(部分)

@Swift2017参会笔记(部分)

作者: 西山薄凉 | 来源:发表于2017-05-15 00:30 被阅读32次

    Swift with Hundreds of Engineers——Motivation, Architecture, Learnings

    Tuomas Artman, Staff Engineer, Uber
    主要讲述了Uber从OC迁移到Swift的动机、目标以及坑的解决方案。
    动机主要是看到了Swift的发展潜力,而且已经初步稳定。

    目标

    • 确保核心业务流程的可靠
    • 支撑UberApp未来的发展--分离、解耦
    • 为工程师、设计师提供详细计划,确保各司其职,各有所务
    • 流程自动分析、记录、调试、跟踪
    • 第三方插件风险检测
    • 性能调优,完美支持低版本API、低配设备

    存在问题

    • App体量过大,上万个文件,百万行代码

    经验总结

    Swift的优缺点

    优点:

    1. Swift的语法严谨,在编译时已经避免了很多不必要的bug。使得Swift版Uber的崩溃率仅为安卓的1/3;
    2. 集成静态检查测试,规范工程师代码;
    3. 语法更贴近JAVA/JS,安卓工程师较OC更为欢迎。

    缺点:

    1. 难以测试,objc下可以使用OCMock来mock对象。但是,由于swift的runtime比较弱,所以,swift上一般要手动写mock;
    2. 编译巨慢;
    3. 包体积较大;(原因:结构体、可选值、泛型、Swift的Runtime库)
    4. 启动速度。(原因:动态库链接、测试的配置文件,重新排序符号表)

    解决方案:

    1. ~
    2. 弃用Xcode,使用alternatives,使用更多frameworks,-warn-long-function-bodies检测编译耗时过久的方法并尝试改善,将多个文件合并为一个将极大提高你的编译效率,Xcode配置,使用Buck。

    最后的友情提示:
    当你的开发团队越来越大时,你务必:

    1. 注意编译时间
    2. 检测二进制文件大小
    3. 尝试解决如何单元测试
    4. 开始使用Buck

    Concurrency on iOS

    Sam Davies,RayWenderlich CTO
    印象:很酷,有hip-pop范😁
    线程优先级翻转、线程死锁的概念。
    提供了Promise方案解决异步流程处理及回调地狱问题。

    相关文章

      网友评论

          本文标题:@Swift2017参会笔记(部分)

          本文链接:https://www.haomeiwen.com/subject/kgdcxxtx.html