第 168 期 - 浪漫哪天突然間變成苦澀的 Bug

本週專欄

Render | 來試試用來取代 Heroku 的服務吧 - Render 的網路服務部署介紹!

cyclic | 來試試用來取代 Heroku 的服務吧 - cyclic 的網路服務部署介紹!

Hi!大家好,我是神 Q 超人!相信有許多人在去年 2022 Heroku 說要取消免費計劃的同時,就開始尋覓下個能夠繼續免費使用的平台 😂。就我來說畢竟也是有一些食之無味,棄之可惜的作品服務在那上面放著,而它們也都在免費計畫結束後就都掛了,像變心的女朋友一樣,不論給什麼 request 永遠等不到 response 回來。

如果各位也有遇到相同的問題,就來看看本週的「來試試用來取代 Heroku 的服務吧!」系列的兩篇文章吧!如果時間不多的話也可以直接到文章下方,都有關於該服務的優缺點懶人包唷!

前端開發

Moving Backgrounds

相信各位平常在逛一些購物網站的時候,都會有一些產品的圖片可以看,且當你滑鼠移到圖片上面時,還可以根據目前滑鼠在的位置局部放大圖片,並且根據滑鼠移動改變放大的位置,這篇文章就是要來聊聊該如何實現這件事情!

Use Maps more and Objects less

在 JavaScript 裡面,我們可以輕鬆的用 Object 來做到 key 和 value 的對照,但是即使這個方法很容易做到,也不代表你得這麼做。文章中介紹了 Map,可以在你需要操作類似 key 和 value 的對照時使用,並且從效能、使用限制、用 for 讀 key、內置排序等等許多面向探討 Map 與 Object 的不同。

Advanced TypeScript

TypeScript 讓身為動態型別的 JavaScript 擁有更嚴禁的型別設定,但是該如何靈活定義這些型別也是需要一番功夫的。這篇文章就介紹了以下幾種設置以及限制型別的方式:

  • Union and intersection types
  • Keyof
  • Typeof
  • Conditional types
  • Utility types
  • Infer type
  • Mapped types

每一種方式都有給出範例的程式碼,並在程式碼中用註解來表示型別帶來的限制。

Golang

把 Github Issue 當成資料庫來用

想要自己寫一個 Go Application 但又不想花錢租資料庫嗎?這邊提供一個把 Github Issue 拿來當資料庫的方法。只要你的流量不高,對於 DB read/write 的速度也不要太計較,那真的可以用 Github Issue 來當資料庫XD。

Go 1.20 in a nutshell

前幾週有分享一篇文章講 Go 1.20 有哪些新 feature,但那篇文章比較長,如果你懶得看太多細節,只想看懶人包了解一下 Go 1.20 的話XD,那可以看看這篇文章~

Go 1.20 Experiment: Memory Arenas vs Traditional Memory Management

Go 在 1.20 推出的實驗性 feature - Memory Arenas 究竟能不能幫我們改善記憶體管理以及 GC 的效率呢?如果懶得自己研究的話,那我們來看看別人研究完的結果。結論是 Memory Arenas 在某些極端的情況下,確實可以幫你減少很多 overhead,但因為 Memory Arenas 仍然是實驗性的功能,如果要用在 Production 上的話還是要自己評估看看。

DevOps

Back to Basics: Installing NGINX Open Source and NGINX Plus

想必不少人對 Nginx 的設定依舊一知半解,官方提供的基礎影片以有結構的方式介紹 Nginx 本身與使用,是時候重溫基本功了。除了 open source 版本,也順便介紹 Nginx Plus 的付費版本。

How do you gracefully shut down pods in kubernetes

當你從 terminal 裡下達 kubectl delete pod 時會發生什麼事?發出 request 到 kube-apiserver 後移除 etcd 裡 IP 和 port 的網路資訊,etcd 再通知 CoreDNS、kube-proxy 或 Nginx-ingress 等等也要移除網路資訊。之後節點上的 kubelet 也會收到刪除 pod 的通知開始動作,會先看 preStop 、SIGTERM 最後才強制使用 SIGKILL。

Secrets Management

密碼管理永遠是令人頭痛的點,此篇介紹一些該注意的點,不論是生產、測試、內部環境甚至服務本身以及 DevOps 相關的工具全部建議要有 RBAC、使用專門的密碼軟體和時常更新密碼,而且一個密碼軟體不太可能支援所有使用情境,所以選用正確的密碼軟體對應適當的情境。

Writer:

  • @GQSM - Hi!我是神 Q 超人,一個先衝再說的男人。

Maintainers:

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

Feedback

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