翻寫原生,最基本的總是最重要
coding的時光總是過得特別快
一個月又匆匆過去啦
從這個月開始
手機組內用TFS進行專案管理
檢驗大家的工作進度
扣除掉一小時的「溝通時間」
每人每天總共有七個小時
兩周為一期的Sprint
總工時為70小時
百分之六十拿來做需求
剩下的則是維修bug以及精進技術
Sprint的第一天
就是開單預估工時
我這一期的主要任務
是把一個Xamarin的專案
套上公司template專案的架構
翻寫回原生Swift
當初以為不用重新思考邏輯架構
加上套用template的code
速度應該會很快
工時就估滿少的
沒想到卻嚴重超時
主要原因是卡在一些愚蠢的錯誤上
像是http request發不出去
檢查了半天
才發現是info.plist沒有設定網路權限
另一個卡很久的問題
就是codable 和 encodable
因為它們在IDE上的顯示的顏色
和class一樣
再加上繼承後不用實作任何方法
我就誤以為它們是class
在父類繼承encodable
但是子類並不會具有encodable的特性
因此在進行json轉物件的解析時
出來的值永遠為預設值
也是花了好久
最後才發現是這個原因
導致無法接到正確的資料
想建議以後組內都要寫一些防雷筆記
不然在一些基本問題上面卡很久
真的是很浪費生命
雖然被愚蠢的bug卡住很煩
不過看到前輩漂亮的code
還是滿開心的
從最基本的class拆分
建立資料的快取
還有寫泛型方法
以及使用extension的技巧等等
就像研究了很多遍的拳法劍譜
終於看到有人活靈活現的使出來
真的會打從心底讚嘆
當然更重要的就是模仿以及學習
除了翻寫原生專案
另外一個主要的需求就是接推播
其實步驟還滿麻煩的
必須申請推播憑證
(還分沙盒和正式版)
交給後台的同仁後
再使用測試程式進行推播
和PM驗收時
常常發現android收到推播了
iOS的推播卻不見了
具體原因為被apple斷線
但為什麼會被斷還不確定
而iOS推播格式也不盡相同
有一次後台退版
發送的推播格式有變
但是前端並沒有跟著改格式
仍然去解析舊的欄位
然後就閃退了
心得就是推播真的滿容易出錯的
必須要非常小心
這個月要修的bug
依舊是各種閃退問題
包括nuget套件版本過舊
用新的格式,解析到殘存的UserDefalt
http 請求的資料回來後
發現原本請求的頁面被消滅了等等
解bug除了耐心和了解程式邏輯
更重要的是從發生的時機
反推最可能的原因
能夠準確的重現bug
通常答案也就不遠了
當了工程師之後
才了解為什麼描述閃退情況
對於解bug這麼重要
Spring中精進的時間
主要是組內的code Review
除了觀摩正確的寫法
更多的是提醒彼此
不要犯下相同的錯誤
比如說把unix time轉成字串後比大小
雖然很幸運的這一次比對了
但是換一個環境編譯可能就不一樣了
還有資料結構的邏輯
不應該依附在畫面元件
例如把股票的key值
放在button tag上面
解bug的時候
不應該發生null時
就給他return
而是要找到源頭問題
做完需求後解bug
解完bug做需求
2019年第一個月就這麼過去了
緊接著就是農曆新年
主管跟每位工程師進行年終面談
問到如何知道自己進步
主管說其實有滿多方法的
最簡單的就是設立目標
如果不知道目標在哪
試著放大自己的優點
或是改正自己的缺點
也是一種進步
再不然就是想想
什麼會讓自己退步
當出現這種情況的時候
就要留意
剛起步的路上
可能自己有很多疑惑徬徨
甚至不必要的擔心
主管說有時候行動比擔心更有用
做就對了
期望今年的自己
能夠改掉這個擔心的壞習慣
(但還是會擔心改不掉)