江湖传言,任何一门神功,均有三重境界:“看山是山,看山不是山,看山还是山”。
很多很多年前,我开始踏上程序员这条不归路之时,曾闻言,若能掌握“架构”这门功法,即能成为传说中的架构师,于芸芸码农之中脱颖,无惧35岁天劫。
世人皆叹:“架构强者,恐怖如斯”!
然而,直到去年,甚至今年年初,我仍然不知道“架构”到底是啥,“看山是山”首先你的视野得能看到,但之前我离这座山实在太远了,根本看不见,只是在脑子里想象出了一个模糊的影子。去年底,这个模糊的影子从我的脑子里转移到了我眼睛里,并且越来越清晰。我一路跌跌撞撞来到名为“架构”这座山的百里开外,终于大致能看清它的轮廓了。
我大学学的是工业相关,跟程序员风马牛不相及。但我实在对本专业提不起一点兴趣,大一在宿舍打了差不多一年游戏后,我开始自学当时还没入土的ASP.NET(有一说一visual studio真是世界上最好的IDE)。学了总要用吧,后来我自己无聊一个人帮着学校社团联合会(简称社联)做了一个社团管理系统,有学生、社团管理者、社联督导、超管等角色,功能上有社团报名、社员管理、公告发布、资料上传、场地申请审批等。当时并没有接受过软件开发的系统性学习,开发过程中遇到一个问题解决一个,走了很多弯路,最后系统能跑起来,也算是奇迹。
印象最深的是当时为了做并发测试,我请主席帮我组织了几十个人到学校机房,然后喊“三二一”大家同时操作。这场景现在想想都要笑死。
记得应该是我大三上的时候系统上线,直到我毕业近三年,社联的学妹还联系过我好几次说系统崩溃了,让我帮看看,可以给我维护费(每次几百块,对于当时只有不到5000工资的我,也是笔不小的数目了)。其实一般都是服务器硬盘满了(还是个菜逼的我把上传的资料都存服务器硬盘了,而且忘了做过期自动清理)。可能是认识我的学妹们终于全都毕业了,毕业三年后,我失去了这笔宝贵的收入(其实好像总共也就收了2000多)。
从学校出来后,我做了三年外包,当时我在的外包公司有不少项目都是从老板的一个同学的电商公司那边接过来的,第三年我们两家公司合并了,所以严格来说,我毕业后是做了两年外包+一年电商。
我这个人当时比较喜欢折腾,很多技术还没学精,就去折腾新东西,比如我作为一个高贵的ASP.NET全栈开发,刚把crud学好,刚懂一点服务器部署和数据库设计,就开始去折腾前后端分离。折腾完后,勉强入门了当时还算比较新的几门前端技术:es6、react、webpack、typescript、react-native,于是命运的齿轮开始转动,我试着面了几家大公司,居然拿到了三个offer,最后选择加入了腾讯,我也最终走上了前端开发这条不归路。
我在鹅厂的两年半,感觉自己几乎是原地踏步的。鹅厂的经历,除了让我get了因躺平体重飙升后又“花30天减了20多斤”的成就外,仅是给我的简历打上了“大厂经历”的标签,其它方面我感觉自己几乎没有什么进步。
2019年中,在鹅厂虚度了两年半光阴的我,选择了主动毕业,跟着一个鹅厂的前辈一起加入了一个初创公司。后来我负责的项目实在忙不过来,就陆续忽悠了三个朋友加入,并且拉了一个4人微信群起名为“单车变摩托”。万幸的是,后来有一个朋友在最后临门一脚准备辞职的时候,突然人间清醒,觉得自己刚结婚还是得求稳,把我鸽了,我忽悠朋友的罪孽得以减轻1/3。最后群里的人数锁定在3人。我们这个创业项目是面向线下社交相关行业的,2020年的春节,疫情爆发,垂死挣扎几个月后,项目基本宣告失败。群名也改成了“我那么大只单车呢”。
这次创业,虽然单车没了,但却让我成为了老司机(划掉),但却让我的整体技术能力再次突飞猛进。其中比较关键的是,我提出、设计、并落地了一套低代码系统,通过这个项目,软件架构在我的脑子里,开始有了个模糊的影子。
2020年下,我离开上家创业公司后,立即又接受了前腾讯leader的橄榄枝,前leader此时在一家筹备上市的几百人公司做CTO,我应邀过去做前端leader。想着从头开始创业不行,那我去搭个顺风车总行吧,于是再次进入创业的节奏和状态中。在这个公司我呆了两年,并第二次亲自设计和落地了低代码项目,同时还做了一些saas和跨端的项目。脑子里的那个模糊影子,开始日渐清晰。
“要多和优秀的人相处、交流”
2022年末,我重新回到了有一定规模的互联网公司(某金融领域的top)。其实当时还有一些其它选择,其中有两个offer比这个高近20%,从表面的结果上看,我当时的选择应该是最差最差的,因为大半年后,我又不得不再次换工作。但"福兮祸所伏,祸兮福所倚",命运的齿轮再次开始转动,这次不太顺心的工作经历,却让我在一些技术理解上,完成了蜕变。
当时选了这个总包不是最高的offer,是因为我有一个17年老友在我面试的团队,平时我们技术交流还是挺多的,他的特点在于想法多而且新,我的特点可能偏向于判断能不能做或该怎么做。所以当时想的是进去后跟他双剑合璧,一起做点技术成果出来。
刚加入这个团队,我就发现不太对劲了,很闲,而且答应我的title说是很快可以落地,但一直也没落地。因为当时说是年后很快会有一个新项目要启动,所以在这之前,我想着先做一些框架或者基建相关的事。在入职并稍微适应新团队后,我和那个朋友每天都在探讨和尝试实践:“合理的前端业务框架或前端通用系统,该如何设计底层架构,又该提供哪些能力”。我之前的两段创业+带团队经历,因为大部分技术问题都是我独自调研、设计并解决的,并没有人和我做思想碰撞,所以很多想法和方案,是零散或不具象的。经过这几个月的碰撞,很多之前的疑惑都开始散去。我眼前也终于出现了那座名为“架构”的大山。
可惜的是,在这个团队和这个公司,并没有能让我最终验证和巩固自己新境界的机会。因为业务变动和组织架构调整,我在下半年又再次换了工作。
离职前,我跟朋友开玩笑:多谢你这半年的言传身教,以及公司给的公费学习名额。
笑死~
2023年下,我加入了现在的公司和团队,负责我人生中的第三个低代码项目。上半年和朋友关于DDD我们一直在纸上谈兵。当经历过两个低代码的我,再次从0开始设计低代码架构时,DDD到底是啥,似乎已经越来越清晰...
《凡人修架构传》系列下期预告:《凡人修架构传:我所初步认知的DDD》