ARTS 1.21

 每周一个 Algorithm,Review 一篇英文文章,总结一个工作中的技术 Tip,以及 Share 一个传递价值观的东西!

Algorithm: 学习算法

题目:3Sum Closest 

解题过程:与3Sum类似,固定一个数,使用Two Pointer 从左右两边向中间靠拢,将目标数与3Sum的差值进行比较并记录下3Sum。优化点:是当差值为0时直接返回结果即可。

解法:https://raw.githubusercontent.com/chy996633/leetcode/master/src/ThreeSumClosest.java

Review: 学习英文

题目:《微服务》 - 产品而非项目

内容概述:很多应用开发使用一种项目的模式:开发团队开发完成后,交由维护团队。而微服务提倡将团队应当为开发的产品负责,亚马逊有个口号:You build it, you run it。

与其将软件看作是一堆功能的集合,不如把它看作是提高用户生产力的辅助工具。

尽管单体应用也可以采用这样的思路,但是细粒度的service更容易可以在开发者和用户之间建立连接,从而维护。

Tips: 知识点

使用 time shell 测试程序运行的实际时间,用户态/内核态的CPU时间。

用Java写调用线程执行一个空的过程一千万次,用Go写goroutine执行空过程一千万次,比较两者的运行时间。

具体参见这篇博文 https://my.oschina.net/alphaqiu/blog/301705

2. 学习《unix网络编程》第六章。了解五种IO模型的区别和使用场景,并用Select模型改写Client 和 Server端,帮助客户端监听多个文件描述符。并使用shutdown 利用TCP的半关闭特性。

Share: 价值观

发现了一个外国人为了面试谷歌花了八个月的时间准备,项目地址 https://github.com/jwasham/coding-interview-university,现在超过7w个star!被这种精神激励。

原文地址:https://www.cnblogs.com/andrew-chen/p/10310171.html