第 127 期 - 你不是真的關心,只想要觀星

本週專欄

Home Assistant 智慧家居 — 安裝方法大比較

Home Assistant 是一套能夠整合家裡智慧設備的一套系統,簡單的說是實現智慧家居最親民的一種方案。但是相較於蘋果的智慧家居方案 Homekit 使用上較為複雜。

前端開發

React v18.0

React v18 在上禮拜出現後就在 React 生態圈中鬧得沸沸揚揚的,究竟在 React 升級到 18 後會出現了哪些酷東西?其中包含了 Automatic BatchingTransitions 還有新的 Hooks 等更多功能,一起看看官網如何介紹吧!

Understanding Layout Algorithms

作者介紹了 CSS 的幾種排版的結構(像是 Flexbox、Positioned、Grid 等),每個算法都有自己的規則和機制,但如果我們只去了解特定的語法在做什麼事情是不夠的,因為有些屬性會因為一些微妙的父層佈局而改變行為。

5 coding interview questions I hate

在面試中,總是會出現一堆在平時工作上幾乎不會遇見的問題。這作者在經歷了超過百次的面試後,列出了五個它認為根本沒有任何技術含量的技術問題。對求職者來說,你無法改變你會遇到的這些問題,但還是要準備承認這些你不了解的部分,並陳述在你了解的區塊是如何運作的。

DevOps

CNCF Argo Project 2022 User Survey Results

作者帶大家看 CNCF 2022 年使用者對 Argo 專案的社群回饋報告,樣本數為 147 份,其中 92 份來自 CD/Rollouts,55 份為 Workflows/Events:

Argo CD/Rollouts:

  • 所有的調查回覆中有 80% 已經把 Argo CD 用於生產環境超過 6 個月
  • NPS 分數(Net Promoter Score,調查的方法類似為 0-10 分你有多推薦 Argo CD)為 74,比去年還多 4 分

Argo Workflows/Events

  • 所有的調查回覆中有 75% 已經把 Argo Workflows 用於生產環境,50% 表示在生產環境超過 6 個月
  • NPS 分數落在 48 分

另外也有描寫什麼角色會使用這些工具、生產環境的詳細使用時間、使用數量、生態等等。

Why Let’s Encrypt is a really, really, really bad idea…

Let’s Encrypt 雖然方便,但其實當全世界的網站把雞蛋放在同一個籃子裡是有風險的,在資安的角度來看,CAs 的碎片化——也就是說憑證散落在各個供應商是件好事,而非 bug 一樣的存在。如果想要改善的話可以從三點著手:

  1. 網站架設完就完全不用煩惱憑證的方案是不存在的,盡量避免「免費」或「方便」的方案
  2. 要注意憑證商負責保護網站的哪些部分,且使用憑證供應商的工具發出 CSR(certificate signing request)
  3. 可以考慮向憑證供應商保保險

3 Must-Haves When Implementing DevSecOps

DevSecOps 這個詞已經不陌生了,但實踐時要注意哪些呢?作者講解和秀出例子來佐證 DevSecOps 的重要性,並表示要順利的導入組織必須要有三大要點,教育、流程和工具都要到位才行。

後端開發

WhatsApp System Architecture

WhatsApp 是在歐美相當普遍的即時通訊軟體,幾乎人人都會使用到,假如要設計這麼樣的一個即時通訊軟體服務要怎麼做呢?首先類似的聊天系統其實分成兩大類,一類是像 Facebook Messenger 會永遠儲存所有的聊天訊息,另外一類是像 WhatApp 一旦訊息被使用者接收後,就會從系統端被移除掉,知道這個最主要的不同點之後,作者開始做主要功能需求分析,例如:支援 1 對 1 聊天,支援離線傳送訊息,支援傳送訊息給離線使用者,支援群組聊天…等

並且根據這些需求將約略的系統元件架構圖給勾勒出來,緊接著開始最精彩的部分,針對每一個系統元件去做分析,從 Profile 資料庫與服務,負責 Mapping 的資料庫,Group 服務,訊息儲存的機器跟資料庫,多媒體訊息的處理機制,然後在不同的前端平台與後端各自需要哪一些語言或是作業系統,都條列出來,最後再繪製出更完整詳細的系統架構圖,整篇文章是一個很完整的系統逆向工程,感覺是要成為一個架構師的必備技能!

How to Become a Blockchain Developer

最近讀到不少新聞指出矽谷很多大企業員工都紛紛跳槽到跟 Web 3.0 相關的產業,畢竟這可能是下一個網路世界變革的前哨戰,其中的區塊鏈產業或是部門也在各大企業挖角中,薪水也都開得不錯,不過假如想要成為一名區塊鏈工程師一起往 Web 3.0 的世界前進的話, 會需要具備什麼樣的能力呢?

其實區塊鏈工程師還可以分成兩類,一類是區塊鏈核心開發人員,負責研究,設計和開發架構面,安全面和底層協議,或是其他與區塊鏈相關的技術,基本上會是負責監督整個區塊鏈網路的角色;另外一類是區塊鏈軟體開發人員,他們負責開發去中心化應用程式 (DApps),網路應用服務和智能合約,所以建議需要從幾個特定領域開始著手學習起,包含 Blockchain 架構,資料結構,密碼學,智能合約和網路應用程式,對於成為區塊鏈工程師有興趣的話,可以參閱詳細文章內容

How to Use SSH Config File to Boost Your Productivity

現今的工作環境避不掉需要連接很多的遠端機器,有可能是要部署,管理或是為程式碼除錯,而隨著連接機器數量的上升,越來越不可能將所有的 IP, Port 跟 Credential 存放位置給通通記住,這時候就需要依靠 SSH Config File 來解決這個問題。一般來說要透過 SSH 登入某一台機器時的指令會類似底下這樣:

1
ssh -i ~/.ssh/smalltown.pem [email protected]

不過透過妥善設置的 SSH Config File 可以讓你的登入指令更加簡單,使用者就不再需要去記得要使用什麼 IP, Port, Credential 等等,而只要輸入目標名稱就可以了

1
2
#  登入指令
ssh smalltown
1
2
3
4
5
# SSH Config File
Host smalltown
HostName 10.1.2.3.4
User ubuntu
IdentityFile ~/.ssh/smalltown.pem

而 SSH Config File 還可以透過類似正規表示式來設定,例如使用 * 來代表多個字元,? 來代表單一字元,!代表不符合的字元,例如可以設定 Alpha 的機器要使用什麼樣的使用者名稱與 Credential,Production 的 Log Level 要是什麼…等,隨自己的需求組合出適合自己的 SSH Config File,讓自己事半功倍,更多詳細的資訊可以參閱內文

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

Feedback

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