第 87 期 - 我要成為海碼王!

本週專欄

Mac 快速分割視窗,用 Rectangle 就對了

視窗的移動和切換, 對於一個開發者來說, 能懶則懶. 蘋果雖然有內建可以將視窗分為兩半的操作方式, 但是用滑鼠來操作, 需要把手移開鍵盤。如果這時候一個可以用快速鍵來分割畫面的軟體就太棒了。

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

前端開發者也可以懂的基礎 System Design

前陣子在與朋友一起籌組的後端開發線上分享會 BESG 有成員分享了 TinyURL 的系統設計 (System Design),剛好也看到了知名 YouTuber Terry 關於 Google 系統設計面試的影片,了解到在美國的資訊業,不論你是前端、後端、資料工程師還是 DevOps,System Design 系統設計幾乎都是面試時的必考題。有人可能會覺得,反正那是國外的狀況 …

前端開發

🧑‍💻 How I developed my portfolio for a month 🗓 + Demo 🍿

身為開發者為自己做一個展示火力的個人網站應該是很正常的事情吧?但是在做個人網站時該考慮哪些事情呢?作者把它從開始規劃、決定技術、和每階段的開發狀況都寫下說明以及它想在網頁上表達的事情,我覺得內容非常棒!然後在看的過程中我只想問,從頭像到完成動畫之間到底發生了什麼?😂

How to display content in multiple columns using CSS

文章裡介紹了如何用 CSS 的 column 讓文章變成多欄顯示,以及使用 orphanswidows 做更細微的設定,如果對這些屬性還不熟悉,可以看看此篇作者解釋和範例!

Reading Clean Code: Week 1

這篇是作者閱讀 Clean Code 所記錄下來的讀書心得,而且作者還選了自己的一個專案,然後藉由從 Clean Code 中讀到的觀念來重構程式碼,如果對 Clean Code 這本書有興趣的話,不妨可以和作者一起讀哦!依照文章最後的意思,作者是會週更的。 😂

cssbattle

這個網站真的蠻屌的很推薦所有的前端工程師可以上去玩玩看,透過寫 html + css 的方式來達到目標的視覺畫面,然後比誰寫的 code 字數最少,不得不說透過這個網站可以了解很多不同的切版技巧,可以學到很多前端大神的思考方式。

esbuild

esbuild 算是近期蠻多人都在討論的前端打包套件,而且 esbuild 強調的就是打包速度飛快,比大家都在用 webpack 還快很多,的確看到一些介紹以及網路上的 DEMO 真的都比 webpack 快,但 webpack 厲害的地方就在於有很多可以玩的 plugin,不知道 esbuild 之後會不會也有那麼多 plugin 可以玩就是了XD

monaco-editor

這個編輯器真的很酷是微軟自己做的線上編輯器,個人真的覺得比 Draft.js 好用很多(真的不曉得前陣子自己在那邊研究 Draft.js 那麼久到底在幹嘛哈哈哈),而且這個編輯器其實就是 base on 微軟最有名的 vs code 編輯器底下的產物,所以編輯邏輯其實就跟 vs code 差不多算是可以無痛上手,最近如果有興趣再研究編輯器的不妨可以考慮看看這款套件,至於 Draft.js 就隨便他了哈哈哈哈。

Docker

Top 20 Dockerfile best practices

看過那麼多篇 dockerfile security 的文章,這篇大概是講得最全面的了,如果上線之前不知道該怎麼讓自己的 image 更安全的話,看這篇就對了!

Build images with BuildKit

Docker 自 18.09 以後就開始支援 buildkit,除了 log 更好看之外,還新增了一些其他的 feature,而且啟用的方式也超簡單,所以很推薦使用哦~

用 docker-compose 優雅關閉服務

怎麼讓服務 gracefully shutdown 一直以來都是個很重要的問題,而 appleboy 這篇文章講到了怎麼在 docker-compose.yml 裡面自己設置 signal 跟 timeout,在部署、更新大量 container 時還滿實用的

JavaScript

JavaScript: What is short-circuit evaluation?

說真的 JavaScript 總是有很多奇怪的寫法來達到想要的結果,由於以前寫 C++ 寫久了,所以一開始在寫 JS 看到都會覺得 &&|| 這個運算子就會直覺的認為只會返回不林子,殊不知 JS 的這兩個運算子能做的事情非常多而且非常奇妙,以後有想要進行邏輯取值的時候不妨都可以利用這種方式來寫,可以讓你的程式碼瞬間少了好幾行看起來很乾淨XD

这些 JS 的新语法有点东西啊

作者整理了一些在 tc39 上的有趣提案,其中包含了現在滿常被討論的 .at 外,還有已經在第四階段的 Top-level await,之後使用 await 時甚至不需要放到 async 裡面,但其中最讓我感到噁心的還是 「管道运算符(The Pipeline Operator)」,還有其他有趣又實用的提案,大家一起看看吧!

DevOps

5 GitHub Projects to make you a better DevOps Engineer ⚡

DevOps 這個領域具有相當地挑戰性,需要不斷地學習,因此作者在此推薦五個 GitHub 專案,讓有興趣的人可以找到方向深入研究

  1. The book of secret knowledge: 收集了作者每天工作會用到的工具,從 CLI, GUI, Web 到網路…等相關工具清單一應俱全,看完覺得自己也應該來弄一個類似的 Repository 幫助自己越來越不行的記憶力

  2. Awesome Scalability: 收集了各種有關於大型系統的 Scalable, Reliable 和效能相關的文章,而且很多都是滿有名且大型的組織,相當的具有指標跟參考意義

  3. DevOps Exercises: 包含了各式各樣有關於 DevOps 和 SRE 技術領域的問題跟練習題,自己感覺很適合拿來當面試題目使用XD

  4. Test your sysadmin skills: 專門用來考 Linux 系統管理者的問題大補帖,跟上面一樣適合拿來當面試問題使用!

  5. How they SRE: 這個我記得我之前介紹過,這個 Repository 收集了世界上軟體技術相關的大型公司如何去培養自己的 Site Reliability Engineering

SLOs should be easy, say hi to Sloth

每年都有比較熱門的技術詞彙,例如 2017 Cryptocurrency 和 Blockchain,2018 Observability 和 Tracing, 2019 Service Mesh,2020 GitOps,而作者認為 2021 就是 SLO 啦!這篇文章主要介紹他開發的 Sloth 專案 (一個可以讓 Prometheus 產生 SLO 的最簡單方式) 的心路歷程

而作者會開發出來這個專案的最主要原因在於…他在 2018 年讀到 Google 經典 SRE 巨作後知道了 SLO 的觀念,不過每次他在跟朋友討論到時都會發現,大家雖然都已經知道,但好像沒有人已經做得很好,都還在很努力地看怎麼應用或是將它實踐在日常的工作上的階段中,在這幾年經歷了在沒有 SLO 的公司嘗試導入 SLO,或是在已經應用 SLO 公司的工作經驗後,他決定把自己在 2018 年的一些開發和導入經驗開源出來成為 Sloth 專案,其中包含了 K8s Operator 和 CLI 工具來輕鬆的整合 Prometheus Stack,讓 SRE 可以經鬆的導入跟實踐 SLO!

Announcing etcd 3.5

有使用過 Kubernetes 的人應該都有聽過 etcd 這個 Key-Vaule 儲存系統,他最近發佈了 3.5,距離 3.4 也已經過了兩年,在這段期間隨著使用的人越來越多,穩定和可靠度當然成為了官方的開發重點項目,讓我們來瞧瞧看歷經了兩年時間的累積,etcd 完成了哪些事情,讓他們覺得夠格推出 3.5 這一版!

  • Security: 畢竟 etcd 負責儲存處理不少機敏資訊,所以加強安全性是最高優先權的工作, 因此官方早在 2020 年就請了第三方幫忙做安全稽核,並且把發現的安全問題不管大小都修復掉

  • Features: 改成使用 zap 來處理 Log,並且也預設支援 Log Rotation,在對於昂貴的請求也可以記錄更詳細的資訊;然後在 Rollbak 功能下了些功夫,gRPC gateway endpoint 現在換成使用 /v3/*,在 etcd client 現在也換成使用新的 gRPC 版本 1.32.0

  • Performance: 最多使用 etcd 的人,其實都是 K8s 的使用者,而當 K8s API 在 Reflector Cache 找不到想找的資源時,就會去查找整個 Keyspace,這會造成 etcd 的回應時間變久,所以官方詳細的去調查造成這個問題的原因 (主要是跟記憶體使用率相關),最後嘗試將記憶體的在最高峰時的使用量減半 (雖然改的程式碼不多,但修掉了這個困擾大家好幾年的問題),然後也花了很大的心血改善了 Transaction 的效能,讓 K8s API 在新增和修改資源的速度可以更快

  • Others: 一開始有提到 etcd 的可靠和正確性相當地重要,所以官方將上個版本中被提出來的嚴重 Bug 都修掉了,而且在監控,測試,開發者體驗跟社群方面都做了不少事情,更詳細資訊可以參閱原文

StarBugs Weekly

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

Writers:

  • @HannahLin - 從台灣到矽谷,熱愛前端的工程師女孩。
  • @Kyle老莫 - 無法忍受自己一天不進步的熱血社會菜雞。
  • @Airwaves - Hi~我是 Airwaves,熱愛研究如何造輪子的前端工程師。
  • @Jenny - 我不寫 CSS。

Curators:

  • @Andy - 目標成為用嘴巴工作的工程師,專長為網頁開發以及 K8s。

Maintainers:

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

Feedback

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