筆者在撰寫本系列之前,已經有了兩次的鐵人賽經驗,每次的挑戰都是不同層次的磨練。
第一次的主題是 在Three.js探索CAD的奧秘
[2] ,我使用了網頁前端 three.js 框架,撰寫台灣少有人注意到的 CAD 領域相關入門基礎演算法,想要幫助大家來將不同領域的 CAD 軟體搬上雲端,但事到如今這領域看起來似乎還是很冷門就是。
第二次的主題是 育兒也要智慧
[3] ,當時筆者想著自己是機械系畢業的,碩士又是做網際相關的研究,何不利用自己的優勢來玩玩看物聯網呢。我想要知道物聯網為什麼會被視為產業界的未來,所以在我女兒出生 6 個月後嘗試利用智慧家庭來輔助育兒,我開始著手撰寫嵌入式程式,想一窺未來的物聯網世界有多大。
本次的主題是 Moleculer 家家酒
[4] ,還沒有接觸微服務之前,只是覺得微服務聽起來很厲害,就像物聯網一樣是時代的潮流,彷彿沒有跟著用就落伍了。某次在公司開會的時候,突然有個團隊需要做雲端運算,我就有意無意的建議他們可以試試看微服務,沒想到主管們竟然就開始對微服務感興趣,後來的事情你們都知道了,我掉進這個無敵大坑洞 Orz
筆者在工作方面使用了 Moleculer 框架來實作,但因為當時開發有時程壓力的關係,並沒有完整的看完官方手冊就動手處理了。在系統開發了一段時間後,覺得應該回頭把官方手冊好好看完,這時又剛好到了一年一度的鐵人賽,於是就跟著三五好友組了團隊來參加了。
有了開發經驗後,本以為已經知道 Moleculer 基本該怎麼使用,文章寫起來應該會輕鬆許多。但我太天真了,在完整啃食官方手冊的過程中,還是遇到了一些從沒聽過的名詞、演算法、工具。還因為這些沒聽過的東西,讓我在撰寫鐵人賽文章的過程中,常常需要爆肝查資料來理解它們。
在翻閱官方手冊的過程中,也有發現手冊中的一些範例、語法、句子等的小錯誤,但由於 Moleculer 的程式碼與官方手冊大部分都是由作者 Icebob[5] 一個人寫的,因此也難免會有一些小錯誤。由於官方網站是由 Hexo 所撰寫的,官方網站也有在 github 開放原始碼,所以這期間我也在 Moleculer official website[6] 推了 PR 幫忙修正,也成為了官方手冊小小貢獻者。
Fig. 1. 貢獻者清單
鐵人賽結束了,也慢慢接近年底了,公司專案又要變得比平時忙碌,寫這系列的目的之一當然是跟工作有關,可以把程式寫得更有效率且好維護了。另外也可能撰寫工作上會用到的一些客製化模組,如果允許的話也是可以開源出來讓大家使用。
過陣子有空的話也許會幫忙翻譯 Moleculer 的繁體手冊,目前官網只有部分翻譯的簡體中文版本,如果官方也擁有繁體中文版本手冊,相信可以帶來更多人使用 Moleculer 框架,逐漸壯大這個微服務社群。
然後 ... 目前還沒有想到 ...
首先還是要謝謝作者 Icebob
及其團隊成員開發這套框架,有他們的開發付出才有可能讓大家能在 Node.js 上擁有這麼棒的微服務框架,希望 Moleculer 框架能夠持續發展下去甚至成為主流。
還要謝謝 雷N
[7] 團長帶領的 E04[8] 團隊,還有團員 GSON
[9] 、 Recca
[10] 、 Harry
[11] 的互相激勵,由於大家的內容都非常豐富,每位大大的文章都強大到讓我跪著看,所以天天都很驚險刺激的完成鐵人賽文章。當然還有 Line 群的各位朋友,有大家的加油打氣才能完成這項任務。
接著要感謝公司的 IT 團隊 主管
及 同事
,我撰寫的每一篇文章都有內部分享給團隊,大家踴躍的回饋我文章的錯誤,以及豪不客氣的發問來考倒我,都讓我學習到更多的東西。
然後是我的家人,在鐵人賽期間我的 老婆
每天無怨無悔的幫忙照顧 女兒
,當然也要感謝我 2 歲半的女兒,這個年齡期間是她的發展關鍵期,在完成上述的各項任務之前,首先需要多花點時間給她補償一下。
最後謝謝各位 讀者
,有你們的回饋是我最大的動力,有任何疑問可以在文章留言,也歡迎各位轉發但謝絕抄襲。
[1] Moleculer, https://moleculer.services/
[2] 在Three.js探索CAD的奧秘, https://ithelp.ithome.com.tw/users/20107175/ironman/1316
[3] 育兒也要智慧, https://ithelp.ithome.com.tw/users/20107175/ironman/3776
[4] Moleculer 家家酒, https://ithelp.ithome.com.tw/users/20107175/ironman/5388
[5] Icebob, https://github.com/icebob
[6] Moleculer official website, https://github.com/moleculerjs/site
[7] 淺談DevOps與Observability, 雷N, https://ithelp.ithome.com.tw/users/20104930/ironman/4960
[8] E04 團隊資訊, https://ithelp.ithome.com.tw/2022ironman/signup/team/233
[9] 挑戰 blind 75: 以圖解方式練習解題, https://ithelp.ithome.com.tw/users/20111580/ironman/4951
[10] 林姓商人與指令操作的秘密—談 Linux command line interface, Recca, https://ithelp.ithome.com.tw/users/20120550/ironman/5099
[11] 強化 JavaScript 之 - 程式語感是可以磨練成就的, Harry, https://ithelp.ithome.com.tw/users/20116883/ironman/4979