以下故事经历纯属虚构,“我” 仅指代故事主人公,如有雷同,纯属偶然
很多年以前,我拿着 2000 的月薪入职了一家电商创业公司,整个公司只有一个会画饼的老板和啥也不会的我。
于是我现学现卖了HTML、CSS、JavaScript,做出来的界面大概是这样的 ⬇️
老板说你这个也太丑陋了,有没有现成的框架可以快速开发的?
于是我又学习了JQuery、Bootstrap美化了一下网页,老板很是满意。
第二天,老板说我们这个网页需要一些动态数据,不能写死在前端,太孬了,于是我又了解了前后端分离,学习了Spring、SpringBoot、MyBatis、MySQL、Maven、Tomcat、Ajax、Json等。
老板看工作量有些大,于是招了一个新员工,他开发完了功能然后交给我进行整合,所以每天不是我在 copy 他的代码就是他在 copy 我的代码,老板说很显然我们需要一个项目管理工具了,于是我们用上了Git。
很好,解决了每天 copy 的问题,花了一两个月我俩沟通协作非常 nice,网站搭建得差不多了,
但很快新的问题又随之出现,就是每天代码上线打包的步骤实在太过繁琐并且占用时间,要是能有一套自动化的打包构建工具就好了,于是我又学习了Docker、Jenkins。
这样,一个完整的项目开发管理框架就被构建起来了,项目很快完成了上线。
老板又说,为了上线后能够保障网站正常运行,迅速捕捉到出问题的地方,我们需要给网站搭建一套监控和日志系统,于是我又去学了Log4j、Logback、Prometheus、Grafana、ElasticSearch、Kibana。
随着网站用户的不断增加,通过监控系统我们发现有几个服务的压力正在不断增加,随时可能宕机,于是老板又买了几台服务器,让我们想一想怎么能够缓解服务器的压力,于是我们引入了Nginx做负载均衡,MyCat和ShardingSphere做分库分表,Redis缓存一些热门商品的信息。就这样,服务压力下去了,网站又开始稳定运行了。
一天,老板说能不能做一个订单状态的变更,将变更消息通知给用户,于是我又在RabbitMQ、Kafka、RocketMQ等消息队列中做了选型并选择了一个最合适的技术栈。
又一天,老板竟然说要重构,现在流行分布式微服务,我们也来重构下吧???
于是苦逼的我们又 TM 学习了SpringCloud微服务框架,以及Dubbo、Zookeeper、Netty、Nacos、Sentinel、Feign、Gateway等一大堆分布式组件。
顶着巨大的压力将网站重构完成并实现了高性能运转,公司业绩也随之节节攀登,老板非常高兴,每天数钱数到手软,于是顺势招聘了很多的年轻人,我非常欣慰,并教给这些年轻人学习和架构的经验。
直到有一天,我发现业务似乎遇到了瓶颈,用户增长基本停滞,并且市面上出现了很多跟我们差不多的网站和 APP,除了 UI 有些许不同,功能几乎一模一样,并且价格还更低,开始疯狂内卷,打价格战掠夺用户,并且为了让农村劳动人民也用上他们的网站和 APP,将其取名为 ”下沉市场“,开始针对性地投放和开发,分蛋糕的人越来越多,大部分公司的效益都开始持续走低,于是顺理成章地广发裁员信了......
于是我又得重新开始面试了,却突然发现怎么现在面试 N 年前完全不一样了???怎么现在又是计算机网络又是操作系统,底层问题问了一大堆,全是原理性问题,我完全不会啊,还要出几根柱子接雨水这种我完全看不懂的问题让我写出代码,一面完了还有二面三面四面,我直接懵逼了,受不了了。
再回首程序员的生涯,我发现每天都在被技术和莫须有的业务牵着鼻子走,每天都在焦虑,每天都在被迫学习新的技术,每天都在处理着各种各样乱七八糟的 Bug,生涯末期我才发现这些似乎并没有产生太多的价值和意义。
全剧终。