《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 技术琐话 「老G先生」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

为啥大厂热衷于造轮子?首先造轮子的事情比比皆是,随便截几个图看看。

其实不只是大厂,中型公司亦有不少造轮子的,俗话说人上一百形形色色。造轮子的原因大抵总结下面几类。

1、别人的轮子不好用

开源产品不少轮子已经齐备,但是往往存在满足80%-90%的需求的情况,为了10%造一个轮子,也大有人在。

2、为了彰显技术实力,好晋升

自己造的总是最好的。

3、真不是想造,你的需求优先级太低

一些中台团队,把服务用户分了一环二环N环,当你的需求处于三环外,你咋办? 指望不上,只能自己造呗。

4、通过造轮子,提升技术实力。这年头跟人聊业务系统,水深水浅不好聊。聊聊JVM调优,RPC/message/分布式调度这些来上一套,也可以称之“统一沟通语言”,面试者和面试官皆大欢喜。

造轮子有没有好处?

要老G说,还真有。

毕竟业务为王,为了满足业务,要想尽一切办法解决问题。如果没有可用的轮子,自己可以改一个。当年dubbo没有维护了, 当当也折腾了dubbox。你依赖的工具/平台团队不接你的需求,这事还得自己造。

如何调优一家公司的诸多“轮子”?看起来是创新,可能是“闭门造破车”! 老G认为,有几个方向可以考虑。

1、还是在公司层面确定组织和业务的服务关系。该Top-Down解决的问题,别让下面的小同学在那里抢地盘瞎折腾。比如某厂社交事业部和电商事业部,RPC框架/消息/日志/调度任务管理等等是否需要统一? 不需要也行,集团公司考核的是最终事业部的营收情况,你把精力更多放在做基础轮子上,做业务服务的人力就少了。当然这考验领导层的管理能力,花多少钱办事,是否是承包责任制,人//财/物/业算总账。

如果有中台团队来做基础中间件的功能,也明确对该团队的考核。社交事业部和电商事业部的需求,你都该满足。别区分亲疏,KPI 对齐了,让下面的人做事刷脸。

2、在事业部内部,拉通晋升条线的评选。小部门A的事情,有业务结果,业务方埋单;小部门B的事情,有业务结果,业务方埋单;如果A和B 做的领域就是重复的造轮子,需要一个窗口看见,需要被考核,鼓励什么,反对什么。比如在某些公司,如果说不清楚做的平台,和公司内其他几个平台的关系,就不能晋升到某一层级。

3、正向鼓励合作。据说微软员工的收入与impact相关。impact强调合作,在跟老板review的时候也要写自己跟哪些团队合作拿到哪些结果,通过合作团队拿到的业绩越多,绩效考核越高。从而避免内卷。

4、取决于技术带头人的见识。俗话说上有所好,下必趋之。网易汪源老师感叹说,如果DDB这款产品早开源,就没有ShardingSphere什么事情了。别人开源的好东西,你今天看着不爽,自己造的可能2年就没人维护了。但是开源的还有无数人在增加新特性和修复bug,这就是open的力量。技术带头人要判断,什么东西应该站在巨人的肩膀上,什么东西应该保持自己的独创性,而什么东西应该分享出去,具有更强的生命力。

今天的某些轮子很红火,可能是历史长河的一粒沙。

今天你笑别人的代码low,可能后人哀之而不鉴之,亦使后人复哀后人矣。

造轮子,不得不慎,与大家勉。

文章目录