第 98 期 - 鐵人賽開賽最後一週,你屯了多少文章?
本週專欄
用 JavaScript 玩轉設計模式 | 都變成我想要的樣子吧!Adapter Pattern(轉接器模式)
轉接器就是在 Type-C 和 HDMI 之間的橋樑,只要擁有轉接器,Type-C 和 HDMI 本身就都不需要做任何的修改便能互相傳輸。那麼,像這樣方便的概念,有辦法用在程式設計上嗎?這篇文章就要來聊聊,在眾多設計模式之中的 Adapter Pattern,也就是可愛簡單又方便的轉接器模式啦!
前端開發
Common NPM Mistakes Every Developer Should Avoid
有時候使用 npm 下載套件時,常常會出現一些問題,這時候就會上 Google 找一些大家流傳下來的解答來解決(像是刪除 package-lock.json 再重新下載套件等等 😂),但是這些方法真的正確嗎?來看看作者列出在使用 npm 上應該避免的錯誤!
A Practical Guide to Creating Reusable React Components
相信大家對於什麼時候需要切出 component 都曾經感到困擾,這篇文章的作者提出了三個可以表示 component 該被抽出來的指標(雖然有一點是關於 GraphQL 的),也實際操作該如何製作一個可重用的 component。
How to Preview image before uploading in Javascript
文章中介紹了在上傳之前就能先用 JavaScript 預覽圖片的簡單方式,在只想做些簡單的 Side Project 顯示且沒有後端的情況下很適合使用。
Announcing SWR 1.0
在 React 中有一個相當知名用來進行 fetch data 的套件:SWR,在前陣子正式進入 1.0.0
版了,相較於之前的 0.x
版本,這次的 1.0.0
版改動相當多,如果先前就有在使用 SWR 的讀者在升級版本之前不妨先看一下 SWR 官方寫的文章再考慮是否要升版吧XD
smoothscroll
不曉得大家有沒有踩過這樣的地雷,使用 window.scrollTo
加上 smooth
這個 behavior 的時候在 safari 上的表現會怪怪的,沒有慢慢滾下去的感覺,然後查了 MDN 發現 safari 是支援的,又查了 caniuse 也發現完全支援,但這個效果就是出不來,其實 window.scrollTo
safari 是支援的,可是不支援 smooth
這個行為,所以不管怎樣都無法表現出這種效果,但不用擔心有套件幫我們做到這件事了,日後如果有讀者遇到類似的問題不妨可以使用這個套件就可以解決了~
How JavaScript Works🔥 🤖 [Visually Explained]
這篇文章真的太酷了,解析了一些 JavaScript 的行為作動,可以幫助一些正在學習 JavaScript 的讀者可以更快熟悉 JavaScript 的世界,而且這篇文章圖文並茂真的蠻適合閱讀的XD
Go
The underutilized usefulness of sync.Once
我也是寫 Go 寫了一陣子之後才知道這個東西,基本上如果你有什麼事情只想做一次,像是初始化資料庫連線這種的,那絕對是直接用 sync.Once,不然自己用 mutex 寫不只很醜還可能會寫錯XD
Simple Concurrency in Go for Fans of JavaScript’s Promise.all
只要有寫過一陣子 JS,應該都會同意 Promise.all 真的非常好用,他讓你可以同時發出多個非同步請求,並且等他們回來之後一起做錯誤處理。而在 Go 裡面也有一個很好用的東西叫 errgroup,用起來就跟 Promise.all 很像,有寫過 JS 的人一看就能看懂~
併發程式典範 (Paradigms): Golang V.S. Java
我對於比較各語言的非同步語法是怎麼設計的一直都很有興趣,因為那代表著每個語言在思路上的不同,而且這些思路往往各有優缺,並沒有絕對的好壞,這也會提醒我一個問題通常有很多種解決方式,就看你從哪個角度去看他
DevOps
Kubernetes Instance Calculator
learnk8s 推出了超級華麗的 Kubernetes 節點計算機,讓 K8s 的使用者可以根據自己應用服務所需的運算資源,透過此計算機來尋找最佳的節點大小;而計算機內可以選到三大公有雲 (AWS, Azure, GCP) 的機器型別,透過調整 Pod 和 Daemonset 中對於 CPU 和 Memory 的 Request 和 Limit 來找出最適合的 K8s 節點,不過必須要知道一些前提條件,例如不同平台的機器可以運行的 Pod 上限,機器中的運算資源不會全部都拿來給 Pod 使用,必須要保留給 OS, Kubelet…等,有興趣的人可以參閱原文內的詳細使用說明書!
Amazon EKS Anywhere – Now Generally Available to Create and Manage Kubernetes Clusters on Premises
AWS 在上週宣布的重磅消息 - Amazon EKS Anywhere GA 了!使用者可以透過此專案在自己家裡的資料中心建立 Kubernetes Cluster,目前第一波支援的廠商為 VMware vSphere,其他家包含 bare metal 的版本將會在 2022 年到來,而在文中的表格可以知曉大部分的東西從本來由 AWS 負責維運變成自己要負責,其中有提到可使用 Flux 做到半自動的 Cluster 更新,讓我比較感興趣的在於 K8s CNI Plugin 選用了 Cilium,而不是 Calico,更多細節可以參閱專案網站,對於詳細實作有興趣的人可以直接參觀開源出來的 GitHub Repo,不過這樣是不是會打到某些廠商XD
HTTP/3: Practical Deployment Options
瞎咪!HTTP/3 已經要來嗎?!我怎麼覺得 HTTP/2 好像還沒有普及XD 在經過將近 5 年的開發之後,全新的 HTTP/3 協議已經接近完成的階段,而要把自己的網站或是雲端服務轉換成 HTTP/3 的話要怎麼測試和部署呢?透過這篇文章可以知道如何做到,而其實這是一個三篇的系列文,前面還有兩篇分別提到 “HTTP/3 的核心概念與功能功能” 和 “HTTP/3 在效能上的改進”,想要了解 HTTP/3 的人可以找個時間好好閱讀一番
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 粉絲專頁 與我們聯繫。