ARTS挑戰打卡第三週

ARTS挑戰

Algorithm-一週至少一道算法題

Review-閱讀並點評至少一篇英文技術文章

Tip-學習至少一個技術技巧,總結和歸納在日常工作中所遇到的知識點

Share-分享一篇有觀點和思考的技術文章

01-Algorthm

leetcode-872:https://leetcode.com/problems/leaf-similar-trees/

leetcode-1022:https://leetcode.com/problems/sum-of-root-to-leaf-binary-numbers/

解題思路都很類似,遞歸,遍歷根節點、左子樹,右子樹,關鍵是找到終止遞歸的點。

02-Review

——————

https://howtodoinjava.com/best-practices/unit-testing-best-practices-junit-reference-guide/

JUnit最佳實踐:

  • 單元測試的目的不是爲了找bug,只是爲了檢查代碼單元邏輯的正確性

  • 如果要爲了找bug,最好的辦法就是運行整個應用,調用對應的接口

  • Mock一切外部服務

  • 每次只測試一個代碼單元

  • 不要對配置進行單元測試

https://loneidealist.wordpress.com/2017/07/03/distributed-coordination/

總結學到的分佈式系統中的概念:

分佈式協作

分佈式協作出現的原因:在分佈式系統中,一個集羣中的所有節點需要互相通信,如果讓節點自己去做,那麼就會十分複雜,於是就需要一個“中間媒介者”去做這件事情。更進一步的,把這個“中間媒介者”從集羣中拆分出來,獨立爲一個系統。

高可用

系統的高可用性意味着一羣服務器運行時與單臺機器運行時沒區別。分佈式系統就是爲了實現高可用而出現的解決方案,通過負載均衡,將單個請求分佈到多臺機器,單臺機器的失敗就不會導致整個服務掛了。

解決了服務的可用性之後,遇到新的問題就是發現分佈式系統中還會存儲很多數據,這些不同服務器之間的共享的鎖、數據、配置在運行中怎麼保證就是正確的?這就需要分佈式協作及共識。

共識

共識是分佈式容錯系統中最基本的問題,共識意味着多個服務器同意一個值。簡單而言,共識就是分佈式系統中如何認同一個值。

03-Tip

——————

二叉樹算法題的遍歷框架

/* 基本的二叉樹節點 */class TreeNode {    int val;
    TreeNode left, right;
}void traverse(TreeNode root) {
    traverse(root.left)
    traverse(root.right)
}

JUnit最佳實踐

  • 單元測試的目的不是爲了找bug,只是爲了檢查代碼單元邏輯的正確性

  • 如果要爲了找bug,最好的辦法就是運行整個應用,調用對應的接口

  • Mock一切外部服務

04-Share

—————

【Blog】Mockito-提高單元測試效率利器

參考引用

JUnit Best Pratices

https://howtodoinjava.com/best-practices/unit-testing-best-practices-junit-reference-guide/

distributed-coordination

https://loneidealist.wordpress.com/2017/07/03/distributed-coordination/

leetcode-1022

https://leetcode.com/problems/sum-of-root-to-leaf-binary-numbers/

leetcode-872

https://leetcode.com/problems/leaf-similar-trees/

更多精彩內容,請關注個人公衆號。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章