Skip to content

Commit

Permalink
Merge branches 'master' and 'master' of https://github.com/SwiftOldDr…
Browse files Browse the repository at this point in the history
…iver/iOS-Weekly

# Conflicts:
#	Reports/2020/SwiftOldDriver#107-2020.03.30.md
  • Loading branch information
CrazyCoderShi committed Mar 30, 2020
2 parents c24367b + 4b5cb44 commit f69c724
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions Reports/2020/#107-2020.03.30.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@

[@J_Knight_](https://weibo.com/1929625262/profile?rightmod=1&wvr=6&mod=personinfo&is_all=1):本文探索了将 Debug Information Format 改为 DWARF 可以提高编译速度的原因。首先介绍了 DWARF 和 dSYM 的生成时机,以及设置 DWARF with dSYM 与否的产物区别和性能区别,并提供了在不同情况下的性能测试结果。通过本文可以让我们对编译器的编译过程、调试器的调试符号查找过程有较为深入的认识,也可以让我们明白为什么这种优化可以带来编译性能的提升。

### 🐕 [微信支付跨平台软件架构](https://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=2649287208&idx=1&sn=6f3813deaad2aa6f096bc0b0d7ba8c34&chksm=8334ceaab44347bc903bcf1d00898e124ccbc509fd628b119071b41a05959f09df2ef0716bea&mpshare=1&scene=1&srcid=&sharer_sharetime=1584703159505&sharer_shareid=c357a4972a00ef443223641b12ffbd76#rd)

[@莲叔](http://aaaron7.github.io/):说起跨平台,我们一般想到的都是 RN、Weex 这样基于 JS 技术栈的跨平台技术。但 iOS、Android 都提供了比较友好的交叉编译工具,使得基于 C/C++ 的跨平台开发也是非常值得考虑的一个选项。微信支付基于业务逻辑复杂、双端实现不一样导致的高昂的维护成本的背景下,开发了一套基于 C++的跨平台开发框架,使得核心的业务逻辑都下沉到 C++中,使用同一份代码来实现,取得了非常显著的业务效果。该文对该架构进行了详细的介绍,也有很多关于架构设计过程中的考量的解析,非常有参考价值。推荐工作中有较多架构工作内容的同学阅读。

### [Swift 5.2 正式发布 & 5.3 正在路上](https://swift.org/blog/5-3-release-process/)

[@享耳先森](https://github.com/iblacksun):Swift 5.2 已经正式发布,主要是对错误诊断的增强以及以下两个新特性:
Expand Down Expand Up @@ -54,6 +58,10 @@ Swift 5.3 已确定相关计划,专注于质量和性能提升,另外,预

[@CrazyCoderShi](https://github.com/CrazyCoderShi):日常的 Flutter 开发中,如果你想和 Native 层交互,那么 Platform Channel 是必经之路,提供方便之余我们也好奇其实现原理,底层是如何操作的,本文多个纬度深度剖析 Platform Channel ,其中源码分析更是抽丝剥茧,从更深的层次带你全方位了解 Platform Channel 。

### 🐢 [在 ARC 下对非 ObjC 类型的指针进行操作的编译器陷阱](https://mp.weixin.qq.com/s/SE5vpD733SQw9_yc1JN_TQ)

在 MRC(手动管理内存) 时代,内存管理是一件很重要的事,稍有不慎,就可能造成内存泄漏甚至 crash 如果开启了 ARC 模式,在 backend 阶段会通过几个 ObjcARC Pass 插入基于引用计数的内存管理语句,从而使我们不必再去手动 `retain` 或者 `release` 对象,而且,ARC 下的内存管理常常会比我们手动管理得更好,内存泄漏更少但 ARC 也并不是完全不会出错,如果某些隐式操作逃过了 ObjCARC Pass 的“火眼”,可能会生成不配对的 RC 语句,从而导致运行时异常本文介绍了两种可能引发 ARC 异常的情况并分析了原理,也可以让我们更深入了解 ARC 的底层原理

## 工具

> 开发过程中常用的工具,及一些新工具的介绍
Expand All @@ -62,6 +70,10 @@ Swift 5.3 已确定相关计划,专注于质量和性能提升,另外,预

> ,代码段,开源app

### 🐕 [SourceKitForSafari](https://github.com/kishikawakatsumi/SourceKitForSafari)

[@莲叔](http://aaaron7.github.io/):相信对于绝大多数开发同学来说,在选择把一个 github repoclone 到本地之前,都会在页面上先浏览一下代码,看一下是否能够大概满足自己的要求。但在网页上看代码普遍是比较痛苦的,SouceKit for Safari 就是解决这个痛点的一个插件,它实现了在浏览器的环境中实现一些基本的 IDE 功能,比如跳转到定义,查看文档以及查看变量定义等功能。配合 Octotree 插件(github 的文件列表插件),相信可以极大的提升 github 的使用体验。我已经迫不及待想要尝试一下了。

## 书

> 比较不错的书的推荐和书评
Expand Down

0 comments on commit f69c724

Please sign in to comment.