完美life
给亲推荐一篇Java大神阿里巴巴孤尽的一篇文,希望对你有所启发!
以下为文章正文:
我叫孤尽,是一名阿里程序员。
如果说,我身上有一点点和普通程序员不一样,也许是更轴一点。比如我觉得JAVA是世界上最好的语言,没有之一。
最近,我又干了一件比较轴的事情。
我因为这件事曾被大家群嘲。有人还好奇地发帖:孤尽是谁?怎么胆子这么大,敢给整个阿里集团写技术规范?
插画师:赫柏
一个疯狂的主意
事儿得从两年前说起,有一次,我去参加一个跨部门的会议,开着开着,忽然掐起来了。
起因是两个团队使用的代码规范不一样,但都想让别人采用自己的。最后谁都说服不了谁,一个哥们气得嗷嗷叫,还有个哥们,恨不得要跳上桌子现场表演胸口碎大石。
长期以来,咱们程序猿虽然都靠武功行走江湖,但又各立山头。
大家的代码规范都不一样。我学降龙十八掌,你学蛤蟆功,还有人打还我漂漂拳,不按照一个“套路”出牌。单兵作战还好,遇到团体作战的时候,难免会因为要统一“出拳”的步调,牺牲掉一些效率。
想到这,一个大胆的念头冒了出来:为啥不做一个统一的规范出来呢,让大家达成共识呢!
这个疯狂的想法,我越想越激动,马上告诉了身边的小伙伴。
大家跟我想得一样,这个主意不但很疯狂,还很不靠谱。代码规范都是程序员们多年编码生的茧,岂能说改就改!
有人问我,谁给你的勇气,梁静茹全家吗?还有人说,规范又不是你的KPI!好好搬你的砖(黑话,指写代码)。
摄影师:俱往
搬砖的故事
别说,我还真搬过砖!
初二的时候,我不好好上课,天天在学校打架,后来我爹把我揪回了家,一顿胖揍之后,让我去家里附近的窑厂搬砖。
搬了大半年,有个亲戚来家里做客,看了我一眼,说,这个娃脑瓜子好使,但当不了房梁,只能当房椽,不堪大用。
那句话激怒我了,后来,我就去找我爹,我要回学校。我爹平静的告诉我,晚了,认命吧。
我就不认,我打死都不认。
回了学校,别人一题做一遍,我做三遍。寝室都睡了,我打着手电筒还在看书,就这样,从年级倒数第一,到了期末,我爬到了年级倒数一百。
在我们的人生中,一定会有一个人告诉你,这事太难了,别干了。
这个时候,一定要对自己说一句话:对于别人来说,也许是很难,但我不是别人啊。
摄影师:启一
失败99次之后
2016年3月,我在阿里ATA(技术同学华山论剑处)上发表了第一版《阿里巴巴集团JAVA技术规范》。
觉得好的人有之,觉得不好的也很多。还有人觉得我胆子太大了,去知乎发帖,问孤尽是谁,怎么敢给整个阿里集团写技术规范?
每次被群嘲,晚饭我就让食堂阿姨多给我打两个鸡腿,安慰一下自己。有批评,证明有关注,有关注,就有希望。
那个时候,一个部门一个部门的去游说,失败了一次,就试第二次。失败了99次,那也还要再试一次,没别的,凑个整数呗。
也许是精诚所至,也许是走了狗屎运,阿里技术大牛多隆给我的规范做了推荐,被一个技术大牛看到,还引发了业内的讨论。
阿里在Java后端领域支撑起全球访问量最大的服务器集群; Java代码构建的阿里双11系统订单处理能力达到17.5万笔/秒。如果能在这个基础上运营一套加强团队分工与合作、真正提升效率的规则,不就能撒豆成兵吗?
阿里巴巴CTO行癫说过一句话:“消防局最主要的工作不是灭火,而是为了不发生火灾建立很多规范。”
在这段时间,JAVA规范前后改了很多版,从我一个人,到越来越多的程序员加入。我们相信,当规范改到第七版,我们就能召唤神龙。
其实,我们每一个行动,都需要消耗勇气。开始前的犹豫,行动中的波折,被质疑时的动摇……记住,千万别去管天多高地多厚,反正管了你就赢不了。
第83行代码
今年年初,代码规范终于实现了。
现在阿里所有的BU都开始使用这个JAVA规范,所有人都开始奔着一个方向奔跑了。
今年,我和小伙伴又开始鼓励大家把写得好的晒代码晒出来,甚至被重新review。
这个过程,不是找茬,而是让大家看看好在哪里,不好在哪里,做得好的学习,不好的避免再次掉坑里。
连马老师都来回贴了,“感谢大家的智慧和努力,更感谢大家的分享和敬业精神。我可以骄傲的说,我可以一辈子不用懂代码,因为我有你们!!!”
现在这个晒代码的帖子,已经有5万多人围观,400多位技术极客们秀代码、亮肌肉。
通过算法,定期抓捕漂亮代码进行全员review,我们正在推动它成为现实。小伙伴们还给这个项目起了一个性感的名字——第83行代码!
当然,最让我激动的,是食堂大妈终于记住我的花名了,有天我去打饭,她跟我说,还给我留了两个大鸡腿。
阿里程序员们在做代码review
从阿里P5到P8
八年前,我笔试阿里失败,一气之下,我抱着自己的简历和一堆获奖证书跑到浙大准备安排面试的HR,准备霸王面。
我还记得当时说了一句:你们错过了我,就错过了一个时代。特别感激那个笑得好看的HR大哥,并没有因为我不知天高地厚而生气,相反,他破例给了我一次面试的机会。
在阿里的八年,从P5到P8,经历过很多挫折,也经历过晋升失败,虽然到现在,我还是没能改变一个时代,但我很开心,我给世界带来了一点点改变。
这是我的照片,怕掉粉现在才上
小时候,我们总被教育,别不知道天高地厚,要有自知之明。自知之明的潜台词,大概是遇到困难,记得认怂。
但有的时候,请保留一些“不管天高地厚”吧。
敢不切实际地妄想,才敢不顾一切地努力啊。
更多技术干货敬请关注云栖社区头条号!
云栖社区
我看到有人截图给我说,这个问题似乎答非所问。特地过来给大家一个答案,首先我不是大神,我只是一个正在路上、热爱技术、爱分享的Java码农而已。不知道为什么要把为成大神当成目标呢?技术最终是解决某一类问题的,大神,我的理想是深入浅出,融汇贯通,前一个成语往往能够深入,但无法浅出,无法用简单的语言介绍自己的知识体系。而后一个成语,融汇似乎容易,但是贯通,需要自己打通自己的任督二脉。关于需要具备的技术体系,虚的要求罗列所下:
1)热爱编程,享受编程的快乐。
2)动手,动手,动手。
3)总结,总结,总结 。
4)勇于挑战技术浪潮之巅。
实的要求罗列如下:
1)了解JdK体系的技术框架,深度了解重点类的源码设计,特别是集合和并发编程的知识。几乎50%的故障都是来源于集合的误用和并发错误上。
2)知道主流框架的使用方式和总体框架体系。
3)知道设计模式和架构理论,并且运用到实际代码中去。
4)知道如何做好自我测试,包括单元测试、集成测试,还有识别错误,定位问题的能力。
5)技术风险的判断能力。
阿里巴巴孤尽
想成为java大神需要具备哪些条件呢?从以下几点综合分析吧:
项目经验+基本技术+个人潜力
想成为java大神,还得需要自己的不断总结和积累经验,有自己的一套工作流程和方法,不断的学习才能达到这样的状态,项目不能少,更多的是大型的项目经验。因为只有在工作和项目中才能更好的总结,让自己更了解这个编程和代码,知道怎样提高效率更好的完善这个项目。