只要給足夠的時間,我們都可以正確地完成功能,但過段時間再回頭來看,未經適當重構與設計的程式碼,早已滿目瘡痍,想改也改不動,只能一直 Workaround 打補丁。如何在每一次的需求開發中,不斷地檢視現有設計並重構,時時維護一份易於修改的程式碼,則是一種藝術。
程式設計的世界裡,有許多大師們提出許多設計原則,運用這些原則能幫助提升程式碼的可拓展性和可讀性,例如:SOLID、Kent Beck 簡單設計原則,甚至是 GoF 提出的各種設計模式 ...等等族繁不及備載。
我們常常通過書籍或文章了解原則之後,卻不知道如何使用,處於一種似懂非懂的概念。大多時候書本中的例子,與自己實際工作中的狀況有些微不同,我們很難感受到書中例子的 Force,難以把書中的問題轉換成自己工作中的具體狀況,使得自己在實際工作場景中難以應用。
每天的文章中,我們會選擇一個開發 Flutter 可能會碰到的問題展開討論,從畫面開發、狀態管理、到呼叫 API,所以對於同樣使用 Flutter 的朋友可能會比較有共鳴。相反的是,文章中不會討論如何使用各式各樣的 Widget ,或者如何製作各種酷炫效果。
在描述問題之後,我們會針對問題,提出一些做法,並盡量分析作法的優缺點,讓讀者能根據自己的情境,選擇適合的作法。
在文章中,我們也盡量把每一個例子放到 DartPad 上,讓讀者可以透過實際執行與比較程式碼,感受不同作法的差別。也能及時的動手自己調整,看看有沒有什麼不同,也歡迎讀者分享自己的想法,或者修改過的程式碼。