第 73 期 - 天氣太冷,好想泡溫泉

本週專欄

身為 Rust 開發者,一定要知道的十個超實用 Macro

Larry 我寫 Rust 也寫了好一陣子了,真心覺得雖然 Rust 有一些地方不太討喜,但還是有很多不錯的優點,像是變數所有權、Macro、零成本抽象化等等。而今天我就要來跟大家介紹十個超厲害、超實用、不學會後悔的 macro,不管你是剛在學 Rust 還是已經有開發經驗,都很適合看看這篇哦

Rust

6 useful Rust macros that you might not have seen before

因為整個 Rust 生態系的 macro 實在太多,每個人喜歡的都不太一樣。所以除了我推薦的十個之外,這篇的作者也分享了六個 Rust macro,而且跟我講的十個完全沒有交集XD,真的是很有趣。

Macros in Rust: A tutorial with examples

如果覺得別人寫的 macro 用不順手,或是想到一個絕妙的點子想要把它寫成 macro,但卻不知從何下手。那可以來看看這篇,這篇文章用了超多例子教你怎麼寫出各式各樣的 macro。

Why is a Rust executable large?

在這週的專欄中有提到展開 macro 會讓 Rust 的執行檔變肥,但除了 macro 之外其實還有很多其他的原因,如果想知道為什麼 Rust 執行檔會這麼肥,或是想要透過調整編譯器設定降低執行檔大小,都可以參考看看這篇哦~

前端開發

一起理解 HTML 當中的 form-data

multipart/form-data 最大的好處就是可以將不同類型的資料(例如使用者輸入的文字、上傳的檔案或圖片)透過在 <form> 標籤上定義 action 和 method,把整個表單的資料都抓起來一起在一次請求中送出,它是如何做到這件事情的呢?來看看作者如何分析及實作吧!

HTML Bold Text Tutorial – How to Use the <b> Tag

你知道 HTML 中的 <b><strong> 標籤的差異在哪裡嗎?雖然兩者最後顯示在畫面上都是粗體的樣子,不過他們在語義上可是大大的不同,另外在 What’s the difference between <b> and <strong>, <i> and <em>? 此篇問答的最佳解答中也提到,雖然我們「看」起來相同,但是對於像是 Jaws 此類針對盲人的閱讀器,就會有所差異!也提到了 HTML 從來都不是關於樣式的設定,它是用來描述這段文字的語意如何,而不是在於它該如何顯示。

Pure vs Impure Functions

在軟體工程的世界中充滿著一堆領域內的用詞,搞到有時候連最簡單的一個名詞都要思考很久,而這篇文章簡單的描述了有關純與不純函式的差別到底在哪,也替大家常在 JavaScript 內時常用的原生方法做分類與比較。

Microtask v.s. Marcotask

在 JS 的非同步中,除了大家最熟悉的 event loop 外,其實在 event loop 中還有兩個很重要的觀念,分別是 microtask 以及 marcotask,搞懂這兩個觀念後就可以更深入了解 JS 的非同步了!

Caching clash: useSWR() vs. react-query

現在的前端開發越來越強調 cache,有了 cache 的幫助不但可以降低 data fetching 的次數同時也可以降低網頁重新渲染的次數,這篇文章提到 React 兩個非常有名用來做 cache 的套件,如果有讀者需要做 cache 機制不妨可以參考這篇文章。

使用 JSON-LD 處理 SEO

每次用 google 搜尋新聞的時候都會看到一些比較不一樣的搜尋結果,不再只是單純的 Link 跟 Description 而已,後來研究了一下才知道原來是 JSON-LD 的結構化資料,這篇文章闡述了如何利用 JSON-LD 處理 SEO 問題,有興趣的讀者不妨可以收藏起來日後可以拿來看XD

DevOps

REST vs. GraphQL vs. gRPC

記得在兩週前有提到一篇不錯的文章,再跟大家比較 API, WebSocket 和 WebHook 有什麼不同,以及該如何替自己的服務從中挑選適合的協定;而今天這篇文章則是要跟大家介紹 REST, GraphQL 和 gRPC 各有什麼優缺點,讓使用者未來在替自己的應用服務做選擇時可以當個依據

SRE vs Platform Engineering

過去這十年來,整個 IT 產業一直在透過一些最佳準則逐漸地往 Cloud Native 的方向在前進,例如: 持續交付,容器化和觀測系統…等,而在此同時組織也開始產生變化,不再以龐大的部門來開發和發布產品,取而代之的是比較小而且相依性低的開發團隊,而且其中還產生了兩種新的角色,分別是 Site Reliability 和 Platform Engineering,而這篇文章就要帶大家來看看這兩種新的角色分別負責什麼樣的任務,彼此間又有何不同?

Differences Between Git Merge and Rebase — and Why You Should Care

不管你的專案使用的是哪一種 Git Flow,你一定需要透過 Merge 或是 Rebase 來將 Branch 中變更的程式碼整合再一起,而作者在這篇文章中透過精美的動畫,把 Merge 和 Rebase 操作中產生的變化鉅細彌遺地展現出來,並且同時也把這兩種 Git 操作的不同之處詳細地記錄下來,真的是超級用心的!

StarBugs Weekly

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

Writers:

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

Curators:

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

Maintainers:

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

Feedback

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