从0到1的项目经验是怎么回事?-开篇

641 阅读5分钟

写在前面

为什么想到写这个系列文章?

1.楼主最近想换工作了(这是前提咯,不然谁没事写文章),正在整理之前经历过的一些项目,想到了这段让我难以忘怀的经历(毕业进公司的第一个项目,也是人生中的第一个项目)

2.感恩从大学开始从网上看到的各类技术博客和开源项目的贡献者(真心感谢,在面试的时候吹了不少)

3.想为当初焦急找项目,好在简历上体现优势的我交一份答案(希望帮助到像当时的我的你)

4.整理回顾,所谓温故而知新嘛,毕竟现在面试都喜欢问细节

能大概介绍一下会讲到哪些内容嘛?

1.那我先大概介绍一下这个项目的背景咯

这个项目是当时和腾讯的一个开发团队一起完成(腾讯来了一个总架级别的领导,不知道在腾讯是什么级别,只知道好多人叫他x总架,一天好几k的薪资,不得不说腾讯的这支团队还是挺有实力的,当时提供了不少技术方案)

好了,我们言归正传,开始介绍一下这个项目

1.1项目启动背景

为了迎合现在的数字化转型热潮和中台化的技术基座趋势(针对不同的业务渠道,领导想实现服务编排的效果,各个业务渠道直接对接业务中台)

1.2团队规模

50-60人的样子,其中包括腾讯一支开发团队(10多人的样子)。这里解释一下为什么会有腾讯参与开发,公司下主机上云,采购了腾讯云的很多能力(听说花了不止一个小目标)

1.3产品用户规模

根据某个月度版本的生产数据备份脱敏处理后,我们拿到的csv文件显示,注册用户数在500万左右的样子(这里解释一下,拿到的文件没有任何用户的特征信息)

1.4 项目其它相关信息

这个项目应该属于大型项目的重构,再进行0-1的设计开发工作(这里解释一下,我们是要实现业务中台,之前很多的功能耦合在了一个单体应用中,而这个单体应用已经10多年的历史了,前面好多年的文档已经找不到了,你可以理解为真正的💩代码,也可以从这里体现这个项目重构的难度,可以透露一下,初步梳理整个系统我们团队用了整整3个月(而这只是前面准备的一环!!!),苦不堪言的过去...)

整个周期大致可以理解为二个大阶段,一个同步:

1)分析阶段(暂时这么分类吧,没想好怎么命名,比较杂):确定需要中台化的能力、分析业务边界、系统能力边界确认、能力梳理(这里解释一下,历史原因,一些公共的能力写在了一个渠道端)

2)重构系统阶段:架构方案选型、技术方案选型、数据库设计、接口设计、接口详细设计、开发、测试(冒烟、sit、uat、灰度)、投产(jvm优化,内存溢出,线上生产问题)

3)同步:领导的要求是不强制更新,新老并行,兼下主机上云,数据一致性问题,真的要大命!!!主机上的数据如何迁移到云上?主机和云同步如何考虑,中台和渠道端同时运行时,以谁的数据为准?同步出现网络抖动等原因失败时如何处理?补偿机制是什么?.....(还有很多一时想不到,待后期想到了补充)

中台普遍是用户中心、支付中心、订单中心...等等构成,数据一致性怎么解决?补偿机制是什么?(忘记说了,我们中台项目9大中心+3个其它辅助系统(类似redis缓存系统))

写在后面

本篇是初步回忆以及整理写下,文中有些地方存在逻辑不严密,欢迎指正,一起交流进步。

其实每个小阶段都不是简单的几个字就能表达,比如分析业务边界来说,我们就讨论了很久,什么该拆在业务中台,什么该留在渠道端,大大小小就开了很多场会议,整理了好几个方案,待领导拍板。后面的文章我就会以我亲身经历来写这个项目从启动到投产解决生产问题为止,来慢慢阐述。一个细节一个细节,来走一遍什么是0-1(最后补充一下,楼主是当时这个项目中某个中心的小组长,我这个中心包括我在内有5人)

文章我还是想仔细写写,即是对自己文档编写能力的提升,温故知新,毕竟这么大的项目我也不敢说吃透,再一个也是对读者负责,我是衷心希望能给你们带来一些帮助,毕竟我当初也是从懵懂走来,知道当时的我,现在的你是什么心情,谢谢。

最后,楼主也要工作,更新慢请见谅,希望每篇文章能给你带来一点启发,那我就是成功的,共同进步。