Algorithm
Review
https://erikbern.com/2019/02/21/headcount-targets-feature-factories-and-when-to-hire-those-mythical-10x-people.html?utm_source=wanqu.co&utm_campaign=Wanqu+Daily&utm_medium=website
讨论了一个问题,为什么10x程序要只要3x的工资,不都雇佣10x程序员算了?
Tip
看到一个工具 JArchitect, 可以用来:
分析项目结构,管理技术债,发现坏味道etc。
不知道实际上好不好用。
有个这个图:
抽象度与不稳定性图
这幅图的思想是,程序中使用的代码元素越多,其抽象度就应该越高。换句话说,不应该过多依赖实现,而应该依赖抽象。这里的代码元素是指一个项目(也可以是包或者类型),该项目被程序中被其他项目大量使用。
在代码中,不应该大量使用具体类型。这会在程序中带来“痛苦区(Zones of Pains)”,当改变某个具体实现时,会潜在的影响程序的其他部分。而使用实现比抽象影响的范围更大。
下图中的主线(虚线)表示的是应该如何维持抽象和稳定性的平衡。稳定的组件应该位于左边。如果检查主线,可以看出,该线附近的组件抽象度都很高。如果抽象度非常低,则会位于“痛苦区”。
只有工具项目位于“痛苦区”,但这并不是大问题。实际上,工具库提供的是一些工具类,而不像接口提供功能。