發表文章

Cloudflare 06/21 災後報告

  Cloudflare 06/21 災後報告 https://blog.cloudflare.com/cloudflare-outage-on-june-21-2022/ 文章詳細解釋 06/21/2022 當天到底發生什麼事情導致用戶受到影響

How to Review the Code Like a Pro

  How to Review the Code Like a Pro 個好品質的 code review 能夠幫助團隊帶來下列好處 1. 避免合併一些充滿 bug, 難讀, 無效率的程式碼到專案中 2. 開發者可以互相分享彼此的知識 3. 獲得關於實作上的各種意見 4. 確保團隊內的 coding style 一致 事先準備一份 Checklist 一個好的 review 流程就是要有一份檢查清單,這份清單上面描述的是每次程式碼合併都必須要符合的規則,同時也是團隊很重視的規則 這份清單沒有絕對標準,主要是根據團隊去思考哪些東西是最重要的,舉例來說 1. Branch, Commit 內容與名稱是否符合規範 2. Code 是否有足夠的可讀性 3. Codesytle 以及命名規範是否符合團隊文化 4. 資料夾/檔案結構是否符合團隊文化 5. 是否有包含相關測試 6. 文件是否有一起準備 這份清單的重點是只要列入那些被視為是非常必須且重要的項目就好,不然整個清單落落長其實意義也不高 請參考連結 https://medium.com/@yar.dobroskok/how-to-review-the-code-like-a-pro-6b656101eb89

Books for Great Software Architects — Fundamentals Path

  Books for Great Software Architects — Fundamentals Path Design Path 中將會學習到 Domain-Driver Design(DDD) Object-Oriented Design Patterns Basic agile Development conecpts Modeling using UML Respoinsiblity-driven design(RDD) 參考 https://haitham-raik.medium.com/books-for-great-software-architect-34c81fc70e12

有正確使用 SSH 嗎?

  有正確使用 SSH 嗎? https://smallstep.com/blog/use-ssh-certificates/

CNCF報告

  1. 全球有愈來愈多的公司採用容器化或是 Kubernetes來管理應用程式,其中以大型企業有更為明顯的使用趨勢 2. 如同 Linux 一樣, Kubernetes 正在轉變為一個如同基本概念般的存在,愈來愈多的公司使用託管平台 3. CNCF 同時也觀察到愈來愈多組織逐漸導入各式各樣的 Cloud Native 專案來處理各種問題,譬如監控維運等 CNCF 自己的報告則是有 79% 的使用者都是使用經過認證的 Kubernetes 管理平台,其中 EKS 39%, AKS 23% 以及 Azure Engine (17%) atadog 的 2021 Serverless 顯示 Lambda 的功能使用次數相較於過去兩年來提升了 3.5 被,而這些使用量中以 Amazon Lambda 為大宗,此外 Azure Functions 以及 Google Cloud Functions 也都有明顯的成長。 參考連結: https://www.cncf.io/reports/cncf-annual-survey-2021/ 參考連結: 矽谷牛的耕田筆記

Database — 八個 Index( 索引 ) 無法生效的 SQL 寫法

  Database — 八個 Index( 索引 ) 無法生效的 SQL 寫法 相信許多讀者一定知道 Index,也就是索引,對於資料庫的重要性,可以說一個資料庫執行效能的第一道關卡,就是將索引設定恰當。 不過相信很多朋友知道要使用索引後,執行的 SQL 語句如果包含被設定索引的欄位,則速度會變快。但可能不太清楚在什麼情況下,速度不會變快 因此,今天想跟各位朋友介紹,八個常見,但會導致 index 無法作用的 SQL 寫法,希望能幫助各位更恰當的編寫 SQL 語句: 1. 使用 NOT 、!=、not in、not like 等負向判斷詞 SELECT * FROM users WHERE name != 'John'; 2. 使用函數語句包裝被索引的欄位 SELECT * FROM users WHERE DATE(created_at) = '2022-02-28'; 這邊的範例使用 DATE() 函數,去轉換 created_at 這個欄位,因而導致無法透過原始資料,去觸發索引機制。 這邊要幫大家建構一個概念,索引會失效很重要的核心問題就是,『不要對欄位動手腳』,後續會用其他例子幫大家更釐清會有什麼情境。 3. 資料類型錯誤 SELECT * FROM users WHERE age = 30; 這邊假設 age 設定 varchar ,也就是字串型別,則 SQL 在判斷時,會『偷偷的』去做類別轉換,也就是對欄位動手腳,就會導致索引失效 4. 使用 『 %XXX% 』或是 『 %XXX 』 SELECT * FROM users WHERE name like '%john%'; 失效的原因,是因為索引運算機制中,有部分會從字元最左開始匹配,如果用範例的搜尋模式,『 最左 』的字元會無法匹配,導致失效。 5. 使用 Null SELECT * FROM users WHERE name IS NULL; Null 值對於 Index 資料管理來說是比較迥異的存在,所以通常預設是不支援的,但在部份資料庫軟體中,可以另外設定讓 Null 被納入索引中 6. 錯誤的使用 or SELECT * FROM users WHERE indexed_column > 5 or unindexed_column <