人物访谈 | 东坡肘子:健康&开发

肘子是摸鱼周报的一位编辑,最早知道他还是通过他写的几篇关于 Swift 的博客。他的博客专注于 Swift 领域,每篇文章的质量都很高,是这个领域非常值得关注的博客之一。后来了解到他之前得过一场大病,现在的生活节奏基本平稳有序。又想到其他几位圈里同样受到疾病影响的开发者,就决定了这次访谈的主题:健康&开发。

简单介绍下自己吧

大家好,我是东坡肘子,70 后。小学时获得了我的第一台电脑(CPU 是 MC6800),几十年来更换过不少设备,算是亲身经历了信息时代的巨大变迁。尽管一直以来都对于硬件开发、软件编程十分喜爱,但并没有以此为职业。最近几年,由于疾病的原因,目前赋闲在家,通过博客 肘子的 Swift 记事本 记录一些关于 SwiftUI、Core Data、Combine 等方面的学习心得。

由于治疗的需要,我从一个不喜欢记笔记的的人变成了每天必须要记录大量数据(其实主要还是依赖我妻子)的人。前年通过手术,生活质量获得了较大的改善,本以为所需记录的数据能少一点,但事与愿违,数据量减少了,数据种类却大大的提升了,而且可以明确的是,这些数据将要在我有生之年一直记录下去。因为喜欢技术和记笔记的需求,于是就开发了一款 iOS app ——「健康笔记」。

最近也经常听到一些上班族特别是程序员群体相关的健康话题,很显然健康非常重要也很容易被大家忽视。方便讲一下你患病的原由吗,也提醒大家重视健康问题?

2013 年,我的身体状况出现了异样,每天不停的呕吐,几乎无法进食。当时工作很忙,休息时间无法得以保障,自认为或许是睡眠不足导致的肠胃问题。在家人的强烈要求下,去医院做了检查。简单的化验后,医生立刻就明确了问题所在——尿毒症。入院时的身体相当糟糕,肌酐达到 2100μmol/L(正常值通常低于 100)、血红蛋白 4.6(男性正常值通常高于 12)。

人是一种挺神奇的动物,在去医院的前一周,我还跑了三个城市。但在住院后,透支的身体立刻就无法继续坚持了,出现了数次的生死危机。经过几年的透析治疗,我在 2018 年接受了肾移植手术,目前各方面都恢复的不错。

都说久病成医,作为一个经历较大疾病的人,有没有什么忠告或建议给大家?

我很幸运,在关键时刻就医、有家人的悉心照顾、有不错的医疗资源。在身体逐渐恢复后,我迫切地希望有更多的人能够及早认识到健康的重要性,避免走到难以挽回的地步。

如实在无法做到早睡早起、按时吃饭、健康饮食、科学养生,希望至少重视以下两点:

  • 尊重你身体的求救信号。绝大多数的疾病,都不会毫无预警地凭空而来。不要将身体的一切不良反应都归于工作忙、压力大等因素。最起码要严肃的面对每一次的体检结果,及时完成需要进一步随检的内容。
  • 不要过度。在连续的熬夜加班后休息半天,休息后再工作或许可以取得意想不到的进展,熬夜加班中休息半天,或许可以取得意想不到的工作进展,更加关键地是,可以让你紧绷的身体获得适度的放松。身体是属于你自己的,也只有你自己可以对其负责。爱惜它、保养它,真正做到「活久见」,而不只是当成一个梗。

这几年我在知乎上从一个曾经的透析患者角度,对尿毒症、肾移植等方面的内容做了些介绍和解答。以下是其中的一篇,希望帮助到有需要的人——刚确诊尿毒症,患者和家属应该注意什么?。当然也衷心地希望大家都能身体健康。

@zhangferry:我的父亲也是尿毒症患者,于 19 年做了肾移植。他早期是痛风,痛风患者是需要严格控制喝啤酒的,他忌不住嘴,导致病情加重,以至于发展为慢性肾炎。后来看一则广告推荐的中医,治疗不当,最终发展为尿毒症。我曾随父亲多次往返医院的血液净化中心,也见过很多年轻的患者,对这个病感触非常深。现在回想过来正是由于早期很多应该做的措施没有做对,才造成了最终的后果。当前的教训就是:重视健康问题,及早正确的治疗。 > > 从痛风这个点说起,它的前身一般是高尿酸血症,长期的高尿酸血症易发展为痛风。目前高尿酸血症的患病人数为 1.77 亿,痛风患病人数为 1466 万,这个比例已经很大了,以至于高尿酸血症被称为"第四高"。尿酸指标属于肾功能检查(非血常规),一般体检都会有,当尿酸数值超过 420μmol/L 即表示为高尿酸血症。如果是爱康国宾的体检的话,App 里体检报告的基本健康数据就会显示尿酸数值。 > > 高尿酸血症及痛风的高发人群是:偏好海鲜等高嘌呤食物、过度饮酒不节制、作息不规律、纵容肥胖,不爱运动、吸烟。所以如果你的尿酸指标已经高了的话切记克服以上的生活习惯。 > > 人身体的潜能和耐受力都是巨大的,特别是年轻的时候,但要知道这不是挥霍身体的理由。这副躯体我们是要用一辈子,而且没法随意更换的,我们一定要好好爱惜它。最后还是希望通过肘子跟我的一些经历,提醒到大家重视健康问题。 > > 数据参考:第一财经商业数据中心:2021中国高尿酸及痛风趋势白皮书

你在开发的一款应用是「健康笔记」,能简单介绍下这款应用的功能和未来规划吗?

透析阶段,我采用的是腹膜透析方式。它的优势是可以在家中进行,无需每周多次往返透析中心。腹膜透析每天需要做多次的透析液更换,并且每个月都需要去医院做随诊和验血。数年间,我记录了大量的有关透析治疗和身体检验等方面的数据(数个笔记本)。移植手术后,因为需要终身服用免疫抑制剂,目前仍每个月进行一次验血,以跟踪某些指标。

尽管市面上已有一些针对特定疾病进行数据跟踪管理的 App,但随着治疗的发展,需要记录的内容也不断发生变化,到达某个阶段后,这些 App 便无法继续胜任了。 因此,我决定开发一款可记录各种数据类型的 App。

本质上讲,「健康笔记」是一款支持高度定制数据类型的记录工具。目前支持七种数据格式,并可为数据设置各种验证条件。除了健康数据外,使用者还可以使用「健康笔记」记录生活、工作中遇到的绝大多数可量化或不可量化的内容。

相较于纯记录型工具,「健康笔记」更注重对数据的分析和管理。提供了多维度的图表,并且使用者可以将 App 中的数据导出到其他的软件或工具中进行分析。

「健康笔记」基于 SwiftUI 和 Core Data with CloudKit 进行的开发。目前可用于 iOS 14 以上的设备。当前的版本为 2.x,3.0 版本目前仍在开发中。

健康笔记

现在的生活节奏怎么样?你说目前是处于一种赋闲在家的状态,对于没有外界约束的状态,保持规律的作息是比较难的一件事,你每天的时间是怎么安排的呢?

当前的生活状态可以用两个字来总结——规律。每天早上 6:00 点起床、晚上 10:00 睡觉,三餐准时,全年不变。生活的内容主要围绕着照顾猫狗、健身、学习、阅读。

我已无需强迫自己遵循以上的作息,相反,如果某天意外地违反我反倒有些不适应。

你是怎么考虑独立开发和远程工作的?

「健康笔记」算是我的独立作品,但我并不算是独立开发者。

以我的理解,严格意义上的独立开发者至少要满足两个条件:

  • 将商业的思维贯穿于开发行为之中,开发的是商品而不是作品
  • 要有以开发成果作为其主要收入来源的决心

当有了以上觉悟的情况下,结合自身的情况再决定是否踏足这个领域。

因为疫情的原因,远程工作得到了前所未有的发展。在某些领域,远程的的效率甚至高于传统的工作形式。但无论远程有多么的方便,仍应尽量保持一定量面对面的交流。摄像头、麦克风、文字所能传递的情感与信息实在有限。

对于技术,目前主要就是在研究 SwiftUI 和维护自己的应用吗?2022 年,有没有什么新的技术方向的规划?

SwiftUI 是一个比较新的框架,处于快速变化和发展中,今年仍会投入不少的精力对其跟踪和学习。「健康笔记」也会做一次彻底的更新,相对于功能上的增加,我更想在 app 架构上有所突破。今年会着重于夯实基础,逐渐从「知其然」向「知其所以然」转变。

看你每周都会固定输出 Swift 相关文章,而且质量都很高,相信肯定是花了不少时间整理的。也看到你最近发了一篇停更说明,说是遇到了一些瓶颈,计划用一段时间做一些系统性的充电。这种严谨的学习态度非常让人钦佩,但另一方面产出数量就会降低,能说下你对自己产出内容数量和质量上的一些想法吗?

创建「肘子的 Swift 记事本」的初衷很单纯,通过记录加深理解、梳理思路。我对内容的产出数量并没有具体要求,但希望做到言之有物,在满足自身学习需求的同时具备一点分享的价值。

「肘子的 Swift 记事本」和「健康笔记」之间是相互依存的关系。因为想写「健康笔记」,所以创建博客帮助学习;文章的方向基本围绕着「健康笔记」的需求展开;学习的结果又通过「健康笔记」来得以实践。

从去年年中开始,我便开始了「健康笔记」3.0 版本的开发。在已完成了 80%左右的情况下,我决定将之前的工作全部推翻。尽管相较于 2.x 版本来说,新版代码有了些提高,但对我本人来说并没有质的飞跃。「健康笔记」作为个人实践和检验学习结果的载体,我并不希望为了升级而升级(从功能和稳定性角度来看,2.x 版本目前仍可胜任)。

此次停更便是想用一段时间来系统改善开发过程中发现的不足。此阶段的学习重点集中于理论层面,大多与语言和平台无关。希望届时能够有所收获。

写文章非常容易遇到知识盲点,对于这种问题,你是如何快速梳理出正确脉络的,有没有什么可以借鉴的技巧分享下?

事实上,并非总能快速梳理出思路。当碰到一个盲点时,我喜欢采用拓展阅读的方式,可能仅仅因为某个没有使用过的 API 而借机学习了解一下整个框架;一个短时间就能找到解决方案的问题,我会将其扩张成几天才能学完的内容。前期这种做法会十分耽误时间,但在有了一定的储备后,对于之后遇到的问题,梳理起来就会方便很多。

另外,我会订阅大量优秀博客的 RSS 或 Newsletter。每天早上我会用 30-60 分钟,将最新的文章进行一遍通读,在将来遇到问题时,从记忆中找寻解决之道。

以下是我经常关注的英文Blog或Newsletter,中文内容还需更多地关注摸鱼周刊。

名称地址简介
Augmented Codehttps://augmentedcode.io/频谱查看应用 Signal Path 作者 Toomas Vahter 的博客。每个月 2-3 篇的更新量。内容主要涉及 SwiftUI、UIKit、XCTest 等。
Create with Swifthttps://www.createwithswift.com由三名意大利人(Giovanni Monaco、Tiago Gomes Pereira、Moritz Philip Recke)创建的博客。内容以 Combine、SwiftUI 为主。
Donnywals.comhttps://www.donnywals.comPractical Combine 以及 Practical Core Data 两本书籍的作者作者 Donny Wals 的博客。主要聚焦于 Core Data、Combine、SwiftUI 等内容。
Dave Delonghttps://davedelong.comDave Delong 的博客,最近一年更新的不太频繁。2020 年创建了一系列有关如何用 Swift 开发 HTTP Stack 的精彩内容。
Filip Němečekhttps://nemecek.beImpressKit 作者 Filip Němeček 的博客。关于 UIKit 方面的内容较多。
FIVE STARShttps://www.fivestars.blog/Federico Zanetello 的博客。当前集中于 SwiftUI 方面的内容,每篇文章都很有价值。
Hacking with Swifthttps://www.hackingwithswift.com畅销书籍作者 Paul Hudson 创建的网站,内容涉及 Swift 的各个方面。
Holy Swifthttps://holyswift.appLeonardo Pugliese 的博客。除了有关 Swift 的内容外,每篇文章都会介绍一副绘画作品。
iOS Dev Weeklyhttps://iosdevweekly.comDave Verwer 创建的 Newsletter 站点。少有的仅以 Newsletter 作为表述方式的作者。
Masilottihttps://masilotti.com/Joe Masilotti 的博客。有不少关于单元测试、UI 测试方面的内容。
Olebhttps://oleb.netOle Begemann 的博客。十多年间持续创作和 iOS 开发有关的内容。
onmyway133https://onmyway133.comKhoa 的博客。非常高产,最近两年有关 SwiftUI 的内容居多。
Raywenderlichhttps://www.raywenderlich.com知名的技术书籍出版商。尽管是商业机构,但仍提供了大量优秀的免费课程(课程基本上都会提供完整的项目代码)。
Sarunwhttps://sarunw.com泰国开发者 Sarun W 的博客。创作了很多有关苹果生态开发的内容。他开发的 codeshot 可以方便的将代码转换成漂亮图片以利于交流。
Swift with Majiahttps://swiftwithmajid.comMajid Jabrayilov 的博客。他关于 Swift UI 数据架构方面的文章对我的影响很大。最近在做 Microapps 的专题。他的周刊 SwiftUI Weekly 已经提供了超过 90 期的内容。
SwiftLeehttps://www.avanderlee.comAntoine van der Lee 的博客。除了原创的文章外,每周通过 SwiftLee Weekly 介绍其他优秀的文章和工作机会。他开发的 RocketSim 对于 Xcode 的使用者帮助不小。
Swiftly Rushhttps://www.swiftlyrush.comAdam Rush 的博客。坚持周更,以 Tips 为主。也提供周报
Swift Rockshttps://swiftrocks.comBruno Rocha 的博客。更新不频繁,但不时会有相当有深度的内容出现。
Swift by Sundellhttps://www.swiftbysundell.comSwift 静态站点生成器 Publish 的作者 John Sundell 的博客(我的博客就是由 Publish 构建)。除了每周精彩的文章外同时还通过 Podcast 与很多业内专家交流最新的技术动态。
The SwiftUI Labhttps://swiftui-lab.comJavier 的博客。他撰写的关于 SwiftUI 的文章对 SwiftUI 的开发者影响很大。他开发的的 A Companion for SwiftUI 是每个 SwiftUI 开发者都应购买的工具。
Trailing Closurehttps://trailingclosure.com着重于 Swift UI。每篇文章都会介绍一个 SwiftUI 动效方面的具体实现。
Try Codehttps://trycombine.comMarin Todorov 的博客。作者参与了不少苹果官方的开源项目。最近正在打造一款轻量级的 Swift IDE。
Yet Another Swift Bloghttps://www.vadimbulavin.comVadim Bulavin 的博客。内容主要涉及 Swift、SwiftUI、单元测试等。

现在很多开发者会因为程序员是青春饭而焦虑,而你作为一个技术领域的老兵却时刻保持着对技术的热情,能说下你能一直保持热情的原因吗?

学习使我快乐,能力提高让我获得满足。有点类似于打游戏,不断通关,坚持不 Game Over。

当前的职场环境好像给每个参与者都带来了不小的压力。与其为年龄而焦虑,我觉得更应该时刻关心自己是否保持了学习的热情和动力。技能往往是与职业绑定的,而学习能力与职业无关。人一生中处于不同的岗位或职业是十分正常的事情。相较于 IT 届,年龄因素在很多其他行业占据着更加重要的位置。无论身处什么行业,在职业技能提高的同时,也要做到个人综合能力的提升。尽管未必能减轻多少因年龄而产生的焦虑,但至少可以获得更多面对未来的信心。

iOS摸鱼周报 第四十三期iOS 摸鱼周报 第四十二期