怎么知道互联网公司都在使用什么技术栈,和一个技术流行与否?

849 阅读5分钟

很多高级程序员、架构师天天做的事情就是调研XXX技术能不能用,要不要自行研发一套。

自己研发的话,又要调研架构如何,方案如何,优劣如何,还得过其他高级程序员,架构师的评审。

最让人心碎的事情,莫过于自己调研了很久后,决定自研。抛出一堆解决方案后。

其他人看一眼:这不就是XXX问题嘛,你用开源的XXX不就好了吗?

举个例子:你想搞一个带缓存+限流+负载均衡的东西,符合了XXX目前的使用场景。

你用尽自己仅有的技术经验,搞了一套架构方案。完成时间是100个人天,效益是妈妈再也不用担心我的网站挂掉了(自研项目的蜜汁自信)。

别人一看:你这玩意儿早就有开源方案了,你去看看KONG吧,项目2w Star,硅谷一堆公司在用。

你:???(黑人脸)

所以如何避免这种对软件工业界开源项目无知的尴尬?

相比于订阅一堆乱七八糟的微信公众号,或是朋友圈天天转发的高级工程师/架构师割韭菜的演讲。

也许你可以考虑下 stackshare.io

譬如说你想知道Google在用什么技术栈。

在 stackshare 上,直接搜索就能找到:

stackshare.io/google/goog…

Google的应用语言有:Python/Go/Java/C++/Dart

前端框架使用了AngularJS/Material Design Lite

运维端使用了Kubernetes。

非常Cool。

Facebook用了什么技术栈?

一搜便知: stackshare.io/facebook/fa…

后端用了PHP,前端是React,前后端交互用了GraphQL,数据库缓存用的是Memcached,数据流方案用了Flux,当然也有用Tornado开发的Web服务,虚拟机服务用的是HHVM;

持续集成用的是Jenkins,性能检测用的是Datadog,测试框架使用的是Jest,项目管理使用的是Confluence。

除了以公司维度以外,Stackshare还可以以工具为维度,看一个技术的被使用范围如何。

就像上述所说的KONG,搜索一下就可以知道:

stackshare.io/kong

KONG在Stackshare上大概有38家公司在用。

Star是19.8k,Fork是2.41k,最后一次Commit是半小时前。

和Nginx,docker,PostgreSQL,k8s集成。

为什么工程师喜欢KONG,是因为KONG易维护/易安装/可扩展/性能好

还有和KONG类似的服务和工具推荐:

除了可以从公司/工具维度了解一个技术,Stackshare还可以进行工具间的对比。

譬如说你是一个前端组的Leader,因为项目经常出现逻辑问题引发线上Bug,被领导拖进小黑屋谈话多次后,痛定思痛,决定引入一套测试框架。

网上大家都在吹的测试框架,你都大概了解:Jest/Mocha/Jasmine。

作为一个有真知灼见的Leader,当然不会仅仅止步于看Forks/Stars/Downloads做决定。

Stackshare也许能从另外一个方面去帮助你进行技术对比。

在这里,你可以最多选择三个技术进行对比。

stackshare.io/stackups

在这里,我们需要对Jest/Mocha/Jasmine进行对比:

stackshare.io/stackups/ja…

对比表见下:

可以看到,在Stackshare里,Mocha的Fans最多。这个维度看,Mocha胜。

在Stackoverflow的的数据中,Mocha相关话题有6.28k的问题,Jest只有1k,Jasmine有10.3k。从出了问题去搜Stackoverflow看,Jasmine胜。

从Github数据来看,三者均有1.4w到2.3w的Star,最后一次Commit均在两天以内,都是很受欢迎并且在持续维护的项目。

为什么开发者使用Mocha?这东西开源 128票/ 简单 94票 / 支持Promise 78票;

为什么开发者使用Jest?这东西开源 23票/ 自动Mock,方便测试 22票/ 可用于React Native APP测试 18票;

为什么开发者使用Jasmine?可用于测试驱动开发 58票/ 开源 46票/从RSpec中演化而来 15票

从开发者的观点来看,如果不是有特殊需求,似乎Mocha是一个不错的方案。

再往下走,可以看到有哪些公司在使用这些工具:

数据表明:Mocha有五百多家公司在使用,Jest有279家公司在使用,Jasmine有193家公司在使用。

至于选择哪个框架,相信你现在已经胸有成竹。

也不会怕同行忽然过来Diss你:

你咋还用Mocha做测试框架,现在大家都流行用Jest了,Mocha是过去的技术,Jest才是未来,你个脱离技术潮流的老古董!

过去的你也许这么回复:

我就随便Google了一下测试框架,看了下文档还行,排名也可以,教程比较简易,试着集成到项目一下,成功了,所以我就用了这玩意儿,看来我得多看社区文章了。

现在的你可以这么回怼:

Mocha在Stackoverflow上有6k问题,相比于Jest的1k,如果我在使用的时候出现问题,使用Mocha我能更快找到相关资料。同时Mocha有1.7w的Star和2.32k的Fork,基本上每过几个小时就有一次分枝提交,是一个开发者们持续维护的测试框架。同时在Stackshare上有500家公司使用Mocha,是Jest的一倍,你这个角度是站不住脚的。

有理有据,最为致命。