第 146 期 - 用水氣寫程式

本週專欄

後端有 Microservices,那前端呢?初探 Micro Frontends 的世界

最近筆者在工作上一直聽到後端工程師們在談論 Microservices 的架構設計,聽到的當下立馬去查詢才知道原來 Microservices 這麼潮,身為前端工程師的我當然也希望前端也可以有這麼新穎的架構,於是這篇文章就要來跟讀者介紹 Micro Frontends。

前端開發

How to Debug Better with Chrome

debug 是軟體開發中的一部份,而在 debug 的時候,知道如何好好利用工具是很重要的!文章中介紹幾個使用 Chrome devtool 的技巧,讓你能更高效的為網站除錯。

✋🏼🔥 CS Visualized: CORS

如果你是個 Web 工程師,那一定都會遇到關於 CORS 的錯誤,通常這種時候只要在後端上多做個設定就可以解決,但是你了解過什麼是 CORS 嗎?到文章裡看看作者用精美的圖和動畫解釋!

Big Changes Ahead for Deno

Deno 要迎來大改版了,主要的目標是與 npm 的套件更兼容、增加一個 http 的 server,成為最快的 JavaScript Web Server 等等,而且還開設一個表單,讓使用 Deno 的公司可以申請,Deno 團隊會盡力地回答你的技術問題。

Golang

Easy memory-saving tricks in Go

如果你想把程式跑在比較低階的機器上,譬如說樹莓派或是嵌入式的裝置,那你可能就會需要注意程式的記憶體使用量。這篇文章講了三種的方法來降低 memory usage,都非常簡單很容易就能做到哦~

GOMEMLIMIT is a game changer for high-memory applications

如果你的 Go 程式會用到很多 memory,三不五時就會 OOM(Out Of Memory),那從 Go 1.19 開始可以用 GOMEMLIMIT 來限制 memory usage 了,他會在你的使用量在到達上限之前就幫你做 GC,讓你的程式不會因為不小心吃了太多記憶體,就直接被殺掉

打造 Go 语言最快的排序算法

不知道大家有沒有聽說 Go 的 sorting 演算法從 1.19 開始變得更快了,這篇講的是這個更快的排序是怎麼被時做出來的,內容有點深,所以如果沒興趣的話不看也沒關係,只要記得趕快把 Go 升級到 1.19 就好~

DevOps

How Blockchain Tech Can Improve DevOps Practices in Web3

這篇介紹了 DevOps 精神可以幫到 Web3 哪些層面,以 Ethereum 為例,把 DevOps 八字環的回饋、開發、測試、整合、CICD、監控以及維運對應的工具都寫出來,以及區塊鏈特性的關係我們要注意的地方,可以一次窺探 Web3 技術生態系的文章。

When docker images stop being portable

作者把 CI 伺服器從 Ubuntu 16.04 升級到 20.04 發現 gnulib 有 path 太長的 bug 導致 container image 無法下載。後來發現這個 bug 一直都有,唯一的變動是 docker 的儲存驅動(Storage Driver)從 aufs 變成 overlay2,就因為 overlay2 比 aufs 多四個字導致 path 超過 4096 bytes 的限制。本文可以看到作者重現 bug 詳細的心路歷程。

Is it time to migrate from Lens to OpenLens to manage your Kubernetes clusters?

Lens IDE 是 Kubernetes 生態好用的工具之一,不過最近越來越商業化了,所以作者就介紹 OpenLens 這個工具,以及 Lens 與 OpenLens 的關係。使用 OpenLens 有兩個方法,使用社群提供的檔案或者自己安裝,但是不論哪一種都會遇到 Windows 或 macOS 程式碼簽章(Code Signing)的問題,自己個人下載基本上都可以用,但是有些組織的電腦會有資安的要求,運行的軟體必須要有程式碼簽章才可以,所以可以自己跟 Windows 或 Apple 買開發方案,或者捐款給社群讓他們可以付開發方案的費用。

Terraform

How to manage multiple environments with Terraform

一開始使用 Terraform 來部署開發環境時可能沒有多想,東西也都可以正常運行,但當環境開始變多時,問題開始接踵而來,例如一堆重複的程式碼,環境之間的隔離性不足,很難去做 Debug 的工作…等,所以 Gruntwork 的 Co-founder 準備了三篇文章,分別解釋如何使用 Terraform WOrkspace, Git BranchesTerragrunt 來達成分離環境的做法,讓大家可以對這個主題有個全面的的了解

Manage your terraform like a container

這篇文章繼續聊 Terraform 環境切分的問題,他覺得部署 Terraform 就像是使用 Container 一樣,大家應該已經習慣同樣一個 Container Image 建置出來之後供所有不同的環境一起使用,然後透過環境變數讓 Container 可以在不同的環境裡面運行成功;其實 Terraform 應該也要是一樣的做法,Terraform Module 要可以讓不同的環境一起使用,只透過不同環境的組態檔案就可以讓他去建置與管理不同環境與帳號的雲端資源

Design by Contract in Terraform

在軟體開發中有一種設計方式稱為 Design by Contract (DbC),這種方法要求軟體設計者為軟體組件定義正式的,精確的並且可驗證的介面,這樣,為傳統的抽象資料類型又增加了先驗條件、後驗條件和不變式。這種方法的名字裡用到的「契約」或者說「契約」是一種比喻,因為它和商業契約的情況有點類似 (Wiki);而 Terraform 在 v0.13 加入加了輸入參數的驗證功能,在最新 v1.2 也將 precondition 和 postcondition 這兩個功能給加了進來,如此一下在撰寫 Terraform Module 就可以使用 Design by Contract 的設計方式,詳細做法與範例可以參閱此文章

StarBugs Weekly

StarBugs Weekly 由一群不寫文章就會想要亂花錢,但是又沒有那麼多錢,只好繼續寫文章的開發者所創立。
內容包含 Web 前端、中端、後端、DevOps、產品開發、精實創業,一切跟產品有關的知識,都是我們的守備範圍!
不想漏追科技新聞的人,趕緊把 StarBugs Telegram Bot 訂閱起來 https://t.me/starbugs_weekly_bot (對機器人說 /subscribe 即可)

另外,為了讓 Starbugs 的專欄有更多豐富、優質的內容,我們決定要開始誠徵 Writer 了。如果你本來就有在寫文章,對於文章的品質有要求、而且也樂於分享討論技術,那很歡迎你以 Writer 的身份加入我們。請動動手指頭私訊我們粉專 星巴哥技術週刊,並附上自我介紹跟最近寫的文章,就有機會加入我們唷 🙌

Writers:

  • @HannahLin - 從台灣到矽谷,熱愛前端的工程師女孩。
  • @KyleMo - 雜食性軟體工程師,喜歡的技術我都想學。
  • @Airwaves - Hi~我是 Airwaves,熱愛研究如何造輪子的前端工程師。
  • @Andy - 目標成為用嘴巴工作的工程師,專長為網頁開發以及 K8s。
  • @lazypro - 從 embedded 到 kernel,從 device 上雲端,程式無涯、無法靠岸,軟體的求道者。
  • @ianchen0119 - 5G 領域研究生,同時也是喜歡學習不同領域技術的工程師。
  • @00-talk - 我是 00,脖子痠痛的前端生命鬥士。

Maintainers:

  • @GQSM - Hi!我是神 Q 超人,一個先衝再說的男人。
  • @LarryLu - 我是 Larry,傳說中的 0.1 倍工程師!
  • @LukaJoJo - 一名全身都是死角的工程師。
  • @smalltown - 熱愛鑽研各種可以提升雲端服務品質及增進團隊開發效率的開源技術。
  • @RicoChen - 熱愛許多技術且努力看透技術的本質,如果有什麼好玩的技術,還請各位歡迎直接找我聊聊。

Feedback

本週呈現主題方式做了一些改變,希望讓讀者能夠更快速精準的找到自己要的資訊。也加入社群活動這個區塊,每週更新社群活動的資訊。如果有任何建議,歡迎私訊 星巴哥技術週刊 FB 粉絲專頁 與我們聯繫。