【译】不要过早 DRY 你的代码
我们大概已经了解过“Don’t Repeat Yourself”或者说 DRY 这一编程美德了。不过先让我们停下来想一想:重复的代码真的是冗余的吗?还是说这些功能会随着时间独自进化成不同的样子呢?严格遵循 DRY 原则相当于过早引入了抽象,这会让未来的改动变得比实际更复杂。
我们大概已经了解过“Don’t Repeat Yourself”或者说 DRY 这一编程美德了。不过先让我们停下来想一想:重复的代码真的是冗余的吗?还是说这些功能会随着时间独自进化成不同的样子呢?严格遵循 DRY 原则相当于过早引入了抽象,这会让未来的改动变得比实际更复杂。
在日常开发中,数据内容的歧义可能是最常见的一种引发 Bug 的原因了。虽然 Swift 是一个强类型的语言,但是开发者自行构建的数据结构在使用时却很可能绕开了编译器的检测,这就带来了潜在的数据内容歧义问题。
最近需要在 Electron 项目上引入一个比较吃性能的大头功能,因为已经用 Objective-C 实现过一套稳定且性能也可接受的带 UI 方案了,所以计划看看能不能将这套现成的方案直接用到 Electron 里。但想要这么做就必须解决原生 UI 与 Electron 通讯的问题,再进一步,能不能让 Electron 以多进程的方式调起这个大头功能的 Demo 以节省掉绝大部分的重复工作呢?
本文只研究了原生 XPC 通讯的部分,关于集成到 Electron 里还有哪些坑会在下一篇文章里讲讲
咱们最有意思的第四篇 SwiftUI 教程来啦!为什么说是“最有意思”的呢?因为按照约定,在这篇文章里我们会一起来看看用 SwiftUI 开发界面的快捷便利体现在什么地方。相信这会让许多苹果开发者们耳目一新。
信了苹果教之后,每次有什么更新,我最期待的都是隐藏在大功能下的小细节,不知道有多少人跟我一样?
可能是全网最早的 SwiftUI 中文教程?
这篇文章来源于苹果官方的教程,相当于是我自己学习过程的一个记录。这个系列教程会跟着官方教程构造一个新的项目,还会加入一些 WWDC 的东西作为补充,可能偶尔会有一些自由发挥的部分。(不过我这里是做不出官方教程那种酷炫的动画了…)