這是我第一次參加鐵人賽的活動,在完賽的同時,自己也以前端工程師的身份在網頁開發的領域工作一年了,雖然未來還有很長的路要走,但這次的經驗對自己來說意義非凡。
即便平常就有撰寫文章的習慣,第一次要撰寫這麼龐大的主題,對自己來說真的是全新的體驗,所以特別留了最後一天的篇幅,想跟大家分享從零開始熟悉 Functional Programming 的一些心路歷程。
在最一開始,我是不知道什麼是「設計典範」的,我大概知道有所謂無瑕的程式碼(Clean code) 的概念,但對於要怎麼透過設計模式來優化自己的程式碼,可以說是毫無想法。
在某一次與工作上的前輩們進行工作狀況盤點時,我向前輩分享了這個狀況:「我好想要優化自己拆分元件的技巧,但我不知道該從何開始。」
前輩非常有耐心的跟我分享:「妳可以研究一下 Functional Programming 的高階函式(High Order Function),這可能會有幫助。」這才開啟了我認真探索 FP 這個設計典範的道路。
最一開始,我跟一般人一樣在網路上找了一些文章影片來看,後來在 Udemy 找到為數不多的 JavaScript Functional Programming 的課程,但因為課程中的東西沒有囊括所有 FP 的內容,於是後來我找到了這本,由 Eric Elliott 所撰寫 《Composing Software: An Exploration of Functional Programming and Object Composition in JavaScript》一書。
這本書中所使用的範例,或是所陳述的概念都非常平易近人,大大解了我對於 FP 甚至是原生 JavaScript 的一些疑惑,如果大家有時間、有能力閱讀原文書的話,我非常推薦大家可以閱讀Eric Elliott 所撰寫 《Composing Software》,除了 FP 之外,作者也在本書中談論了如何透過工廠模式來優化我們 JavaScript 的程式碼。
在找相關的參考資料時,內心由衷感謝這些願意與大家分享的巨人們,如果沒有這些人的分享,大概也不會有這系列的文章了。
除了感謝前人們的貢獻外,還想要額外感謝來自RD 少女養成計畫的讀者們,知道我要參賽,大家都非常鼓勵、支持我,讓我了解自己也可以為這個領域貢獻一點心力,幫助到更多同樣為非本科、學習軟體開發的人們。
如果你喜歡我的文章的話,我其實更常在自己的自媒體平台分享有關跨領域轉職、自學程式及自我成長相關的內容,你可以透過搜尋:「RD 少女養成計畫」找到我,或是透過下方連結找到過去我所分享的內容!
最後,感謝閱讀到這裡的你!希望未來有機會再見!
說真的寫的蠻不錯的,把一些 FP 的概念用淺顯易懂的方式做介紹,也沒有只是流於表面的 call 套件 API 而已,而是有好好的把觀念的重要性表達出來,恭喜完賽
非常感謝大大的肯定