最近有点空闲,想着把这么多年经历的公司在不同规模的时候,开发项目的模式(或者说节奏)总结一下;想着也是经历了技术团队从几个人到几百人,也经历了大厂的模式;回过头来看看,其实每种方式都有着自己的道理;毕竟:存在即合理
没有最好的模式,只有最符合你当前环境的模式
16年到20年,在一家跨境旅游的公司,感觉自己还是幸运的;公司发展的特别快,我去的时候,技术团队前后端加起来,一个圆桌就坐下了,每次来新人,都会出去吃一顿;后来公司快速成长,光技术团队就有3百人左右的规模;能经历一次从小到中等规模的发展,也是一段不错的经历。
随着规模的迅速扩展,开发模式也发生了很大的改变
人少的时候,CTO(创始人之一)常说:怎么快怎么来,慢了,公司就GG了。
当时开发一个新功能,前后端一合计,需要什么接口,后端就开始写代码(我是后端开发)
因为当时一个需求,传统关系数据库不适合,搜出来说neo4j很适合,大家都觉得适合,但是还是不敢下决心,毕竟不知道会踩什么坑。
架构设计?
我记得,当时我们做跨境旅游,最初的时候分3大块:商品、订单、库存。
感受
当时刚毕业一年,感觉过的很充实,因为每天都会有很多需求提出来,然后马上做,马上测试,马上上线;天天赶工。由于人少,如果发现什么问题自己不知道的,基本靠Google【其实不是什么难题,只是当时自己太菜】;虽然很忙,每段时间回顾,还发现自己多了点技能,每次赶出来的东西,都能快速上线,被用户使用,还有反馈,感觉还挺好。
随着公司的快速发展,慢慢的,我们不止是做产品需求了,我们发现技术债慢慢的多了,到了必须还一些的时候了
随着业务发发展,后台服务的规模也快速的膨胀着;接下来出现了很多事情
如果是新服务,还得先看看http服务用的是哪个端口,如果已经占用,则替换成未用的,然后还需要手动配置NGINX
可能你会认为很原始,效率很低;但是我们这种模式持续了小一年。
其实规模小的时候,这种方式是有优点的
但是再继续下去,老大估计要吐血了。
功能很简单:
可能有人会有疑问,只是一个简单的页面,做了一件简单的事情;为什么拖这么久;现在回想起来,个人想法可能原因有几点
在人少的时候,其实是没什么规范的;但是规模大了以后,不得不出规范,因为人工不可控了。
早期,为了快,很多逻辑用SQL可以快速的完成,就直接使用了,导致了很多很复杂的SQL的存在
让一下慢查询暴露出来,及时得到处理
这里说的不是操作人的,是服务的;早期,大家都可以直接连数据库,进行增删改查,特别是:查询,即使商品的逻辑,可能直接查询库存的表来达成目的;后来变成了谁写的数据,谁可以查,其他人需要查的,统一通过api查询
以前服务启动时候的配置文件都是一个静态的文件,部署的时候带着一起的;
后来配置文件融合到部署系统里了,再后来,同一服务不同实例不同配置、配置热更新等也都支持了,
人多了以后,测试也开始有测试用例的评审,验收标准的制定等等
个人建议:
随着公司发展几年后,由于疫情和一些原因,我离职了;去了腾讯,看看大厂是啥模式
待写