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/

更多精彩内容,请关注个人公众号。

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