iPhone 14 系列屏幕尺寸变化
本次发布会总共 4 款 iPhone:基础款 iPhone 14,加大基础款 iPhone 14 Plus,Pro 款 iPhone 14 Pro,加大 Pro 款 iPhone 14 Pro Max。
本次发布会总共 4 款 iPhone:基础款 iPhone 14,加大基础款 iPhone 14 Plus,Pro 款 iPhone 14 Pro,加大 Pro 款 iPhone 14 Pro Max。
弱引用本身就很奇怪,本文是收集了一些常见的编程语言对弱引用的实现方法。我们的目标是找到最佳方法用于 Vale,以符合其快速、内存安全和易于使用的目标。最后,我们制定了一个全新方法。
大部分共享所有权的编程语言中,如 Python、Swift、Obj-C、C#,正常的引用是"strong"的,即我们常说的强引用。只要还有一个强引用指向对象,那么对象就不能被释放。当最后一个强引用消失之后,对象被释放。
在引用计数的语言里,如 Swift,当不再有强引用指向对象时,能够立即通知删除对象。在跟踪垃圾回收的语言里,如 Java,解释器会通过事件的方式通知删除对象。
相对于强引用,我们还有弱引用,类似于一个快捷方式或者软链接一样,不会对对象进行保活。目标对象被释放时,他们会变成 null。
我们知道强引用容易触发“循环引用”的问题,导致对象无法被释放,最终内存泄漏。这时我们可以引入弱引用打破这个循环,例如 Swift 里面的[weak self]
。我们还可以通过弱引用来判断一个变量是否还存在,如果存在还可以继续后面的逻辑。
今年是 Rust 大年,发展非常迅速,也是今年要重点学习的一门编程语言,但是因工作过于繁忙,遂搁置一边。
上半年只看了一个 star 只有 900 多的超小众实验性编程语言 Vale,我学了能干嘛呢?P 用没有!
又是一年一度的 WWDC,例行总结一下。
本文探讨在设计 GUI 客户端的架构模式时遇到的问题以及解决方案。
所有带图形交互的客户端都可以叫 GUI 客户端,包含但不限于:Windows/Mac/Linux 客户端,Web 页面,Android/iOS App,小程序,快应用,KFC 点餐台等各种显示屏等。
前置声明:本文是本人关于 SIP 资料的一个梳理结果,80%的内容都是摘自各个参考资料的一部分,20%是自己在 12-14 年间 SIP 相关工作的理解感悟,然后根据自己拟定的目录大纲进行整合。本文所有版权不归我,如有侵权,请告知,必删。
为什么要写这么一篇文章?
我司(Legrand)核心产品是楼宇视频对讲设备,在业界的名气还不错。
视频通话或者视频会议技术栈通常是 SIP 标准协议,我们当然也不例外。
自从我专做 iOS 开发之后,我就很久不玩 SIP 了,但是这些 SIP 的东西还是没有完全忘记。最近领导给我们开了 Q2 业绩会,提出老旧系统改造,包括 SIP Server 升级,NAT 打洞啊,目的是为了提高系统的稳定性,节省服务器的资源开销。
这些工作跟我没啥关系,因为我不做服务器,但是勾起了我多年的回忆。随即产生一个想法,就是给当年完全不懂 SIP 的自己写一篇入门文章,当做是对自己过去工作、技术的一个总结。
OK,废话不多数,正文开始。
这本书叫 《Operating Systems: Three Easy Pieces》 ,来自美国威斯康星大学课程的教材。
中文版翻译叫操作系统导论,翻译的质量还不错,豆瓣评分 9.4。
最近在看一篇文章,美国计算机学会通讯(Communications of the ACM)期刊 2022 年 5 月第 65 卷第 5 期将发表一篇有关 Go 语言的综述类 Paper:《The Go Programming Language and Environment》。这篇文章的作者是 Go 核心团队,复盘了 10 多年来 Go 的演化发展,深入分析了那些对 Go 的成功最具决定性的设计哲学与决策。
这篇文章解答了我下面几个疑问:
强烈推荐大家都看一遍,英文不好的可以看中文版。
最近大半年,随着字节跳动、腾讯相继开源了自己的设计语言,又让“Design Language”这个词在业界火了一把。
有的厂商也用"Design System"这个词,都是一个意思,我个人认为"Language"比"System"更好。
关于设计语言的鼻祖,应该就是 Apple 的 Human Interface Guidelines。我查了一下资料发现,早在 1987 年,Apple 发布 "Macintosh II" 型号个人电脑的时候,Human Interface Guidelines 就诞生了。
现在的业界老二是 Google 的 Material Design , 2014 年才发布,纯纯的后生。