老司机 iOS 周报 #226 | 2022-12-05 #3744
ChengzhiHuang
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
老司机 iOS 周报,只为你呈现有价值的信息。
你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。
新手推荐
🐎 How to fix "The compiler is unable to type-check this expression in reasonable time" error
@zoeGuo:"The compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions" 可能是新手经常遇到的编译器报错,出现问题时,注释可疑代码可以快速定位问题,对问题代码中的表达式做出合理简化即可解决报错。文章提供了一些良好的分解、简化表达式的示例,对新手开发者会有所帮助。
文章
🌟 🐢 C++ exception handling ABI
@ChengzhiHuang:本文介绍的虽然是 C++ 的 Exception 处理,但其实 iOS 开发者非常熟悉的 NSException 其实也是由
objc_exception_throw()
方法中调用__cxa_throw()
抛出的,而__cxa_throw()
其实就是 C++ 的异常抛出。因此可以说 NSException 的抛出链路以及后续处理是与在 C++ 中直接throw
是一摸一样的。之前我们也介绍过 Stack unwinding 相关的内容,大家可以先了解 unwinding 相关的内容再阅读本文,这对于我们加深对栈回溯以及如何实现 Exception handling 会有更深的理解,甚至也可以尝试捕获没有被 catch 的 NSException 防止崩溃并恢复到合适的调用栈让程序运行下去
类似的线上兜底方案。本文大致内容如下:__cxa_*
开头的对应 API ,上文提到的__cxa_throw()
就是在这一层定义的🐕 领域驱动设计四论
@莲叔:很多同学在学校中,学《软件工程》读《人月神话》,往往对复杂软件工程充满了幻想。但毕业投身互联网公司后,发现绝大多数项目的节奏、架构与实现似乎都与理论知识相去甚远。慢慢的我们不再关注那些伟大的设计思想,只剩满脑子的敏捷开发、动态化和热修复。这篇文章从略微偏理论的角度总结了领域驱动设计思想的几个方面,分别用于解决什么问题,怎么解决的。读完颇有一种如沐春风的感觉,不仅仅是对于这一理论的学习,更多的是从了解 DDD 如何解决软件工程复杂度获得启发,获得一个全新的视角去看待目前手头的业务与项目。推荐你耐心读完,会有启发。
🐎 Testing async/await exceptions
@Smallfly:单元测试是保障代码健壮性的重要手段,Apple 先后提供了
XCTAssertThrowsError(expression:)
和@frozen enum Result<Success, Failure> where Failure : Error
等异常检测方法,但对于async/await
这样的协程来说并不友好。本文介绍了一种async/await
风格的异常测试方法,能简化一些重复代码,推荐有需要的同学阅读。🐕 支付宝客户端体验度量与诊断
@Crazy:本文是一篇针对性能监测设计方案讲解的佳作,写出了客户端现有的几种耗时类场景的监测方案与处理方案,虽然本文是以 Android 开发者视角来进行讲解,但其中的设计思路以及分析流程值得所有客户端开发者借鉴。本文通过以下四个方面来讲解了支付宝的性能监测是如何实现的:
其中关于场景度量手段、场景度量精度提升与 APM 性能平台部分的讲解值得所有客户端开发者阅读,而关于场景性能诊断的讲解值得 Android 开发者仔细阅读。
🐕 Stable Diffusion with Core ML on Apple Silicon
@含笑饮砒霜:自 2022 年 8 月首次公开亮相以来,Stable Diffusion 已被充满活力的艺术家、开发人员和爱好者等社区采用,只需输入文本即可创建前所未有的视觉内容。苹果公司通过对 Apple Silicon 芯片的进一步优化,Core ML Stable Diffusion 模型可以更充分利用 M 系列芯片中的神经引擎和苹果 GPU 架构的优势。如要开始使用,可以访问Core ML Stable Diffusion 代码存储库以获取有关基准测试和部署的详细说明。
🐕 一个 WebKit Bug 导致小程序页面跳转失败的问题的排查经历
@水水:作者从收到一个小程序在调用 my.redirectTo() 之后,再调用 my.navigateTo() 时无响应,无法跳转下一个页面的线上问题反馈说起,到排查到是因为一个 WebKit Bug 导致的过程完整的进行了阐述。是一个比较少见的排查难度较高、问题根因较深的问题,文章将排查期间的思考记录下来,希望也可以为读者做参考。作者最后也提醒我们:人的固定认知,不一定就是对的 ~
音视频
🐢 How to contribute a new feature to Swift?
@Cooper Chen:众所周知,Swift 语言作为新一代的开发语言,其开源的特质使得开发者能够更加灵活高效的为其提供新的特性,本视频详细叙述了开发者如何为 Swift 贡献新的 feature ,其中针对开发者如何从提交一个提案到最终解决方案上线给出了详细的流程步骤解释。而对于想要为 Swift 社区提供建议和想法的开发者,视频也给出了如下建议:
摸鱼周报
@摸鱼周报 #77:第 77 期摸鱼周报来了,一起来看下本期概要:
inlinable
关键字讲解内推
重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考
具体信息请移步:https://www.yuque.com/iosalliance/article/bhutav 进行查看(如有招聘需求请联系 iTDriverr)
关注我们
我们是「老司机技术周报」,一个持续追求精品 iOS 内容的技术公众号,欢迎关注。
关注有礼,关注【老司机技术周报】,回复「2021」,领取 2017/2018/2019/2020 内参
同时也支持了 RSS 订阅:https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom 。
说明
🚧 表示需某工具,🌟 表示编辑推荐
预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)
This discussion was created from the release 老司机 iOS 周报 #226 | 2022-12-05.
Beta Was this translation helpful? Give feedback.
All reactions