人物訪談 | 東坡肘子:健康&開發

語言: CN / TW / HK

肘子是摸魚週報的一位編輯,最早知道他還是通過他寫的幾篇關於 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 Code http://augmentedcode.io/ 頻譜檢視應用 Signal Path 作者 Toomas Vahter 的部落格。每個月 2-3 篇的更新量。內容主要涉及 SwiftUI、UIKit、XCTest 等。
Create with Swift http://www.createwithswift.com 由三名義大利人(Giovanni Monaco、Tiago Gomes Pereira、Moritz Philip Recke)建立的部落格。內容以 Combine、SwiftUI 為主。
Donnywals.com http://www.donnywals.com Practical Combine 以及 Practical Core Data 兩本書籍的作者作者 Donny Wals 的部落格。主要聚焦於 Core Data、Combine、SwiftUI 等內容。
Dave Delong http://davedelong.com Dave Delong 的部落格,最近一年更新的不太頻繁。2020 年建立了一系列有關如何用 Swift 開發 HTTP Stack 的精彩內容。
Filip Němeček http://nemecek.be ImpressKit 作者 Filip Němeček 的部落格。關於 UIKit 方面的內容較多。
FIVE STARS http://www.fivestars.blog/ Federico Zanetello 的部落格。當前集中於 SwiftUI 方面的內容,每篇文章都很有價值。
Hacking with Swift http://www.hackingwithswift.com 暢銷書籍作者 Paul Hudson 建立的網站,內容涉及 Swift 的各個方面。
Holy Swift http://holyswift.app Leonardo Pugliese 的部落格。除了有關 Swift 的內容外,每篇文章都會介紹一副繪畫作品。
iOS Dev Weekly http://iosdevweekly.com Dave Verwer 建立的 Newsletter 站點。少有的僅以 Newsletter 作為表述方式的作者。
Masilotti http://masilotti.com/ Joe Masilotti 的部落格。有不少關於單元測試、UI 測試方面的內容。
Oleb http://oleb.net Ole Begemann 的部落格。十多年間持續創作和 iOS 開發有關的內容。
onmyway133 http://onmyway133.com Khoa 的部落格。非常高產,最近兩年有關 SwiftUI 的內容居多。
Raywenderlich http://www.raywenderlich.com 知名的技術書籍出版商。儘管是商業機構,但仍提供了大量優秀的免費課程(課程基本上都會提供完整的專案程式碼)。
Sarunw http://sarunw.com 泰國開發者 Sarun W 的部落格。創作了很多有關蘋果生態開發的內容。他開發的 codeshot 可以方便的將程式碼轉換成漂亮圖片以利於交流。
Swift with Majia http://swiftwithmajid.com Majid Jabrayilov 的部落格。他關於 Swift UI 資料架構方面的文章對我的影響很大。最近在做 Microapps 的專題。他的週刊 SwiftUI Weekly 已經提供了超過 90 期的內容。
SwiftLee http://www.avanderlee.com Antoine van der Lee 的部落格。除了原創的文章外,每週通過 SwiftLee Weekly 介紹其他優秀的文章和工作機會。他開發的 RocketSim 對於 Xcode 的使用者幫助不小。
Swiftly Rush http://www.swiftlyrush.com Adam Rush 的部落格。堅持周更,以 Tips 為主。也提供週報
Swift Rocks http://swiftrocks.com Bruno Rocha 的部落格。更新不頻繁,但不時會有相當有深度的內容出現。
Swift by Sundell http://www.swiftbysundell.com Swift 靜態站點生成器 Publish 的作者 John Sundell 的部落格(我的部落格就是由 Publish 構建)。除了每週精彩的文章外同時還通過 Podcast 與很多業內專家交流最新的技術動態。
The SwiftUI Lab http://swiftui-lab.com Javier 的部落格。他撰寫的關於 SwiftUI 的文章對 SwiftUI 的開發者影響很大。他開發的的 A Companion for SwiftUI 是每個 SwiftUI 開發者都應購買的工具。
Trailing Closure http://trailingclosure.com 著重於 Swift UI。每篇文章都會介紹一個 SwiftUI 動效方面的具體實現。
Try Code http://trycombine.com Marin Todorov 的部落格。作者參與了不少蘋果官方的開源專案。最近正在打造一款輕量級的 Swift IDE。
Yet Another Swift Blog http://www.vadimbulavin.com Vadim Bulavin 的部落格。內容主要涉及 Swift、SwiftUI、單元測試等。

現在很多開發者會因為程式設計師是青春飯而焦慮,而你作為一個技術領域的老兵卻時刻保持著對技術的熱情,能說下你能一直保持熱情的原因嗎?

學習使我快樂,能力提高讓我獲得滿足。有點類似於打遊戲,不斷通關,堅持不 Game Over。

當前的職場環境好像給每個參與者都帶來了不小的壓力。與其為年齡而焦慮,我覺得更應該時刻關心自己是否保持了學習的熱情和動力。技能往往是與職業繫結的,而學習能力與職業無關。人一生中處於不同的崗位或職業是十分正常的事情。相較於 IT 屆,年齡因素在很多其他行業佔據著更加重要的位置。無論身處什麼行業,在職業技能提高的同時,也要做到個人綜合能力的提升。儘管未必能減輕多少因年齡而產生的焦慮,但至少可以獲得更多面對未來的信心。