不是自己的项目,如何抗住面试官的询问?

开发 项目管理
在交待项目背景的时候,可以将一些项目亮点写上去,例如:项目 QPS 多少等。如果是重构类的项目,那么可以交待一下存在的问题,方便后续讲「项目职责」的时候,呼应自己的成果。

项目背景

项目背景,指的就是交待清楚你的项目是做什么的,拉平你和面试官的信息差异,让他知道这个项目是做什么的。项目背景说不清楚,连共同基础都没有,更深的问题就更不用讲了。

在交待项目背景的时候,可以将一些项目亮点写上去,例如:项目 QPS 多少等。如果是重构类的项目,那么可以交待一下存在的问题,方便后续讲「项目职责」的时候,呼应自己的成果。

就以树哥做过的一个消息中台的项目为例,我写的项目背景介绍如下,大家可参考一下。

项目背景:原有邮件、短信、 Push、站内信、 WhatsApp 等消息服务相互独⽴,存在多语⾔模板内容⽆法集中管控、多地区运营商⽆法灵活调整、重复对接第三⽅服务商、各地区⽆法个性化定制发送内容等问题。

为了能更好地适应公司未来⼀段时间的发展,我主导设计了消息中台的技术架构,实现了多语⾔模板统⼀管理、多地区运营商账号统⼀管理,帮助运营零代码改动实现个性化的本地运营。⽬前⽇均发送消息 10 亿条, QPS峰值达到 3000 次/秒。

项目技术

项目技术这块,主要是为了方便简历阅读者快速知道项目用到的技术。这块没啥好说的,直接把用到的技术框架列一列就得。还是以消息中台的项目为例,介绍如下。

项⽬技术:Spring Boot、 Resty-Pass、 Consul、 MyBatis、 Redis、 Kafka、 xxl-job、 MySQL。

项目架构

讲完了项目背景和项目技术,接下来就是要把你的项目架构讲清楚。

那么什么是项目架构呢?

简单来说,项目架构,就是你的项目是怎么组成的。

例如如果你是中台,那这个中台是怎么搭建的。请求是如何进来,经过哪些层级,又怎么出去的?例如我做过的一个消息中台,就分为网关层、处理层、渠道层。

如果是业务系统的话,那描述下整体的架构。例如服务之间用什么搭建,是否用到消息队列解耦异步。用户请求进来先到哪里,再到哪里,最后到哪里。这样一梳理,你的项目架构就出来了,然后挑一些重点的项目块说说。

还是以消息中台项目为例,我是这么写的:

项⽬架构:消息中台架构上主要分为三层,分别是:⽹关层、消息处理引擎层、通道层,模块之间采⽤Kafka 消息队列解耦。 

第⼀层是⽹关层,负责对外提供统⼀的消息发送服务。⽹关收到消息后会对请求做参数校验、权限校验等操作。处理完成后将消息丢⼊消息队列,等待下游处理。

第⼆层是消息处理引擎层,负责对消息进⾏多语⾔渲染、多地区账号匹配,获取发送所需的模板、账号等信息。处理完成后将消息分批次丢⼊消息队列,等待下游处理。 

第三层是通道层,通道层包括邮件、短信、 Push、站内信等,通道层负责将消息发送给⽤户。此外,消息中台还包括消息中台开放平台、管理后台等相关联应⽤。

梳理到了项目架构方面的内容了,那你自然也要清楚项目是如何部署的,是用容器化部署,还是用传统的方式部署?生产的流量怎么样?接口的响应时间是多少?TP99是多少?这些都是需要准备好的。

项目职责

项目职责,主要是梳理你负责的内容。很多小伙伴会一股脑写自己做的内容,但实际上写这块内容也是有技巧的,要按照「你负责什么,做出什么成果,有什么数据支撑」的思路来写,这样才会让别人觉得你做了一些事情。

还是以消息中台为例子,大家可以参考一下。

项⽬职责:作为技术负责⼈,与产品梳理原有业务,设计并落地整个消息中台技术架构。在不影响原有业务情况下用 2 个月快速落地,随后快速迭代新功能。

在 6 个月内将原有上游迁移到新系统,接入系统到 50 个,新系统接入效率提高 75%。接入一年后,消息发送量达到日均 10 亿条,QPS 最高达到 3000 次/秒。

虽说要有亮点,但是里面用到的每个数字,你都要能说出个所以然,不能到时候一问三不知哦。

项目亮点

项目亮点,指的是项目中有哪些做得不错的点。

不同项目可能不一样。对于高并发项目来讲,高并发可以成为一个亮点。对于普通的 B 端项目而言,大批量数据导出也可以是一个亮点。因此,并非一定要高并发才能有亮点。

对于项目亮点来说,由于篇幅限制,我一般不会单独写,而是融入到其他方面中,例如融入到背景介绍、项目职责中。随后在面试的时候,有机会就展示这些亮点,随后就说出自己是怎么解决这些问题的。

总结

对于自己做过的项目,如果你能从「项目背景」、「项目技术」、「项目架构」、「项目职责」、「项目亮点」这 5 个方面来梳理项目,那么基本上你就会很清晰,项目的整体框架就搭建起来了。剩下就可以直接去面试,根据面试结果查漏补缺了。

但如果这不是你自己做的项目,这时候你还需要做一件事情 —— 实操。就是把这个项目自己搭个 demo 出来,然后把所有你提到的亮点所涉及到的知识点都做一遍,这样才能无线接近于实操。

责任编辑:武晓燕 来源: 树哥聊编程
相关推荐

2015-08-13 10:29:12

面试面试官

2010-08-12 16:28:35

面试官

2022-11-06 18:17:43

Java核心系统链路

2024-08-23 11:51:39

2022-02-14 20:53:33

开源库开发代码

2022-12-27 08:39:54

MySQL主键索引

2019-11-18 08:21:04

秒杀系统高性能

2023-11-27 08:17:05

SpringJava

2023-02-16 08:10:40

死锁线程

2024-05-11 15:11:44

系统软件部署

2015-08-24 09:00:36

面试面试官

2024-02-04 10:08:34

2021-08-03 07:51:43

React项目面试

2024-10-15 10:00:06

2024-02-20 14:10:55

系统缓存冗余

2024-03-18 14:06:00

停机Spring服务器

2024-09-11 22:51:19

线程通讯Object

2021-07-06 07:08:18

管控数据数仓

2024-04-03 00:00:00

Redis集群代码

2023-11-20 10:09:59

点赞
收藏

51CTO技术栈公众号