這一個月的主要任務

是將手上的專案

接上登入模組

 

就像之前所提到的

其實公司有很多App

架構都大同小異

像是登入,自選股,聊天室等等

以前的做法多是複製貼上

從最近開始才進行模組化的架構

登入模組是第一個模組

 

會使用登入模組的原因

是因為公司最近新增手機註冊的功能

而所有的App都必須要接上

所以主管指派一組人去做模組

其他組別只要改一下外觀設定

就可以套用

 

除了登入

包括註冊忘記密碼葉面等等

還有伺服器維修,強制更版等處理

都包在模組裡面了

各專案要實作的

就是把ViewController生出來後

再push到畫面上就可以了

 

最近上班的需求比較一般

沒有什麼比較特別的

除了一個--複合列舉

所謂的複合列舉

這邊有點難以解釋

有興趣的可以上網查一下

 

簡單來說用複合列舉的好處

就是可以彈性的擴充API

假設今天個人資料的api有八個欄位

我就可以利用複合列舉

取得八個欄位中的任意欄位

 

而且將來個人資料新增不同欄位時

也不須要再開一隻新的API

而是擴充原本的複合列舉就可以了

 

這個是很久很久以前聽過

但是終於用到的一個技巧

所以實際在使用上

會是把1+2+4+8+32這種方式

來取得複合列舉的值

 

不過後來又經過其他同事提醒

其實可以用位元運算子當中的 | (OR)

來做簡單的防呆

避免加到重覆的值

導致最後的複合列舉錯誤

 

也是受到這個啟發

原本code裡面

有很多over loaded的方法

後來就改成使用optional參數的方法

而不是一個參數就開一種方法

讓程式碼更簡潔

 

又最近下班感覺太清閒

所以又跟主管要了加班專案

不過這次要挑戰的不是單一專案

而是跨專案的購買模組

 

做模組就和做專案差異滿多的

考慮的就不只是好不好維護

而是別人要接的時候好不好接

能否滿足每一個專案的需求

 

所以在做之前

先把每一個專案都拉下來看一下

順便把之前build過的archieve檔案清一清

研究一下每一個專案的需求


另外一個做模組比較特別的點

就是還要寫詳細的文件

包括簡單的UML圖

告訴別人有哪些方法屬性可供使用

還有不可少的使用說明

 

在接下模組專案之前

主管便叫我先去了解登入模組的架構

看完整份Code之後

真的覺得自己的功力

和同事有差

 

有一點難形容

簡單來說就是程式碼看起來比較舒服

雖然說要達到一樣的功能

可能我也辦得到

但是就無法寫得那麼簡潔易懂

 

不過有鑑於之前接登入模組時

設定不完的按鈕顏色

未啟用,啟用,點擊狀態

還有邊框底色等等

 

用程式碼設定

真的是頗吃力

於是想到之前同事分享的IBDesignable

讓xib的屬性

可以即時在畫面上設定

並且預覽

 

原本以為會很簡單

結果實作上卻卡了好一陣子

不是說swift檔案找不到

不然就是程式直接crash

 

最後發現是由於我們的Backend專案

已經升級成為pod參考的方式

所以在新增完檔案後

最好就馬上下git commit

並且直接重新pod install

看到畫面即時render出來的時候

有一點感動也有一點傻眼

 

感動的是終於成功

傻眼的是一模一樣的步驟

不知道之前是在忙什麼...

 

最後分享一個不太算Bug的Bug

由於這一次的登入模組有串手機登入

在手機國碼的部分

使用Emoji套件

也就是吃手機裡面的國旗圖片

 

後來PM在測試時

台灣國旗圖片不見

後來仔細一查

還真的有這一回事

https://blog.emojipedia.org/one-emoji-doesnt-show-on-ios-in-china/

無奈之餘還帶一點淡淡哀傷

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 李家豪 的頭像
    李家豪

    李家豪的部落格

    李家豪 發表在 痞客邦 留言(0) 人氣()