ARTS挑战打卡第十七周

Algorithm-一周至少一道算法题

Review-阅读并点评至少一篇英文技术文章

Tip-学习至少一个技术技巧,总结和归纳在日常工作中所遇到的知识点

Share-分享一篇有观点和思考的技术文章

ARTS挑战打卡第十七周

01-Algorthm

   ———————  

https://leetcode.com/problems/sum-of-left-leaves/

计算所有左叶子节点的和,找到左叶子结点,做加法,左叶子节点的判断是 :root.left != null && root.left.left == null && root.left.right == null

02-Review

——————

https://www.nginx.com/blog/building-microservices-using-an-api-gateway/

文章介绍了使用API网关访问接口的好处以及介绍了实现一个API网关需要注意的地方,给对网关感兴趣的开发者一个很好的思路。

当一个接口需要访问多个服务才能完全展示时,如果让客户端去请求多个服务,会带来的问题有:太多的网络开销、数据协议不一致、重构比较麻烦。

可以考虑使用API网关来封装这一步的操作,API网关要做的就是分发请求,聚合数据,网络协议转换等等。

实现网关是需要考虑性能与可扩展性、使用响应式编程优化性能、服务调用方式(HTTP/Thrift)、服务发现、错误处理。

做的比较好的有Netflix。

自己在开发过程中也有考虑过实现一个API网关,主要做一些通用的操作,比如用户token校验、风控校验等等,如果由API网关层统一做这些校验,就不需要每一份业务代码都去写这些重复的代码。

03-Tip

——————

代码的抽象并没有通用的法则,没有一种方法可以教会程序员怎么抽象,但是可以通过反复优化代码来提高抽象的技能,抽象的过程应该是:

1、快速理解业务写出核心逻辑的代码

2、review代码,找到有共同点的地方,抽象出精炼的业务模型

3、修改代码,提高代码抽象级别

4、反复进行第二步与第三步

以前一直在找如何提高抽象的方法,直到最近才领会到,要提高抽象能力,唯有多写代码,多思考,反复优化代码,反复思考。

04-Share

—————

https://zhuanlan.zhihu.com/p/77026267

《抽象,简化和领域驱动设计》

原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。

如果本文对你有帮助,麻烦顺手点个赞吧,谢谢

ARTS挑战打卡第十七周

推荐阅读:

ARTS挑战打卡的100天,我学到了这些