第 91 期 - 台灣奧運加油!

本週專欄

Dnote 在終端機做筆記 + 自架 Dnote 伺服器

當你在使用終端機時,想要快速記錄筆記,但是不想使用滑鼠時。這時候 Dnote 就派上用場啦。

前端開發

CSS Box Model Properties – Explained With Examples ✨

如果是剛碰到網頁設計的初學者,這篇文章真的超級推薦!每個小節都專注介紹一些小部分的屬性對版面元素的影響,配合上例子讓人更能了解該如何使用 CSS!

meta标签到底是做什么的|我竟一无所知

雖然 meta 標籤在大部分網站點開 F12 的開發者工具都看得見,但是真的要解釋起來好像又有點一知半解,這篇文章的內容應該算是前端冷知識,但是還是可以了解看看文章裡有哪些神奇的標籤和屬性是我們沒有看過的!

25 Vue Tips You Need to Know

相較於貼近原生 JavaScript 的 React 來說,Vue 就有很多黑科技語法可以直接使用,但是如果搞不清楚如何使用就會讓程式變得很難維護,文章中一口氣舉了 25 個在寫 Vue 時可以注意的小地方,一口氣給你滿滿的乾貨。

Is It Possible to Allow Literal String Values With TypeScript’s Enum Type?

這招真的太炫砲了,以前想要把 enum 的值取出來並且作為某個 type 的 value 時,通常都要用迴圈的方式慢慢把 enum 的值抓出來,但其實可以用 template string 的技巧達到一樣的效果,如果讀者有類似的需求不妨也可以用這種方式也能讓整體程式碼看起來更乾淨俐落。

React Component with Dot Notation

有時候在使用 ant design 時總是會看到一些可以利用 <A.B /> 的方式讓 B 元件也可以被引用,到底 React 是如何做到這點的呢?這篇文章有了詳細的介紹,如果有想要將自己的共用元件也設計成這種引用方式不妨可以把這篇文章收藏起來。

Learn Recoil

Recoil.js 算是在 React 中一個蠻新的狀態機,其實 Recoil.js 算是比較輕量化的狀態機,不像 Redux 那樣複雜,因此在比較小的專案上不妨都可以利用 Recoil 來進行狀態管理,當然想要自己一步一步的學習真的太累了,因此這邊介紹一個網站可以免費的看影片學習 Recoil,有興趣的讀者不妨可以收藏起來日後可以閱讀。

Rust

Zero-cost abstractions in Rust

在讀 Rust 的文件時常會看到「零成本抽象化」這個名詞,但究竟什麼是抽象化,又是哪些部分零成本,一起來看看這篇文章的實驗吧~

First steps with Docker + Rust

現在很多服務不管是什麼語言寫的,幾乎都會包成 Docker image 再進行部署,所以怎麼把 Rust 程式碼好好的打包成 Docker image 就很重要了。而這篇文章除了示範怎麼寫 Rust 的 Dockerfile 之外,還講了很多寫 Dockerfile 時的小技巧,推薦有在寫 Rust 的人都來讀讀~

String vs &str in Rust

初學 Rust 時常被 String 跟 str 搞得很混亂,覺得一個程式語言怎麼會有兩種不同的字串型別,到底是想要幹嘛?但 Rust 這麼做其實是有他的道理,因為他們被儲存的方式確實不太一樣,只能說 Rust 這語言實在是很有趣(麻煩)呢!

DevOps

Migrating Facebook to MySQL 8.0

Facebook 內部有許多重要的應用服務都是使用 MySQL, 而且為了滿足內部的使用需求,他們在 MySQL 內開發了許多的功能,因此每次要升級 MySQL 主要版本都是相當浩大的工程,例如需要將客製化功能移到新版本,確保 Replication 在主要版本間的相容性,讓既有的應用服務只需要最小的改動就能夠繼續查詢資料,修復再升級中會遇到的效能問題,上一次升級到目前 5.6 這一版花了超過一年的時間,在 5.7 釋出時,內部開發的 MyRocks (LSM-Tree Storage Engine) 在弄到一半而已,假如這時候又決定要做主要版本升級將會拖慢 MyRocks 的開發進度,所以後來決定在開發完之前先待在目前的版本 5.6

而就在 8.0 推出之後,MyRocks 也弄的差不多了,內部想說升級到 8.0 可以獲得比 5.7 更多的新功能,而且這對於要修改 MyRocks 也有更多的好處,所以雖然這筆升級到 5.7 來得更加具挑戰性,但後來還是決定直升 8.0,而具體要做的事情有哪一些呢?首先要把已經在 5.6 Branch 超過 1700 個 Code Patch 移植到 8.0,也需要處理大量在生產環境的 MySQL 伺服器,而且有一些功能可以已經在 5.7 就淘汰掉了,所以從 5.6 升級到 8.0 必須要修改且升級應用服務的程式碼,有一些 Facebook 功能在 8.0 無法兼容,需要棄用或是改成其他用法,最後就是 MyRocks 也需要可以運行在 8.0 中,對於這些挑戰細節有興趣的人,推薦可以直接參考文章詳細內容

Top 10 Useful GitHub Repos for Self-Development

軟體世界更新速度驚人,要怎麼自我學習其實是相當重要的,所以此篇文章的作者列出了十個對於開發本身或是改善開發有幫助的十個 GitHub 專案!

  1. Project Based Learning: 這個專案適合那些透過 Side Project 來學習新事物的人們,而且它還透過不同的程式語言來做分類,是個對於想要從無到有做出一個應用程式的好來源
  2. Awesome: 擁有各種不容領域的大量資源,想要學習進入某個領域的開發者可以利用他所提供豐富資源
  3. Free Programming Books: 根據不同的程式和人類語言條列大量的免費技術學習資源
  4. Developer Roadmap: Web 相關開發的職涯道路發展技能樹
  5. Public APIs: 收集各種免費的 API
  6. Coding Interview University: 準備面試時通常都會透過 Google 收集問題,而這個專案包含準備面試的完整資源
  7. https://github.com/jwasham/coding-interview-university: 收集很多的部落格文章,書籍還有在市場上的工具,讓你的 Javascript 測試技能可以邁向下一個階段
  8. Awesome Python: 收集了驚人的 Python Framework, 函式庫,軟體和資源,想要或是有在撰寫 Python 的人都適合逛一逛
  9. TensorFlow: TensorFlow 是在機器學習領域最流行的開源專案,裡面包含了從安裝 TensorFlow 到部署 ML 模型
  10. FreeCodeCamp: 為開發新手提供免費學習和增進寫程式效率的地方

Sysdig and Apolicy join forces to help customers secure Infrastructure As Code and automate remediation

Sysdig 於日前宣布獲取用來加強 Infrastructure as Code 安全性的 Apolicy,而 Apolicy 主要的功能在於可以透過 Policy as Code 來加強使用者在 K8s 還有雲端上對於安全政策的遵守,因此它可以達成三個目標,分別是 Shift-left Security (在變更部署到 Production 環境前就先在 CI/CD Pipeline 先行發現問題),Runtime security (在 Container 服務運行時偵測具有威脅性的行為,預防其發生,並且產生對應反應)和 Continuous compliance (在做到上面兩點後,就可以達成持續性保持安全合規,不再只有透過週期性或是單次的
稽核,來確保整體架構的安全性);其他有關於他如何讓 IaC 跟 PaC 整合再一起的運行方式,例如 Terraform 或是 Open Policy Agent…等,可以直接參閱文章內容,或是直接試用看看 Apolicy

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 粉絲專頁 與我們聯繫。