前言
本次活動連結:https://www.meetup.com/CloudNative-Taiwan/events/271350471/
這次一樣是線上小聚的方式為大家帶來精彩的活動,自從碩班畢業之後對於 Cloud Native 接觸的頻率就越來越低,最多是在工作上可能會擦邊學到相關的內容,較多面向程式開發上,那也因為剛好有機會可以跟上活動時間,既然以前有相關經歷那就來參加看一下大家現在都在討論些什麼新知識 🙂。
本次活動連結:https://www.meetup.com/CloudNative-Taiwan/events/271350471/
這次一樣是線上小聚的方式為大家帶來精彩的活動,自從碩班畢業之後對於 Cloud Native 接觸的頻率就越來越低,最多是在工作上可能會擦邊學到相關的內容,較多面向程式開發上,那也因為剛好有機會可以跟上活動時間,既然以前有相關經歷那就來參加看一下大家現在都在討論些什麼新知識 🙂。

疫情穩定並解封後終於迎來期待已久的第 20 場小聚,且這次更是來到我最喜歡的熊大寶殿 - LINE 裡頭辦活動,感謝場地方贊助熊大、美食、飲料讓大家吃飽喝足,並且我們邀請了許多大大來分享超超超精實的議程!!
社群:https://www.facebook.com/groups/chatbot.tw/
共筆:https://hackmd.io/@chatbot-tw/meetups-020
直播回顧:https://youtu.be/VxcpDFHWOb8?t=2146
那接下來就分享本次我參加的心得囉!🙂

Lint 是靜態程式檢查語法的工具,最早出現於 C 語言,也有人稱為 Code Quality Tools,主要是用來標記程式碼中含有某些可疑、不具結構性或潛在問題的部分,也因只標記緣故,所以只會透過編輯器提醒使用者。之後則汎用於各個語言之中,如 ESSLint、flake8、Rubocop…
從前在改以前寫程式時都會有幾個問題,『排版好亂』、『這變數(a1)是?』諸如此類的問題,但就在加入社群後認識很多圈內的朋友並與之討論後才體悟到 Lint 的重要性,首先在跟人家解釋程式時從變數、函式名稱時就能讓對方更快速知道用途,透過 Lint 的提醒讓我修正而不用與其他人解釋 a1 a2 個別代表什麼,大大的降低溝通成本。
在寫 Javascript 時一定會看到有套件或是範例有使用到 callback function,在過往的 coding 過程中最擔心的問題就是遇到 Callback Hell(也就是俗稱的波動拳),最常見的範例為:
1 | doSomething(function(result) { |
Sample from MDN
為了降低波動拳的出現機率,因此就就誕生了 Promise 來幫忙處理 Hell world 的問題,至於如何處理就透過接下來就說明並介紹用法。

我在上一篇的文章 - 從 Http 請求到認識 OAuth 以及 OpenID 中引入了 PlantUML,主要是看了這篇文章後啟發我使用 UML 來畫圖,除了可以動手畫流程讓自己更了解外,也不用到處去找適合的圖並且能讓文章的風格統一。
但若要 Markdown 支援 PlantUML 的話還需要額外安裝套件,這邊就以我部落格的樣式 - Hexo 的 next Theme 來描述實作過程!🙂
下載位置: VScode PlantUML 套件

約在一年前,當時公司的同事帶我玩過 Swagger,只是當時的我寫得不太習慣,直到寫這篇之前都還只是寫 markdown 來做 API 文件 😓,不過寫 API 到最後總是要開放給其他人需要測試以及用文件來描述功能,但只是寫 Readme.md 給其他人看感覺有點不負責任 (?),所以這個時候 Swagger 就發揮它的作用啦~
但是看著下面這張圖…
左邊那是怎樣!怎麼設定了一大堆右邊才出現一點點東西,估且不論還要設定 Model、Payload 什麼的,我想光寫左邊這份文件加測試的時間我都可以寫一份 Markdown 給其他同仁用 Postman 測試了…🤣🤣🤣
這時候套件就出動啦,這次要介紹的是 flask-restful-swagger-2.0,他是延續原版套件並加以更新的,不得不說再搭更新完後整體寫起來人性多了,像是文先寫法用 decorator 的寫法在路由之前、宣告 Schema 時只要用類別包起來之類的,讓寫文件可以用 python 的寫法去寫,除了特殊的設定需要比對 Swagger 官方文件外,在建一個 Swagger 格式的文件這樣已經超快了 💪
既然如此那就介紹一下他的相關設定並把它記錄下來吧!