ARTS 打卡第三周(200525-200531)
Algorithm
leetcode-872:https://leetcode.com/problems/leaf-similar-trees/
leetcode-1022:https://leetcode.com/problems/sum-of-root-to-leaf-binary-numbers/
解题思路都很类似,递归,遍历根节点、左子树,右子树,关键是找到终止递归的点。
Review
单元测试的目的不是为了找bug,只是为了检查代码单元逻辑的正确性
如果要为了找bug,最好的办法就是运行整个应用,调用对应的接口
Mock一切外部服务
每次只测试一个代码单元
不要对配置进行单元测试
https://loneidealist.wordpress.com/2017/07/03/distributed-coordination/
总结学到的几个概念:
分布式协作
分布式协作出现的原因:在分布式系统中,一个集群中的所有节点需要互相通信,如果让节点自己去做,那么就会十分复杂,于是就需要一个“中间媒介者”去做这件事情。更进一步的,把这个“中间媒介者”从集群中拆分出来,独立为一个系统。
高可用
系统的高可用性意味着一群服务器运行时与单台机器运行时没区别。分布式系统就是为了实现高可用而出现的解决方案,通过负载均衡,将单个请求分布到多台机器,单台机器的失败就不会导致整个服务挂了。
解决了服务的可用性之后,遇到新的问题就是发现分布式系统中还会存储很多数据,这些不同服务器之间的共享的锁、数据、配置在运行中怎么保证就是正确的?这就需要分布式协作及共识。
共识
共识是分布式容错系统中最基本的问题,共识意味着多个服务器同意一个值。简单而言,共识就是分布式系统中如何认同一个值。
Tip
二叉树算法题的遍历框架
JUnit最佳实践
单元测试的目的不是为了找bug,只是为了检查代码单元逻辑的正确性
如果要为了找bug,最好的办法就是运行整个应用,调用对应的接口
Mock一切外部服务
Share
【Blog】Mockito-提高单元测试效率利器
原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。
如果本文对你有帮助,请点个赞吧,谢谢
版权声明: 本文为 InfoQ 作者【老胡爱分享】的原创文章。
原文链接:【http://xie.infoq.cn/article/84674e051af87cf5271be59c0】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论