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/
更多精彩內容,請關注個人公衆號。