刚刚正式掌管 Twitter 不久的马斯克对公司进行了大刀阔斧的裁员,从他近日发表的推文来看,很显然他对此决策颇为满意,直言 “Twitter 越来越充满活力”。
但与此同时,马斯克旁敲侧击地对 Twitter 的开发团队 “批判” 了一番。他表示自己为 Twitter 在许多国家的极慢运行速度感到抱歉。之所以如此慢是因为 App 需要执行 1000 多个 “糟糕” 的批处理 RPC,而这只是为了渲染主页的时间线。
Twitter 技术主管转发了马斯克的这则推文,并回击道:“你不仅裁掉了几乎所有负责 Twitter 基础设施的员工,现在还粗鲁无礼地评价我们的批处理工作。” 最后还质问马斯克是否有去了解过 GraphQL 的工作原理。
事实上,这位女性主管早已表达过对马斯克的不满,且看她的置顶推文。她的推特名字更是在内涵马斯克掌管下的 Twitter 是一个 "hell site"。
这里简单的给大家普及一下GraphQL,GraphQL 是一个用于 API 的查询语言,也是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。
GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。
大家可以访问GraphQL的官网https://graphql.org/或者github的地址https://github.com/graph,都可以找到第一手学习GraphQL的资料。
正如官网所说,GraphQL是一款专门为前端查询而生的语言,它本身就是用来解放前后端接口联调工作的提效工具,那当然也包括推特的APP,也可以利用它来提高开发效率,也就是说Twitter的技术主管已经在自己的项目中落地了GraphQL,但是只是多发送了几次RPC请求,导致性能太差和开发效率变低,就被老板马斯克骂了,当然这个无可厚非,因为老板看中的是结果。
在国内GraphQL还没有完全的用起来,当然Apache Skywalking为了提高链路数据输出的效率,直接采用GraphQL,并输出了GraphQL标准的API,这样可以大大的减少前端UI和平台的联调成本,主要是因为后端的数据接口的逻辑会经常变动。
GraphQL之所以很难在中国落地,主要还是因为它不是Spring生态的组件,现在但凡是一个采用Java作为开发语言的公司,都在使用Spring框架,并且也会使用它提供的Web编程技术,比如Spring Web和Spring MVC,并且自己的服务已经和Spring强耦合了,这样就可以直接使用Spring生态的各种组件,当然这个也是提高效率的一种方式。
但是问题在于Spring并不兼容GraphQL API,也就是说二者是隔离的,你要么使用裸奔的GraphQL API,而不要使用Spring提供的能力,这样你就要在GraphQL API的基础之上开发出以前Spring提供的各种能力,比如拦截器、AOP、事务等功能,很显然这个功能是服务必备的。
就是因为这个门槛,所以GraphQL在互联网企业很难落地,尤其是大厂,你就是为了节约前端和后端的联调时间和减少前端的开发工作量,需要后端做出这么多的技术改造,很显然是不划算的,老板肯定不允许你这么干。
一个老板懂不懂技术没关系,老板看重的是结果和收益,也就是叫你这周必须要完成产品的上线,你没有上线,那就是你的问题。至于你采用什么样的技术去实现,他根本不会关心的。
当然Twitter的这个技术主管确牛逼,他做了咱们底层的一线技术人员敢怒而不敢说的事情。
技术人员本身就是要关注技术层面的事情,这个是你的本职工作,假如你的老板都过来要参与你的技术方案的评测了,那么只能说明“要么你不称职,要么就是老板管的太多”。
当然马斯克的这次事件很显然是后者,不过人家马斯克是物理博士,从他的角度去看,肯定会觉得写代码不是很简单的事情吗?毕竟人家收购Twitter之前,自己从0-1创建了特斯拉、SpaceX、人工智能、超级高铁等公司。
并且美国最早的支付公司PayPal就是马斯克觉得不好玩了,直接将它卖给了亚马逊,要不然哪有现在的淘宝和支付宝,也就是说咱们的淘宝和支付宝其实是抄袭人家马斯克的商业模式,这个是有资料可以查询的,而不是我在这里瞎歪歪的。
假如我们碰到了这么强势的老板,并且老板确实是像神一样的存在,那么我们该怎么办了。
作为打工人的我们当然只能是顺从老板的意思了,他想怎么玩我们只能陪着他玩,谁叫人家是神呢?是不是这个道理。