技术调研对于技术同学很重要,了解技术调研的方法有利于我们做好技术调研。
step-1:了解背景
了解在什么背景下技术出现,需要解决什么痛点。
没有银弹,调研某个技术的时候不要心里把它提到一个很高的高度上,任何技术都有其使用的场景。没有one-for-all最好的技术,只有更加符合应用场景的技术。
step-2:技术调研
调研当前方向有什么常用的、经典的方法。
这一步尽可能要做到广,不求精,方便后面进行深入分析。
step-3:建立指标
在开始深入理解各个方法之前,先从用户体验/系统性能的角度建立一种全面的评价指标,方便细化分析每一个方法。可以参考别人怎么评价的,也可以自己想别人没想到的一些指标,只要它有价值。
比如,一个web应用,从系统的角度上讲,你可能期望系统的吞吐量足够高。从用户的角度上讲,他可能期望每一个请求的时延尽可能低。
弄清楚这个东西,方便你理解这个方法的应用场景。
step-4:评价典型
深入理解那些经典的方法,弄明白他们是怎么做的,利用自己建立的评价指标,对他们进行分析。
主要目的是理解不同方法的优势和劣势,了解他们在什么样的workload下性能最高、效果最好。学习的时候,多体会人家是如何分析问题、建模、解决问题的。
step-5:分析问题
分析你当下面对的问题,考虑你能利用调研的结果做什(guan)么(shui)。
- (照搬) 当前问题中,workload是什么?是否与你调研过的方法所匹配?我们能不能把前人的成果引入过来?
- (挂羊皮卖狗肉) 假如你调研的是一个很古老的问题,这也没关系。你可以想想,在另一个新的领域,曾经那一套东西,能不能加以改进,以fit当前的背景呢?
- (爸爸+妈妈=孩子) 如果方法A和方法B是互补的,A的优点是B的缺点,反之亦然。那么,你可以试图寻找一种最优的trade-off,比如建立一套完善的框架,对任何workload,找到“pA+qB”的最佳配比(大概说那个意思,轻喷)。
- (约束与松弛、做强与做弱) 可以加入更强的约束,在更小的一个场景下解决问题。也可以把某个约束放松,考虑一个更加简单、通用的问题(很难用言语描述,某种“道”)