第 53 期 - Starbugs 技術週刊一歲囉!

本週專欄

從 LLVM IR 來看編譯器最佳化都在做些什麼

在 Starbugs 一週年的專欄,我想跟大家分享什麼是編譯器最佳化,雖然「編譯器」跟「LLVM IR」聽起來很難很恐怖,但這篇文只會帶大家看些簡單的程式碼,並且舉一些例子來講 編譯器最佳化 在做些什麼,所以真的不用太擔心看不懂 XD

慶祝一週年,新增作者群!

Starbugs 星巴哥技術週刊邁入一週年的里程碑,感謝大家的支持。未來的一年星巴哥想要讓大家看到更多元的內容,提供大家更多優質的原創文章,因此最近我們邀請了幾位優質的寫作者加入 星巴哥的行列,以後在週刊上也會看到作者群撰寫的優質原創文章。

本週來介紹第一位寫作者 Hannah Lin !!

Hannah 是一位非本科系的前端工程師,因為熱愛前端,不斷努力,終於在近兩年解鎖了在矽谷工作的成就。「能把興趣當工作是很幸福的一件事,也期許每天的自己都能比昨天更強一些」- 從這句話中可以透漏出 Hannah 對技術的熱愛與不斷前進的衝勁!

本週來介紹一下 Hannah 在面試 Facebook 時被考的問題,透過這篇文章了解世界頂級的大公司,到底在考些什麼?

Facebook 面試考什麼 — DOM Tree 篇

雖然自知能力還不足,但能有機會跟 Facebook 電話面試 (美國面試 6–8 關,電話面試只是第 2 關而已 ),也可以算是人生成就了吧! 覺得大家應該會好奇國外面試除了演算法/資料結構還會考些什麼有趣題目。

前端開發

認識 parseInt、parseFloat 與 Number 轉換成數字的三種方法

在原生的 JavaScritp 中提供了 parseIntparseFloatNumber 來把值的型態轉成數值,那你有思考過這三種方法除了名稱外還有什麼不同嗎?

JavaScript Void 0 – What Does javascript:void(0); Mean?

各位前端工程師應該有留意過在 ahref 中出現的 javascript:void(0) 對吧?通常都會使用在不想要連結到其他網址而讓 href 失效的方式,但你知道 void 到底是什麼神奇的空東西嗎?

使用 Vue3 封装一些有用的组合 API

在這篇文章當中,作者認為 Vue3 的 Composition API 和 React 的 Hooks 非常相似,因此就試著用了 Vue3 實現 React 在 Hook 所提供的功能!

Python

详解 Python 中的协程,为什么说它的底层是生成器?

協程 Coroutine 與線程 Thread 的不同在於,Thread 由作業系統調度,而 Coroutine 由程式語言實作。本篇文章來探討,在 Python 3.4 以後,官方也收入協程的功能,讓我們來看看協程究竟是怎麼回事吧!

说说我对 WSGI 的理解

WSGI 解決了怎麼樣的問題?舉個例子:服務器應該如何把請求信息傳給應用,應用處理完畢後又怎麼告訴服務器開始返迴響應,如果都是各搞各的,服務器需要定制應用,應用也要定制服務器,這要一個應用能跑起來也太麻煩了點吧。所以,WSGI 的出現就是為了解決上面的問題,它規定了服務器如何把請求信息告訴給應用,應用怎麼把執行情況回傳給服務器,這樣的話,服務器與應用都按一個標準辦事,只要實現了這個標準,服務器與應用隨意搭配就可以,靈活度大大提高。- 引用自原文

A Bite of Python

一口 Python,也可以叫作「咬一口 Python」,寓意著 Python 的冰山一角,包含著作者這幾年學 Python 時積累的一些知識和經驗,文章中包含了很多快速簡潔的例子,方便讓讀者了解到 Python 中存在的一些概念,然後去自行拓展。

Compiler

編譯器 LLVM 淺淺玩,以動手實作來認識 LLVM Compiler Infrastructure

這週的專欄大部分的篇幅都花在講有哪些最佳化的方法,對 LLVM 並沒有太多介紹。所以如果想知道為什麼要有 LLVM IR,還有 LLVM 是在什麼背景下出現的,可以看看這篇文章~

The JIT in JavaScript: Just In Time Compiler

看完本週的專欄後,如果想繼續了解 NodeJS 的 JIT Compiler,可以看看這篇文,他從 JIT 是什麼開始講起,而且也講了一些關於 JS 該怎麼寫才能被 JIT 最佳化的小 tips

Why is processing a sorted array faster than processing an unsorted array?

這週的專欄中有提到 Loop Unrolling 可以降低 CPU 做 Branch Prediction 的錯誤率,但如果你還不知道什麼是 Branch Prediction,這篇 StackOverflow 上的問答我覺得解釋得很清楚!

DevOps

Flux2

在 GitOps 時代,有三個工具一直被提出來比較,分別是 Flux, ArgoCD 跟 Jenkins X,複雜度是 Flux < ArgoCD < Jenkins X,而功能多樣性則是 Flux < ArgoCD < Jenkins X;而在上週 Flux 推出了 Flux2,當然新增了不少新功能,可以整合更多 Kubernets 生態圈的工具之外,也可以同步任意數量的 Git Repostiroy,當然還有其他大家已經要求以及期待很久的功能

Kubecolor

身為 SRE 每天都會使用到 kubectl, 面對一成不變的輸出內容感到厭倦了嗎?快來使用 kubecolor,讓你的 kubectl 輸出跟人生充滿色彩!

Salto raises $27M to let you configure your SaaS platforms with code

Salto 是一間新創公司,他們推出的開源產品讓開發者可以使用程式碼定義 SaaS 平台的組態設定,例如:Salesforce, NetSuite 和 HubSpot…等,在上週他們宣布獲得 2700 萬美金的 A 輪投資,看來在各家 SaaS 平台提供的 API 功能越來越齊全之下,此面向的 Configuration as Code 產品會越來越蓬勃發展!最後附上 GitHub 連結讓有興趣的人可以試試看

StarBugs Weekly

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

Maintainers:

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

Writers:

  • @HannahLin - 從台灣到矽谷,熱愛前端的工程師女孩

Feedback

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