ARTS挑战打卡第十七周
Algorithm-一周至少一道算法题
Review-阅读并点评至少一篇英文技术文章
Tip-学习至少一个技术技巧,总结和归纳在日常工作中所遇到的知识点
Share-分享一篇有观点和思考的技术文章
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
《抽象,简化和领域驱动设计》
原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。
如果本文对你有帮助,麻烦顺手点个赞吧,谢谢
推荐阅读: