ARTS 1.21 - 1.25
每周一个 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!被这种精神激励。