回顧AC學期 2–2

AC 2–2 學習能力驗收題組

RMO
Jul 5, 2021

以ORID架構描述這個學期以來的進步

OBJECTIVE

用「現在的你」來比較「1 個月前的你」,你是否感覺到自己某方面的技能進步?Tip:在技術驗收時,我們刻意優化了某個你之前寫過的題目,你可以根據這個刻意優化的經驗來找到切入點。

這個學期學到印象最深刻的內容是關於程式設計的觀念MVC(Model-View-Controller)架構,將程式碼包裝在Model、View及Controller這些區域內部,function命名也得以重複使用,便於管理。

隨著課程進度推進,實作的規格要求開始綜合了Web APP裡的各個項目,如: 切版、串接API、做出特定功能、渲染畫面等等,要達成的要求非常多項。
此時若是沒有預先規劃好API資料處理、function分工、DOM結構這些細節,之後要維護程式碼就是一團亂,若設計function時沒有考量到耦合,後面只要改寫其中一項就要從頭到尾找出還有哪些function也受到影響,每一次都是精神的折磨。

狀態管理(state management)是一種很棒的程式設計方式,可避免程式跳脫設計好的架構產生bug,也運用語意化(semantic)設計提高閱讀性,便於自己以及協作夥伴快速回顧程式碼的邏輯。

可以從中體會到"清晰易懂的設計"是必備的基本心態,開始動作之前先想一想自己要怎麼規劃,或者先向合作夥伴詢問建議,有利於減少溝通成本,也可藉此讓自己有意識地學習經驗。

REFLECTIVE

針對你說的進步點,這個進步點是怎麼累積出來的?在過去幾週你經歷了什麼樣的過程?過程中的哪些環節刻意練習到了這件事?

對我來說,學習新的程式設計思維很難以馬上理解,只能靠著刻意練習加深印象。幸好我們有精心安排的教案可以一步一步跟著實作,確保最後的結果不會出錯。

  1. 在每個單元,我都先把教案內容看過一遍,了解這些過程以及最後產出的結果,使自己可以大致想像流程
  2. 接著照著詳細的流程實作一遍,同時花時間理解每一個步驟的程式碼意義。
  3. 實作完全部流程之後,再從頭試著解釋程式碼以及該程式碼跟後續哪些部分有關聯。

INTERPRETIVE

根據你這次的「成長經驗」,若要「持續學習,持續進步」,是否能提煉出任何「對你來說行得通的行為/心態」?或者你有沒有發現什麼行為/心態是行不通的?
  • 發現問題:
    實作的過程中很常會對某些技術產生好奇或者疑惑,這時就會馬上去查資料,也常常因此找了很多資料,卻不小心落入為了要讀懂查到的資料而又去查更多其他資料的無限迴圈,造成實作停擺時間過長,無法有效完成的窘境。
  • 嘗試調整:
    每當想查資料時,先以自己可以大略了解使用方式即可,優先繼續完成實作,等實作遇到困難或者順利完成之後再回去詳細了解。
  • 效果評估:
    調整方式之後在實作部分都能夠順利執行,還未遇到因為資訊不夠詳細就無法繼續實作的問題,目前這個方法可行。

DECISIONAL

總結。為你在下一階段學習的學習,給自己一些意見。

接下來的學習方法會先以目前應用過且有效的方式來嘗試,遇到新的情境時就會再分析問題發生的原因,再度擬定可以調整的方向。
真的無法自己解決時就從網路上看看別人分享的學習方法,或者向AC學習團隊求救。

--

--