第 105 期 - 不給 merge 就 force push

本週專欄

從 map 的實作聊聊為什麼 Go 需要有泛型

大家好我是 Larry, 關於 Go 到底要不要支援泛型、以及泛型的語法該怎麼設計已經吵好久了,而官方也總算是在去年把泛型語法定下來,並承諾要在 Go 的下個版本 1.18 中正式支援泛型,。所以今天想跟大家聊聊泛型到底解決了 Go 的哪些問題,也順便讓大家看看 Go 的泛型怎麼寫,這樣到時明年 1.18 出來就可以馬上開始用了哦~

星巴哥專欄作者,原創文章

關於 1.0.0 版的 SWR,你該升級嗎?

有在寫 React 的朋友們應該多少都有聽過 SWR 這個 library,而他在不久前總算是釋出 1.0.0 版,那從 0.X 升上去時有哪些該注意的地方呢?一起來看看吧!

Go

Implementing a Generic Filter Function in Go

這週的專欄講的是怎麼用 Type Parameter 寫出泛型的 map function,但如果覺得不太夠想看更多例子的話,這邊也有一篇文將教你怎麼用泛型寫 filter,文章不常應該十分鐘內就能讀完了~

为什么 Go 语言没有泛型

其實 Go 的歷史其實也不算短了,但為什麼一直到現在現在才打算要支援泛型呢?這篇文章有提到任何程式語言如果要支援泛型都會遇到所謂的「泛型困境」,也就是必須在開發體驗、編譯速度、執行速度三者中做平衡,而且文中也有比較 C/C++/Java 三者各自選擇了什麼方向,雖然 Go 已經確定要支援泛型了,但這篇還是很棒的文章~

Type Parameters Proposal

大部分在介紹 Type Parameter 的文章怕嚇到人其實都只有簡單講一下怎麼使用,的包括這週的專欄也是,如果真的想完整了解 Type Parameter 的語法的話建議可以讀這篇官方發佈的 proposal,裡面很完整的講了 Type Parameter 的 Spec 以及怎麼跟現有的 interface 做結合,雖然整個 proposal 很長XD,但我覺得可以一天讀一個小段落,讀完後應該可以學到很多東西

前端開發

CSS Modules VS. styled-components,哪个才是解决 CSS 不足之处的更好方案?

CSS Modules 和 styled-components 都是為了強化 CSS 本身不足的部分(例如缺少模組化、複用性低和全域污染等)而誕生在開發者面前的工具,但是 CSS Modules 和 styled-components 兩者間又有什麼不同呢?或哪種解決方案才更適合自己或團隊?看看文章裡的介紹吧!

A deep dive into ES6 Classes

在 JS 中,不論是 Functional Programming 或 Object Oriented Programming 都有各自的擁護者,兩種寫法也都有優點,但今天不是要來吵架,而是如果你選擇了 OOP 流派,那就不能錯過這篇文章中介紹的 JS 裡所提供有關於 Class 的一切!

🎃🦇 HTMLoween 🦇🎃 - HTML, JS and CSS to make your blood boil! 😱

對工程師來說,比萬聖節的鬼怪更可怕的就是那些讓人看了不寒而慄的寫法 😂,作者很風趣的舉了一些讓人看了害怕的寫法,應個景讓大家過過節囉!

Import Framer components directly in your React code

Framer 推出一個超強大的功能,可以讓設計師在網頁上先把 component 的樣式、動畫甚至是 props 都定義好,這時候 Framer 會自己自動轉換成 React component 然後會產生一組 url 可以讓你 import 到自己的專案中,所以之後如果遇到很難設計的 component 其實都可以交由設計師來設計了XD

Next.js 12

接續剛剛提到的 Framer,目前能處理 import url 的框架其實基本上是很少的,這時候必須要借助 Next.js 新發佈的 12 版,這個版本可以讓你 import url 所以跟上面的 Framer 搭配起來可以說是把前端推向了一個新世界了,有興趣的讀者可以看看 Next.js 12 版到底做了哪些改變~

5 things you don’t know about try-catch-finally in JavaScript

這個真的太有趣了,沒想到 JavaScript 的 try/catch 竟然有這麼多坑洞,一開始在 try 裡面 return value 發現沒有成功,因為會被 finally 的 return 取代掉,後來仔細查了一下 try/catch 到底有哪些坑於是就發現了這篇文章XD

DevOps

Kubernetes Horizontal Pod Autoscaling

Kubernetes Horizontal Pod Autoscaling 是相當強大的功能,通常也會搭配 Cluster Autoscaler 一起使用,畢竟假如 Pod 一直自動橫向擴展下去,Node 要是沒有跟著變多,到最後也只是看到一堆 Pendding 的 Pod,這篇文章除了手把手的教學要如何使用 HPA 之外,也試著去比較 autoscaling/v1autoscaling/v2beta2 的不同之處,也就是後者可以使用多重 Metrics, 也支援客製化和外部 Metric,想要確認自己使用的是哪一個版本的話,可以透過執行以下指令得知 $ kubectl api-versions | grep autoscaling,廢話不多說,有興趣的人可以趕緊打開文章,跟著詳細的步驟一步一步照著做做看

7 GitHub projects to supercharge your Docker practices 🚀🧑‍💻

如何磨練自己使用 Docker Container 的技巧呢?這篇文章的作者分享了七個星星數都爆表的 GitHub 專案供大家參考:

  1. Docker Labs
  2. Minify Docker Container image by 30x
  3. Dockerfiles for popular Apps
  4. Dockerfile best practices
  5. Distroless Docker images
  6. WatchTower
  7. Docker bench for security

Awesome Argo

Argo 家族成員越來越多,上個月才注意到 Argo Rollouts 來到 v1.1,而有善心人士就幫忙整理 Argo 的相關資源,例如總共有哪些專案:Argo Workflows, Argo CD, Argo Rollouts, Argo Events…等,有哪一些相關書籍,部落格文章跟影片,對於想要自動化管理 K8s Cluster 的人千萬不要錯過了!

StarBugs Weekly

StarBugs Weekly 由一群不寫文章就會想要亂花錢,但是又沒有那麼多錢,只好繼續寫文章的開發者所創立。
內容包含 Web 前端、中端、後端、DevOps、產品開發、精實創業,一切跟產品有關的知識,都是我們的守備範圍!

Writers:

  • @HannahLin - 從台灣到矽谷,熱愛前端的工程師女孩。
  • @KyleMo - 雜食性軟體工程師,喜歡的技術我都想學。
  • @Airwaves - Hi~我是 Airwaves,熱愛研究如何造輪子的前端工程師。
  • @Jenny - 我不寫 CSS。
  • @Andy - 目標成為用嘴巴工作的工程師,專長為網頁開發以及 K8s。

Maintainers:

  • @GQSM - Hi!我是神 Q 超人,一個先衝再說的男人。
  • @LarryLu - 我是 Larry,傳說中的 0.1 倍工程師!
  • @LukaTW - 一名全身都是死角的工程師。
  • @smalltown - 熱愛鑽研各種可以提升雲端服務品質及增進團隊開發效率的開源技術。

Feedback

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