Swift 2.3升级到Swift 3.0小记
阿里云App从Swift 2.1开始使用Swift,随时不断的推进,现在所有的业务代码都用Swift编写。由于Swift 3.0语法上有诸多改变,所以从Swift 2.3升级到Swift 3.0是一件宜早不宜迟的事情。元旦期间抽了点时间做这个升级。
外部依赖
- 目前开源社区对Swift 3.0支持是非常好的,我们依赖的开源组件最新版本都支持Swift 3.0了,所以并没有什么不能解决的依赖。
- 因为很多组件依赖CocoaPods 1.x才能编译,所以前期我们花了一些时间支持CocoaPods 1.1.1。
- 因为目前Swift相关的动态库仍然会打进App里面,所以升级到Swift 3.0,并不影响对iOS8、iOS9的支持。
升级过程
- 先将所有组件一个一个升级到Swift 3.0的语法。组件化的好处是可以并行,先解决基础组件,然后大家并行解决高级组
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
容器、微服务、深度学习和阿里云
今年去参加Qcon上海2016开发者大会,发现大家都在讲容器、微服务、深度学习这些高端的东西,所以抓紧时间学习和总结了一下,给大家吹吹牛,算是不虚此行吧。 容器 基于Linux内核中的Control Groups和namespace技术,对运行的进程做隔离和控制。Linux内核还在不断创新中,《Unix 环境高级编程》没有包含这些新技术,所以很多人对此一无所知。 不同于一般的虚拟化技术,在host中可以看到容器里面运行的进程。image和container的关系就像是可执行程序和进程的关系。 22957 ? Sl 0:00 | \_ docker-containerd-shim 9f4669fd46ab076cca3b71d67f697b1e9768e351bc40be3a85fa4e02eb92720a /v
- 下一篇
Golang 异步对象序列化Map并发冲突和解决方法
冲突过程 异步对象序列化,对象里面如果有map,并且使用json.marshal to string,或者其他方式对map 执行了read、write操作。而业务逻辑同步写对象map值,那么,就会触发: fatal error: concurrent map read and map write本质原因在于:两个goroute对同一个map执行了读写并发,而golang map默认是不支持并发操作、没有加锁 冲突解决 (1)在主业务逻辑里面,提前把对象转为string,丢给异步任务去执行(不局限写log,可以是其他对map的操作) (2)map 的读写加锁,而读写加锁对性能的影响,以及死锁等又带来新的麻烦。关于优化并发map的可以参考这个分析,比较全面:https://misfra.me/optimizing-concurrent-map
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS6,CentOS7官方镜像安装Oracle11G