你怎么看待满嘴高并发,编码能力却稀松平常的程序员?
有些程序员经常讨论和分享高并发架构的相关知识,神似大佬,可实际编码能力却稀松平常。别说写个SQL、用MyBatis都费劲,连模块增删改查写起来也很吃力,往往需要技术上的指导,不知道大家身边有没有类似的程序员?
秉持着和平交流的学习态度,小编精选了几位高赞知乎网友的精彩回答,分享给大家学习交流(勿上升、勿引战):
1号知乎网友:成隽
举些例子:
1、见过一个强上AKKA替换RPC的SA,鼓吹高并发,先进模型。用一堆判断opcode的 switch case 换掉了所有RPC调用做业务,导致各种混乱的回调依赖,编译期bug全整成了执行期bug。然后项目砸了,客户还不知道根本原因在哪,我方甩锅给业务复杂+开源垃圾。这家伙还挂着高级 SA 混迹于多个项目。后来和 funding 过他项目的顾问聊,对方直接骂人了。
2、原东家有个海外PM,中国人,给 AT&T 搞大数据业务分析系统,找人落地。部门经理安排我谈,10分钟谈崩了,傲得很,张口闭口你懂不懂大数据,懂不懂MR,我和经理说这家伙处不来。我带的几个下属后来进了这个项目。我离职时,我问他们这项目有没参考价值,给我截个UI看看,他们说瞎搞,老外也都不用了,一堆问题,搞构建的也闪人了,没人敢动构建,UI服务器都启不了,现在大家就等着熬到项目结束,那家伙也早就靠这个项目回国跳大厂了,level还很高。
第一例子上AKKA的原因是这个人自己想上个AKKA项目以后好吹嘘,自己其实没用过。他私下对客户洗脑 AKKA和scala多好多适合这个项目,背地对程序员这边鼓吹学值钱的新知识呀你才有价值呀才好跳槽呀,然后在没做原型、没评估数据的情况,某天开会突然向我和经理官宣“我们大伙研究过了都说好应该上”,经理一问,都说“嗯是的,上AKKA吧”,兵不血刃把架构换了,最后失败还拉着大家一起背锅,集体决策呀。
第二个例子更赞,东西做的稀烂,但他要求所有人必须认真写文档、用户手册和提交记录。别人告诉我,我还纳闷用户文档一般最后阶段补,能应付就应付,哪个项目会在过程中这么上心。然后给我看代码,就震惊了,客户项目直接开源了,他放着公司 github 企业账户不用,把项目挂自己的 github 私人账户的 public repo 上,要求所有人往他个人项目上提交。
这些人呢,祸害完项目,积累了足够多的能体现其厉害的资本,就会去祸害下家公司。
厉害的是,除了少数懂技术的个人,他们还能让大部分领导、客户不觉得他们烂,毕竟这么 nice、又能讲,还懂那么多词汇、业务、产品的人怎么可能烂呢,烂也是因为团队不给力、业务太复杂、技术上限就在那里呀。
2号知乎网友:CodeCrafter
前几年带一个项目,做用户画像和实时推荐。团队里有个同事,天天在群里分享各种大数据架构的文章,什么Lambda架构、Kappa架构,什么Flink比Spark Streaming牛逼在哪,讲得头头是道。当时系统有个性能瓶颈,用户标签计算特别慢,导致推荐结果更新延迟很高。
开会讨论方案,这位哥们张口就是引入最新的流计算平台,重构整个数据管道,做成真正的流批一体,QPS能提升两个数量级。PPT做的那叫一个漂亮,把一众产品和项目经理唬得一愣一愣的。
我当时没说话,会后把他拉到一边,打开了监控系统和代码。我问他:你看,我们现在瓶颈在这几个Spark任务上,你去看过它的执行计划(Execution Plan)吗?知道数据倾斜发生在哪几个stage吗?我们的HDFS小文件问题,有做过合并吗?那个核心的UDF(用户自定义函数),里面的逻辑是不是可以优化,减少序列化的开销?
他当时就没声了。因为他根本没看过这些细节。他连Spark的shuffle机制都说不清楚,却在跟我聊重构整个技术栈。
后来,我们团队另一个不怎么说话的老哥,花了三天时间,把那几个SQL和UDF给优化了,调整了几个Spark的配置参数,整个任务的执行时间缩短了70%。没上任何新技术,没改任何架构,就是扎扎实实地把代码和配置吃透了。
所以,怎么看待这种人?
我的看法是,保持警惕,但不必鄙视。
3号知乎网友:匿名用户
遇到同事,天天分享分布式锁、分布式事务、分布式系统、es。
但是看上去只是ppt很好看,但是没有什么内容,只是很模糊把一些东西弄到ppt上,看上去很强。
结果一个核心应用,自己写了内存泄漏,导致消息队列+消费进程oom挂了。不会排查,一个线程每次读2k数据。GC没弄懂,硬是说什么6个消费者会把内存泄漏。刚上线半天,我发现监控消息队列堆积了,找他自己解决。结果弄了好久自己打的日志居然没找出报错日志。硬是要我一个没看过他代码的人根据经验瞎搜索错误一个个试关键词,最后找出报错日志是ivm oom。然后他就开始瞎掰理由什么6个消费者瞬间消费导致内存超出限制。一个线程读2k行,6个消费进程也就一万多行数据,能把你4g的的jvm堆用完?几百万的表都不一定有4g。自己不先复现就说是行太多就导致oom。
clickhouse当MySQL表瞎join,clickhouse就是你们这样搞才天天不稳定。
分布式事务不是调用一下seataapi就是分布式事务。那样找一个会分布式事务的人不是很简单?连单机事务都没弄懂,弄几个官网的图照着念就会分布式事务。
es真的连深分页都不知道怎么处理,就开始讲什么博客背过来的半对不对的倒排索引。但是你只会分享几个简单的es的crud。那种不是一天就能弄懂的吗?还需要你分享。
分布式系统,不是在yaml上面填上nacos地址就叫会微服务。你paxos总要弄懂吧?配置注入时机总要弄懂吧?
就离谱,没遇到事故的时候你说什么高大上的名词我都奉若神明。但是内存泄漏、不会排查问题、推卸责任、甩锅上下游,这就是你平时吹的分布式和高并发?
4号知乎网友:匿名用户
我司有一个前端就是这样子,他能够把很简单的事情说得很复杂,不懂的事,他也敢强行说。导致不懂的老板觉得他技术很强,跟他对接的别人很菜。
比如说有一次后端跟他对接,他整了一句get会泄露数据,get请求直接打在url里能访问,psot不会,要改成post。
原话差不多是:你这个请求,有什么问题呢?我跟你讲一下,get会泄露数据。为什么呢,因为get请求直接打在url里能访问,psot不会,要改成post。你不信你现在url直接打进去看看post能不能行,不行的是吧,所以post更安全你懂吗。
我寻思你这玩意说出来都让人笑话,还在那硬讲,给后端都造愣了。你说东西起码要有理有据吧。
这种事情很多了,还有一次给后端讲如何写那个数据结构,他希望后端给一个数字。
其实这个一句话就行了,他是说的是啥呢:“这个数字呢,你要给我返回数字,因为什么呢,因为这个数字呢,你给我,我是直接用不了,我需要把数字转成字符串,才能用,你懂吗。如果说,你给我字符串的话,我这边儿又要多一次操作。但是是数字的话,就不一样。再一个,用字符串来转会有一些很多的问题。比如说你传null我怎么办呢?我是不是要再判断一下null,如果是undefined呢。”(省略说教五分钟)
就好像是他有一个霸体技能,一旦发动就不能停下了,必须把这东西给你说完,还不能打断。
我看那个后端都要气死了,一句话说完的事情,扯了半天,还教育他一下,跟训实习生似的。但是因为他官大,只能听着还有一些很弱智的操作。经常就是拿一个很小的点,大家都懂的那种,开始胡扯,给人都干无语了,人家也不好意思说“你这都是最基本的你别讲了”。
那么他为什么这么做,当然是因为是领导也不懂啊 ,总这么说教别人,领导真以为他很厉害。
我也不是讽刺他,是真的很有效果,像我们的后端负责人是个真大佬,是纯技术理工男,已经有点吹不过他了。跟他一起干挺久我现在也能胡说了,上来就是https,tcpip胡说八道一遍,还不行就吹centos ,shell,docker,不会的很容易让我唬住。
5号知乎网友:高龄程序员
我曾经面过一个人,是工作n年出来创业失败了又出来找工作的。我开的职位是.net开发,jd也是相关的内容,他应聘的也是这个职位。
可是面试开始后,此大神给我又是白板画架构图,又是卖力地讲解,给我科普了一遍高并发大访问量交易网站的架构。但是我听着听着就有点云里雾里的了。
当年是2015年,我们网站用的是redis缓存服务+nginx负载平衡+分布式应用服务+分布式数据库的架构,算是当时很common的架构。可是此君画的东西我完全无法理解我现在也不记得了。我只对此君的一句话影响很深:
我:我不是很明白,那么你谈谈你这个架构如何工作,如何处理大并发量呢?
他(激动):这不是我的架构,这是业界通用做法,这么做一定能承担千万级并发量!
我:好吧,不过言归正传,我们找的是.net开发,那么请问你一下c#里面可遍历对象是如何实现的遍历的呢?
他:不知道。
场面一度非常尴尬。
*仅为提供参考和学习交流,不代表dbaplus社群立场!dbaplus社群欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn
如果字段的最大可能长度超过255字节,那么长度值可能…
只能说作者太用心了,优秀
感谢详解
一般干个7-8年(即30岁左右),能做到年入40w-50w;有…
230721