哈囉,我是 Vincent,是個資管系出身的後端軟體工程師,最近在準備求職。這裡記錄了畢業以來,工作時用到以及自學學到的東西。
當初會寫部落格,是因為初入職場後發現工作的難度與大學專題相比,可說是大幅上升。筆者為了學習 Spring Boot 後端框架,看了好幾篇文章,然而卻覺得相當吃力。如果好不容易學到什麼東西,卻沒有保存下來,日後隨著時間忘記,那就十分可惜了!
筆者也有查到撰寫文章的好處:
- 可以做為筆記,之後遇到相關的問題,就能回來找文章參考,讓自己恢復記憶。
- 練習將內容敘述出來,讓讀者能夠了解,藉此培養表達能力。
- 透過整理想法,有時甚至會發現自己仍有一些知識點還不清楚。
- 幫助那些遇到問題,在 Google 上搜尋的人。
透過將學習到的內容,用教別人的方式呈現出來,是一種「費曼學習法」的實踐。後來在寫出一系列的 Spring Boot 文章後,便分享到 FB 社團,沒想到反應還不錯。
這個部落格有 100 多篇文章,在電腦版網頁右上方,或手機版網頁底部,有個「文章分類」的選單,可查看現有的分類。
Spring Boot
這系列的文章會一步步接觸 Spring Boot 的各項功能。包含入門時的建立專案、實作 RESTful API、串接 MySQL 與 MongoDB 資料庫,並撰寫測試。
另外也會提到 Bean(元件)、IoC(控制反轉)、DI(依賴注入)、AOP(切面導向設計),以及三層式架構等後端開發的重要觀念。
然而部份文章之間具有相依性,也就是說閱讀後面的單元時,可能會遇到在前面單元所實作出的範例程式。
Spring Security熟悉 Spring Boot 框架後,讀者可以進入安全管理的領域。首先藉由設計使用者權限,以及對 RESTful API 進行管制,來保護後端的資源不被任意存取。
此外也會示範如何將儲存於資料庫的使用者資料,串接到帳密登入的功能上。
接著引進在 HTTP Header 攜帶「token」的概念,讓我們能在前後端分離的系統中持續保護 API。最後實作 JWT(JSON Web Token),讓後端識別使用者的身份。
MySQL包含資料表設計、查詢語法、分組查詢、預存程序等。
而接下來的幾篇文章,將圍繞在索引的主題。首先會認識樹狀結構,再接觸一般索引、聯合索引、前綴索引與最左前綴法則,並搭配閱讀執行計劃來確認效果。
MongoDB示範各種查詢條件的撰寫,以及新增、刪除與更新資料的語法。此外也包含聚合(aggregation)的操作方式,並解說索引與查詢計劃。
Elasticsearch示範呼叫 RESTful API 進行 CRUD,以及解說搜尋語法的撰寫方式,讓讀者認識這款全文檢索引擎。
接著再使用 Function Score 的功能,對資料做相關度評分。最後在 Spring Boot 專案中實作出這些操作。
Docker讓讀者進入容器化的世界,透過下載映像檔並啟動容器,簡化從安裝到啟動軟體服務的過程。
此外也示範如何將電腦的檔案掛載到容器中。以及撰寫 Dockerfile,自行打造容器環境,並打包成映像檔上傳。
最後撰寫 docker compose 檔案,將各個服務的映像檔、容器、掛載、健康檢查、啟動順序等配置,通通寫在一份檔案中。藉此便於攜帶到其他伺服器,一鍵啟動整個系統。
資料結構與演算法這系列文章是筆者閱讀相關參考書的學習理解。主要是介紹基本的資料結構(如:鏈結串列、二元搜尋樹)和演算法(如:快速排序法、數學矩陣運算),並使用 Java 語言實作出來。
可讓 Java 的學習者有主題能夠模仿練習,並補充相關概念。其中新發表的「HashMap 原理」融合了多個資料結構概念,是面試的經典題目。
Kotlin教導 Kotlin 程式語言的語法。內容涵蓋變數宣告、流程控制、集合與物件導向等。文章數不多,適合已經會 Java 的讀者再認識一種新語言。
筆者原先是因為學校作業,才開始在 Medium 平台撰寫文章,而畢業後仍繼續寫作。後來據說該平台調整了 SEO 政策,進而導致觀看數下滑。到了 2021 年 5 月 8 日才開始搬家,將重要文章移動至此。
對讀者的好處是只要有 Google 帳號,就能進行留言。所以若對於文章有不了解的地方,或是內容有誤,都可以提出來。比方說下圖就是一個例子~
對筆者而言,則可進行網站版面的客製化。此外也接觸到 SEO、網站分析工具等,都是有意思的經驗。
下面收集一些部落格得到的回饋,作為紀念。最後祝讀者學習或查詢資料順利,喜歡的話,可以留言或寄信給我鼓勵!
被分享到 Line 社群 |
被分享到 FB 的 TWJUG 社團 |
前同事來信 |
學弟來信 |
讀者來信 1 |
讀者來信 2 |
感謝分享!! SpringBoot持續學習中,受惠良多
回覆刪除20240623透過iThome鐵人文章轉介,目前剛踏入程式語言領域,慢慢拜讀。
回覆刪除