BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

八年iOS老开发的五点心得

| 作者 Anton Holmquist 关注 0 他的粉丝 ,译者 孙薇 关注 0 他的粉丝 发布于 2017年7月6日. 估计阅读时间: 3 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

本文作者从2009年开始进行iOS系统的开发工作,中间参与开发了无数款应用。本文就是结合他多年心得,总结出的一些能够让应用开发更高效、更有趣且更具可维护性的方法。

1、保持原生

如果代码保持原生平台,就不会真正出错。任何跨平台的技术都可能会增加复杂性,并有可能给项目引入bug。此外,报告的实际节省时间差异也很大。目前,我们只听说过有大型项目因跨平台而感到后悔,而未曾听说过大型项目因保持原生而感到后悔的。还是不要冒险比较好。

2、避免使用外部库

如今使用外部库完全没有必要,许多事情通过原生框架就能完成得很好。连接网络就是个很好的案例,我们无需某些炫酷的外部库才能解决,只管基于iOS的联网代码,根据项目需求构建自己的封装就好,这样的做法简单而具有灵活性。这一道理适用于几乎所有我们需要的功能,当然在一些实际案例中,我们不得已必须使用到外部库。比如想要在应用中嵌入谷歌地图,或者Intercom对讲机,那也是可以接受的。

3、不要使用软件包管理器(package manager)

既然我们不应当使用那么多外部数据库,也就无需软件包管理器了。只管将个别的外部数据库加入项目,然后借助专用工具来管理,这样更节省时间。

4、在代码中写入布局,不要采用Storyboard

Storyboard可以帮助初学者快速上手,但如果需要一些合理的动态布局的话,无论如何都要在代码中写入相关的逻辑,那么,干嘛不在一开始就这么做呢?我曾经见过许多项目中都有硕大的Storyboard,其视图控制器中空无一物。更不要说自动布局了——这些只会给简单易写的内容增加复杂性。实际上,来自笔者的建议是:将所有布局逻辑写入代码,丢掉Storyboard和自动布局。简单,又具有极度的灵活性。至于具体做法,笔者有另一篇文章可以借鉴。

5、使用Core Data

新上手iOS开发的程序员很少使用Core Data,它很复杂,要入手就需要一大堆的样板代码,而且乍看没什么吸引力。刚开始iOS开发的头一年,笔者也花了一些时间进行深入研究,结果以失败告终。之后读到了这篇文章,于是决定再花些时间来研究。最后,一切清晰起来,使用Core Data的确是在iOS中处理数据的最佳办法,它非常强大,能够帮助开发者解决一些非常困难的问题,比如几乎每个应用都会出现的持久性问题以及传播数据变化的问题。诚意推荐Core Data。

以上这些建议有助于开发者创建出一个可以存续数年,应对不同iOS版本的可维护项目。请保持简单。 
https://hackernoon.com/5-key-learnings-after-8-years-of-ios-development-7190d8a01d09


感谢徐川对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

立场太过倾向性 by 江 海洋

这位作者的立场太过倾向性,而且没有从业务和商业的角度考虑问题,太技术化。

外部库不是外部数据库 by hu chifeng

外部库不是外部数据库

不是很赞同 by Wang Arthur

用这样的方法感觉是固步自封啊。不使用其他人优秀的代码,自己再写一遍,先不说写的不够好,主要是项目经理根本不会给你那么多实现。
Apple提供了Storyboard为何不用。简单的页面使用起来非常的nice。如果针对某个复杂的页面,可以单独处理。
cocoapods的代码管理我觉得非常合适,不会导致项目复杂。
数据库这块我觉得现在很多应用是必须联网的,没有必要使用数据库。

翻译有大错误 by Cai Samuel

第2点,多次提到数据库,什么“外部数据库”啊,“炫酷的数据库”,这是第三方库啊,或者源码,或者编译好的,但不是数据库啊。
这5点,有些赞同,有些不同意,就不讨论了。

Re: 翻译有大错误 by Cai Samuel

还有,通常我们用“原生”,而不是“源生”。

Re: 翻译有大错误 by Ding Alice

感谢反馈,已经修改。

主观倾向太强了 by 曹 凯

翻译的感觉不是很好,有些句子不怎么通顺,但还是可以理解内容,译者辛苦了。
乍读此文,这篇文章感觉更像是一个老程序员的唠叨,观点偏薄了些。换个角度来看,在iOS领域淫浸8年之久,也许作者本身已超出了许多第三方库的水准,从第一点可以看出,作者更希望整个项目在自己的控制之中,尽可能少的黑箱子,尽可能少的bug,这是他的追求,也符合他的level。
对于一般水准的程序员来说,别刻意模仿。大多数时候,不要重复造轮子是真理。

苹果的节奏就是更新 by 尹 志伟

苹果的思维方式就是不断不断更新,当然你的观点也非常正确,但我更愿意每年不停的更新知识面和知识体系,顺应苹果提供更好的功能模块,比如iOS 11的AR VR等等

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

8 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT