第 149 期 - 颱風別再來了,給條活路

本週專欄

Home Assistant 智能家居(二) 使用情景大解析

這篇是系列文的第二篇,筆者使用了 HA (Home Assistant) 實現智慧家庭約三個多月的時間,分享一下我常用的使用場景與使用心得,並且分析一下實現的難度。

前端開發

Mobile-First CSS: Is It Time for a Rethink?

優先考慮移動設備的 CSS 是很棒的設計方法,因為只要你的頁面有辦法在手機之類的小螢幕上正常顯示資訊,那在更大的螢幕尺寸上就也絕對沒問題!這篇文章會帶大家思考,優先考慮移動設備的設計會有哪些優點和缺點,以及像是在瀏覽器讀取上,或打包和分割 CSS 後可能會有的影響。

TIL: You Can Access A User’s Camera with Just HTML

在 HTML 裡,如果你將 input 標籤內的 capture 設定成 user 或 environment 就能夠開啟使用者的前置或後置鏡頭,雖然它的支援度目前還低到爆,但如果瀏覽器還不支援的話,也會自動退回到顯示選擇文件的 UI。

JavaScript Patterns Workshop

喜歡研究各種設計模式的前端工程師絕對不能錯過這個網站!這個網站與 FrontendMasters workshop on JavaScript Patterns 相關,內容也是基於另一個很棒的免費資源 patterns.dev 內的模式介紹,不過介紹內容會多一些精緻的圖片,讓讀者更能理解設計模式內的程式碼關聯哦!

React.js

Why React Re-Renders

如何防止意外觸發 rerender 一直是用 React.js 開發時很重要的議題, 這篇文章會帶大家了解 React 是怎麼決定要不要 rerender,以及在開發時應該要如何避免不必要的 rerender。

Understanding useMemo and useCallback

比起最常見的 useState,useMemo 跟 useCallback 這兩個 hook 算是比較少用也比較複雜一點,但如果用得好的話,他們可以讓程式碼寫起來很漂亮,同時又可以提高效能,推薦給已經寫過 React 想要學習進階技巧的 React 開發者來讀讀~

Notes on maintaining an internal React component library

許多用 React 開發前端的公司內部都會有自己的一套 component library,這篇文章會介紹一些維護 component library 的心法以及注意事項,包含 props 應該如何設計、怎麼減輕開發的心智負擔等等。雖然文章真的很長(我每天一個段落總共讀了兩個多禮拜),但真的寫得很不錯

DevOps

The 2-minute test for Kubernetes Pod security

本文示範了如何 2 分鐘使用 Kubernetes Pod Security Standards 來檢查 pod 的資安,而且完全不用在 Kubernetes cluster 內安裝多餘的東西,只需要靠 kuberctl 安裝 Kyverno 後掃描 cluster 或 namespace 就可以知道結果了。

Avoiding the Top 10 NGINX Configuration Mistakes

本文介紹了如何避免 Nginx 10 個常見的設定錯誤:

  1. 每個 worker 的 file descriptors 預設值太低,可以調高,跟連線數有關
  2. 預設 error_log 是不會儲存的,建議可以開啟
  3. 正常設定下每個新請求都要三向交握且會佔用 ports,所以建議開啟 keepalive
  4. 使用者常常忘記個別 path 下的設定會 override 全域的設定
  5. 建議 proxy_buffering 使用預設的打開選項,只有很少數的情境才需要關閉
  6. 避免設定 if 時使用不當
  7. 避免過度地使用 health checks
  8. 避免以不安全的方式存取 metrics,建議使用簡單的帳號密碼和許可或阻擋名單做一定程度的阻擋
  9. 建議在同個 /24 網段下不要使用 ip_hash 演算法,因為它只看前三個八位元組,會無法分散流量,建議使用 hash 演算法。
  10. 應該活用 upstream{} 的好處做全域的設定

How a Cloud Skills Shortage Is Affecting Multi-Cloud Adoption

Hachicorp 統計了組織在採用多雲策略時會遇到的阻礙,而平台團隊(platform team)負責什麼任務,同不同意多雲環境自動化的重要性,哪些自動化功能可以幫助多雲策略。

Git

GIT Branching Strategies in 2022

Git 這套版本管理系統賦予軟體開發者能力去追蹤,管理和組織他們的程式碼,但是 Git 本身並沒有提供一個明確的分支策略,這將會導致相對大型的團隊在建立分支及合併程式碼時容易搞的一團亂,因此開發者必須自己去決定如何使用 Git 分支。本文將介紹幾種不同的分支策略,並且提供一些建議,讓你可以選擇最適合你的分支策略。

  • GitFlow
  • GitHub Flow
  • GitLab Flow
  • Trunk-based development
  • Scaled Trunk-Based Development
  • Release Flow

Sign your Git commits with 1Password

1Password 除了對一般使用者體驗來說還不錯之外,自己覺得他在近年來也一直推出對於 Developer 很友善的功能,例如之前支援了 SSH 還有 VIsual Studio Code;而 GitHub 於近期宣布支援透過 SSH Key 去對 Git Commit 做簽章驗證 (之前只支援 GPG Key),1password 這篇文章便是介紹了如何將 SSH Key 儲存於其中,並對 Git Commit 做簽章驗證。

Merging two GitHub repositories without losing commit history

自己是有把 Git Repository 搬來搬去的經驗,但是把兩個 Repository 合併在一起的卻還沒有嘗試過,這篇文章介紹了如何將兩個 Repository 合併在一起,並且保留原本的 Commit History。先筆記下來,搞不好將來有一天自己也會使用到

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 倍工程師!
  • @LukaTW - 一名全身都是死角的工程師。
  • @smalltown - 熱愛鑽研各種可以提升雲端服務品質及增進團隊開發效率的開源技術。
  • @RicoChen - 熱愛許多技術且努力看透技術的本質,如果有什麼好玩的技術,還請各位歡迎直接找我聊聊。

Feedback

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