第 160 期 - 珍惜一切得來不易的自由

本週專欄

鐵人賽排行榜 製作小記 2022 版本

Hi, 大家好,我是 Luka,本週製作了 2022 鐵人賽的人氣排行榜,方便觀看瀏覽好的主題。使用了 Heroku 替代方案 fly.io 來練了一下手感,並且使用 React.js + MUI UI 元件庫來實作前端。分享一下實作筆記、如何設計與製作 side project 的一些小心得。

前端開發

Working with Zustand

Zustand 是一個 React 的狀態管理工具,相較於 React Redux 需要準備較複雜的架構來說 Zustand 幾乎不需要另外設置太多東西就可以建立 store,因為沒有太複雜的架構,也很容易和其他非同步套件像是 TanStack Query v4 一起使用。說了那麼多,還是推薦到文章中仔細閱讀一番!

New CSS functional pseudo-class selectors :is() and :where()

CSS 提供的選擇器越來越多樣化,其中又有兩個使用起來近乎一樣,功能也非常相似的選擇器::is():where()。在這篇文章中會解釋這兩個選擇器的用途,和各種 combo 的使用方式,最後也會介紹兩者的不同之處!

Introduction to Micro-frontends

又是關於微前端的介紹文章!不曉得大家會不會和我一樣,如果很常看到某個技術一直一直出現在眼前,那個非學習不可的壓力就會越來越大 😂。在這篇文章裡除了基本的介紹優點與缺點外,也在開頭列了微前端的核心思想,有興趣的大家可以到文章中瞭解看看!

Golang

Modern API design with Golang, PostgreSQL and Docker

如果你最近剛開始學 Go,那你可以看看這篇文章怎麼用 Go, PostgreSQL 跟 Docker 寫出一個簡單又好部署的 API Server。對於 Go 的寫法有點概念之後,再學其他 library 也會更得心應手~

Struct Composition in Go

因為 Go 裡面沒有繼承的語法,如果想在 Go 裡面做到其他 OOP 語言的繼承,那可以試試看用 Struct Composition 的方式,雖然剛開始用可能會不太習慣,但用久了會覺得這樣的設計其實也滿好的~

奔放的 Golang,卻隱藏著有紀律的架構!- Clean Architecture 實作篇

最近在寫 Go 的時候對於各個 package 之間的 boundary 不太確定該怎麼拿捏、還有 interface 該怎麼設計,好像怎麼樣都切不乾淨的感覺。查了一些資料後發現由 Uncle Bob 提出的 Clean Architecture 剛好有講到各個 Layer 之間要怎麼分工才能比較好測試,如果你還沒聽過 Clean Architecture 的話可以看看這系列文的 Day6 到 Day8,也許會有意外的收穫哦。

DevOps

Twitter Architecture 2022 vs. 2012

因 Elon Musk 把 Twitter 架構圖公開,作者就整理了 2022 和 2012 的架構圖讓大家一窺其內部運作。

How Zapier uses KEDA

Zapier 分享他們的 backend worker 原本是靠 CPU loading 做水平擴展,但是此 worker 有很多 blocking I/O 的功能,所以工作量很多時但 CPU 使用量還是很低。也因此團隊開始轉用 KEDA 這個 event-driven autoscaling 專案來偵測 RabbitMQ queue 的數量和原本的 CPU loading 來做水平擴展。

X.509 Certificate Management with Vault

Vault 可以選不同的 secret engine 而千變萬化,這次介紹的是 PKI(Public Key Infrastructure) certificate,可以生產短期的 certificate 後再搭配 Vault agent 可以做到自動更新與撤銷過期 certificates,也可以審計當時發行和撤銷的 certificates。

Container

7 Design Principals for Containers

此篇文章跟大家詳細介紹七個運行在 Cloud Native 所必須具備的 Container 設計準則,讀完突然發現這不就是使用 K8s 的最佳守則嗎?!

  • Single Concern Principle: 一個 Container 只做一件事
  • High Observability Principle: 讓 Container 滿足各種被監控的需求
  • Life-Cycle Conformance Principle: 根據從平台收到的事件來管理 Container 的生命週期
  • Image Immutability Principle: 一旦 Container Image 被建立,就不要再修改它
  • Process Disposability Principle: 運行的 Container 要可以隨時被替換掉
  • Self-Containment Principle: Container 自己本身要能夠獨立運行
  • Runtime Confinement Principle: Container 要能夠建議自己執行所需要的資源

9 Docker Extensions Every Developer Must Try

還有在使用 Docker Desktop 的人,可以參考這篇文章,讓你知道 Docker Desktop 有哪些 Extension 可以讓開發更加方便

  • Drone CI: 無縫與 Drone CI 整合
  • Disk Usage: 分析硬碟被 Container 使用的狀況
  • vcluster: 建立輕量化的虛擬 K8s 叢集
  • Microcks: 整合 Microcks 在本地端 Mock 和測試 API
  • OpenShift: 快速將本地端的 Image 部署到遠端的 OpenShift
  • Portainer: 透過 Portainer 方便管理本地端的 Container
  • Snyk: 協助開發者快速發現 Container Image 的安全問題
  • JFrog Xray Scan: 協助開發者快速發現 Container Image 的安全問題
  • okteto: 透過 okteto 快速建立本地端所需要的開發環境

finch

Finch 是一個新的開源專案,他提供一個 CLI Client 來建置,運行和發佈 Linux Container,而且可以很簡單的就安裝在 macOS 系統上,白話來說就是用來取代 Docker Desktop 的工具!看了範例使用起來跟 Docker CLI 有 87% 像,提供給大家一個 Docker Desktop 的替代方案。

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,脖子痠痛的前端生命鬥士。
  • @Ken - 興趣是符號學的軟體開發者,喜歡探索事物的本質,偶爾會寫點東西。

Maintainers:

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

Feedback

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