第 65 期 - 每天都 git pull,conflict 遠離我
本週專欄
送 PR 前,使用 Git rebase 來整理你的 commit 吧!
大家好我是 Larry,因為我身邊有滿多朋友都不太熟悉 git rebase,也不知道他可以用來做什麼。所以這週的專欄想跟大家分享怎麼用 git rebase 來整理 commit,希望大家在看完後都能在 push 前把 commit 都整理好,才不會讓同事 review 得很痛苦XD
Git
The anatomy of a Git commit
這週的專欄中有提到,commit ID 是由 commit message 還有其他很多屬性經過 hash 而來的,那一個 Git commit 內部到底究竟長什麼樣子?每個 Git commit 的 ID 又是根據哪些屬性產生出來?雖然不知道好像也沒關係,但當作冷知識增廣見聞一下也是不錯~
另一種合併方式(使用 rebase)
想要把兩個 branch 合併,除了可以使用 merge 之外,其實 rebase 也可以用來合併 branch,而且如果用得好的話,歷史紀錄也會比 merge 漂亮很多哦~
合併發生衝突了,怎麼辦?
因為 rebase 的結果會跟 branch 當下的狀態以及 commit 的順序有關,所以當然也有可能發生 conflict,那 rebase 到一半因為 conflict 而卡住究竟要怎麼辦呢?快來看看龍哥的解法吧!
JavaScript
lodash get vs result
lodash 是個非常好用的 JS Library 裡面提供了非常多的 method 讓開發者可以讓程式碼寫起來更好閱讀而且也有一定的效能在,裡面有兩個非常像的 method:get
以及 result
到底這兩個 method 要用哪呢?其實這兩個 method 有效能上的差距,這篇文章講述了兩個 method 的效能差別(懶人包以後用 get
取得物件的值就對了🤣)
firebase remote config fetcher
不知道大家有沒有用過 firebase,firebase 有個非常好用的功能叫 remote config,透過這個 remote config 可以讓一些 constant 不用在程式碼中寫死會非常彈性,裡面有一個 method 是 fetchAndActivate
可以讓 remote config 在 fetch 的時候順便 activate,但這個的使用時機是什麼時候呢?官方給出了一些使用時機不妨可以看看~
JS get last element of an array
最近在找一些 JS 比較 tricky 的技巧來取得 JS 陣列中的最後一個元素,比較直觀的作法就是取得 陣列長度 -1
的元素就是最後一個元素了,但其實還有另一個作法就是 slice(-1)
,透過 slice(-1)
就並且做陣列解構後可以取得陣列的最後一個元素,但兩者到底有什麼區別呢?這篇文章完整的告訴這兩個方法的效能差異。
前端開發
How To Implement a Queue in JavaScript – and Beat Arrays at Their Own Game
相信各位前端的大家在用 JavaScript 解 Leetcode 演算法的時候,常常會遇到沒有現成的資料結構可以使用,像是 Queue 或是 Stack 等等,但其實他們的原理非常簡單!非常容易就可以依照概念實作出來,但實作出來後又會發現好像用 JavaScript 原生的 Array 搭配 Array Method 也能達到相同的效果。那這兩這之間到底有什麼不同,到底需不需要自己實作一個?一起看看這篇文章!(延伸閱讀:用 JavaScript 學習資料結構和演算法:堆疊(Stack)篇)
ES2021 / ES12 New Features
在你的印象中,現在的 JavaScript 是 ES 多少呢?已經進入到 ES12 啦!JavaScript 作為最常被使用的程式語言語言(根據 2020 StackOverflow 調查),更新速度真的越來越快,自從 2016 年的 ES6 就開始一年一更(可參考 ECMAScript 維基百科),依照慣例相信今年年中就能開始使用新的語法了,快點進去確認有哪些功能是你期待許久的 🙌!
10 Colour Resources You Will Love
在做 Side Project 的時候總覺得自己的網頁少了一點點…美感?特別是在最一開始無法決定網頁的主題色,或是很快的找到主題色卻不曉得可以和哪些色彩搭配產生更棒或更舒服的的視覺效果嗎?別緊張!讓專業的來!個人先私心推薦一個 Color Hunt,常常讓我在 RGB 的世界中迷路時給我正確的方向(雖然也常常讓我產生選擇性障礙,每個都太好看了 😂)。如果你不喜歡,沒關係!上方的推薦文章還介紹了另外九個相當棒的色彩搭配網頁!其中一定會有你的 Mr.Right!
DevOps
This Week in Programming: Elasticsearch Turns AWS into an Open Source Champion
這週 Elastic 和 AWS 隔空交戰的炮火越演越烈,首先是 Elastic 宣布要更改其授權政策,再引起社群的廣泛討論之後,又發了一篇文章來澄清為什麼要這樣做,並且再發一篇文章挑明跟大家講就是為了防堵 AWS;而 AWS 也不能再裝死,宣布要自己來建立和維護以 Apache 2.0 授權的開源Elasticsearch 與 Kibana,同時也抨擊 Elastic 接下來採用 SSPL 根本就不算是開源,而這場火從 2019 便開始燒了起來,並且越演越烈,以後兩邊各自維護自己的分支,不知道干戈會不會暫時平息,而大家會使用哪一邊維護的版本呢?!
K3s Private Cluster
發現一個有趣的小專案,讓使用者可以使用 Terraform 將 K3s Cluster 架設於 AWS 中,提供給覺得 EKS 太貴太複雜,而且只想要運行一兩個小應用服務的人,也很適合拿來當作開發和測試環境
Keeping Git Commit Messages Consistent with a Custom Template
讓 Git Commit 訊息保持一致化,將會讓自己與與合作的團隊間擁有長期良好的合作關係;如果自己希望 Commit 的訊息可以擁有像樣一點的格式,或是完全看不懂自己過去提交的 Commit 訊息在寫什麼的話,這篇文章介紹如何透過 Git 的全域組態來設定 Commit 訊息的範本,讓你可以輕鬆地決定如何格式化 Commit 訊息,讓有所有的 Commit 井然有序
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 倍工程師!
- @LukaTW - 一名全身都是死角的工程師。
- @smalltown - 熱愛鑽研各種可以提升雲端服務品質及增進團隊開發效率的開源技術。
Feedback
本週呈現主題方式做了一些改變,希望讓讀者能夠更快速精準的找到自己要的資訊。也加入社群活動這個區塊,每週更新社群活動的資訊。如果有任何建議,歡迎私訊 星巴哥技術週刊 FB 粉絲專頁 與我們聯繫。