2018 年終總結,記錄在今年的最後一天工作日。
本來只想發個沸點,但是寫著寫著發現字數太多了… ⇎_⇎
總感覺是,碌碌無為。
關於工作:
-
年中的時候,送走了合作一年多的老搭檔,一個月後迎來了一位新搭檔,嗯,三個月後又送走了她。
-
年初開發沸點的時候,遇到效能瓶頸,開發週期也非常緊張,做了個冒險的決定,硬著頭皮用了一個週末自學 Texture 的整個框架及
Flexbox
佈局,又用了三天的時間把基於UIKit
寫好的沸點資訊流以及部分詳情頁全部重構了,期間遇到很多問題,很多挑戰,如高頻率的閃爍、與工程現存的快取相容等,但好在都一一解決了,雖然過程很痛苦,現在看來收益還是遠遠大於成本的。 -
小冊本地化上線前,被蘋果連續稽核拒絕 6 次,上訴到稽核委員會,最後蘋果美國聖荷西總部的一個妹子打電話過來溝通,懟了她整整一個上午,第二天提交了第 7 次,通過了。
-
上小冊就要做內購,做內購就要上
IAP
,上了坑爹的IAP
就要應付隨時隨地可能發生的丟單、掉單問題,這種由移動端驅動伺服器進行的驗證支付模式,真的反人類,為此設計了一整套用以應付 使用者扣款成功後立刻發生斷網、扣款憑證上傳伺服器驗證的過程中突然發生斷網等異常而導致的丟單問題的自動啟用驗證的重啟處理,即使這樣也不能徹底避免丟單問題,可見之坑。 -
十一回來花了三週的時間開始重構,重頭做了掘金 iOS 端的元件化。
-
眾所周知掘金的 iOS 端閃退問題相當頻繁,下半年藉由元件化的契機進行了大範圍的重構,改善最顯著的還是記憶體問題,從7月下旬開始,崩潰率逐步由
2.42%
的水平降低到現在的0.16%
,文章閱讀頁還是存在很多問題,亟待改善,想想去年接手專案時的崩潰率能達到接近6%
的水平,使用者真的是很善待我們了。 -
在推進掘金 iOS 端
Swift
化的道路上,嘗試了很多方案,也放棄了很多方案,這不是一條好走的路,或者說最開始上混編就是個錯誤的決定。去年在上海的Google Developer Days
上和阿里的朋友聊了許久,他們硬生生從 純Swift
環境撤回了純Objective-C
環境,原因很多,其中的包袱也很多,在今年的SwiftGG
大會上也聽到了唐巧講述的猿題庫Swift
遷移之路,和我們面臨的困境非常像,我思考了許久,至少到目前,我對Objective-C
遷移到Swift
的看法是:- 1.避免混編,否則你將犧牲
Swift
的許多特性來應對相容問題,安裝包的體積也是一個問題 - 2.如果無法避免混編,那就不要想著將
Objective-C
的程式碼“翻譯” 成Swift
,更好的做法是,將它們的程式碼進行隔離管理,新業務用Swift
繼續寫,老業務等著迭代來替換,除非你能接受重頭來過的代價。
- 1.避免混編,否則你將犧牲
-
還做了些微不足道的事,比如說上了個 iPad 版本之類的。
關於技術:
這一段應該算是過去的這一年當中最沒有成就感的部分,總結下來就是在 iOS 的框架裡做個 API 搬運工,並沒有太多值得高興或者說興奮的事情發生,社群應用從技術層面上講,就是這個樣子。
迷茫
很多 iOS 開發常常會因為一句 「iOS開發沒人要了」 而不爽,甚至惱羞成怒,懟曰:沒人要是因為你不行,高階專家需求可大著呢。
首先是一名程式設計師,其次才是一名會 iOS 開發的程式設計師。
許多 iOS 開發者都在談論著底層底層,我最近經常會想一件事,就算把 iOS 啃穿了也只是把蘋果的 SDK 啃了一遍而已。誠然像 Runtime
、Swift
等這些都是完全開源的,但一碰到像 RunLoop
、 Core Animation
內部實現這樣的核心技術點,還是有一層厚厚的閉源壁壘,花大把精力在一家平臺的 SDK 上,值得嗎?
看到有些朋友轉行去了 AI 領域,做著挑戰與壓力並存的工作,覺得自己似乎是在浪費人生。
產生上述想法的原因總結下來就算兩個字 —– 焦慮
做了什麼
由於上面的焦慮感,導致這一年混混僵僵的做了很多事,但似乎每一件都沒什麼實際價值或者說是意義不大。
-
嘗試了幾門新語言,
Ruby
、Python
和Go
, 也就是照葫蘆畫瓢的水平 -
從去年的 GDD 大會之後,試了下
Flutter
,感覺一般,今年又試了幾次,沒有太多的感觸,相反各個群裡對Flutter
的討論倒是熱火朝天。 -
年初面向公司內部的做了一次技術分享 《面向協議程式設計(Protocol Oriented Programming)之旅》
-
嘗試給掘金的 iOS 客戶端上一套 Crash 自動防護,最後發現 Hook 系統類的風險過大且不可控,不 Hook 系統類能做的防護又很有限,企圖一勞永逸的想法破滅,最後不了了之。
-
參加了 9月份在北京舉辦的
SwiftGG
大會,見了喵神王巍、唐巧、戴銘等一眾大佬。 -
寫了幾個 Mac 工具,自己在用,沒有開源。
-
自己的部落格重新搭了,但是沒有更新內容,都存在電腦裡了,不知道為什麼,對寫文章突然沒了什麼興趣。
-
iOS 逆向做了些皮毛研究。
-
研究了一陣子美軍軍用訓練模擬器的民用版,著名硬核軍事模擬遊戲
ARMA3
的C++
模組 -
《程式設計珠璣》英文版,還沒讀完。
-
公司後端上容器化的時候,學習
Kubernetes
,考慮對掘金的 iOS 程式碼也做成容器部署到 CI 平臺上,後來發現沒有太合適的Objective-C
或者Swift
的相關映象,要麼放棄,要麼自己寫一個。 -
年底投稿了一篇《iOS 知識小集》,南大 給發了微博。
總結
造成年末這種空虛感的最主要原因,是自己的內心並沒有一個明確的目標,一直在思考想要做什麼,想要什麼,但究竟怎麼規劃,不知道。
這幾天讀了一些書,也聽了一些書,有些感觸。
腳踏實地做好自己,iOS 都做不到極致,談什麼更遠的目標呢。
其實睡眠質量的影響也很大,推薦一本書《睡眠革命》,親身實踐,睡眠質量顯著提升。
今年吸取去年的教訓,年初就訂好一個清單,逐步實現,一步一個腳印。
關於生活:
-
今年沒怎麼運動,一共騎行了 396.17 公里,平路最高時速 46.93 km/h 創造了個人最好成績 ,主要還是在北京,沒有去什麼遠的地方,環臺灣的計劃又擱置了一年。
-
給妹子買了輛 Wilier GTR,找了個週末帶著騎了一百多公里,現在再也不跟我騎車了。
-
踢了十幾場球,期間傷了三個月,漲了 15 斤,從 邊鋒 踢到 邊後衛。
-
6月底在小區門口遇到了一條小流浪狗,尾巴被人折斷了,很可憐就收養了,現在半歲大,很粘人。
-
11 月底和妹子一起去了趟日本,棒球青春的聖地 甲子園,圓夢。去了趟京都,隨手拍了一些照片。
-
把
EVA
又在 B 站上從新補番了一遍,還是對這種無處不在的細節震撼。 -
給父母和自己買了商業醫療保險,程式設計師的健康問題更像是個隱疾,權當理財了。
-
Steam賬單
-
本地多人合作類
- 《Overcooked》 ¥26
- 《Move or Die 4 Pack》 ¥167
- 《Human: Fall Flat》 ¥60
- 《Lovers in a Dangerous Spacetime》 ¥48
- 《Overcooked! 2》 ¥90
- 《Rocketbirds: Hardboiled Chicken》 免費
- 《Rocketbirds: Evolution》 免費
-
本地沙盒模擬類
- 《Yonder: The Cloud Catcher Chronicles》 ¥46
- 《太吾繪卷 The Scroll Of Taiwu》 ¥68
- 《Cities: Skylines Deluxe Edition》 ¥28
- 《Oxygen Not Included》 ¥58
-
模擬駕駛類
- 《Fernbus Simulator – Platinum Edition》 ¥174
-
體育類
- 《NBA 2K18》 ¥199
-
競技網遊
- 《Counter-Strike: Global Offensive》》 免費
-
後記
有些囉嗦了,大概就是這些吧。