今天分享的是训练营的朋友在作业帮的一二面面经,**难度丝毫不逊于各个大厂**,很有学习的价值。下面先来看一下该岗位的JD:
### 岗位要求:
>1. 熟练掌握Go语言,有良好代码规范和架构能力,要求有持续迭代优化系统性能经验(可接受转语言)
>2. 为各类项目需求设计架构,开发后端功能服务,同团队成员合作并积极提出建议和反馈
>3. 良好的沟通表达总结能力,同产品团队协作,理解用户需求,归纳功能用例,并转化为高效的>技术解决方案
>4. 熟悉常用开源分布式中间件、缓存、消息队列等
>5. 有长期教育培训类系统核心B端系统经验,订单系统经验优先
### 岗位职责:
>1. 负责核心功能模块的开发和详细设计,参与需求分析和讨论,复杂系统设计
>2. 负责核心模块编码,并优化相关模块,持续性能调优
>3. 负责产品技术架构改进,支持产品功能扩展
### 工作职责:
>1. 负责在线直播课教学相关系统的设计、实现与维护;
>2. 负责直播课核心服务的架构演进和稳定性建设;
>3. 负责重难点项目的技术攻关;
### 任职要求:
>1. 计算机相关专业统招本科或以上学历;
>2. 编码功底扎实,熟练掌握Go语言,有良好代码规范和架构能力;
>3. 能熟练使用Webserver、开源存储、消息中间件等,了解原理机制者优先;
>4. 有大型分布式、高并发、高负载、高可用性系统设计及复杂业务场景开发经验者优先;
# 面试内容
## 一面
1、rocketmq的延时机制怎么实现的
2、profile
3、kafka 4个消费者3个分区
4、数据库的二阶段提交
5、数据库大事务的影响
6、算法:二叉树中2个节点的最先公共祖先
## 二面
1、自我介绍
2、毕业后是在深圳还是北京?
3、腾讯的离职原因?
> 感觉字节那边技术更具挑战性,想实现技术突破,获得更大平台,便加入其商业化部门,因其广告量级庞大。
4、在字节待了三年半,符合预期吗?
5、年初为何想去创业?
> 工作 5 年半,其中在字节 3 年半,积累了一定经验,想挑战突破,且有电商同事提议,自身在电商方面也有沉淀,便尝试创业。在此期间学到运营、商务等知识,积累与供应商、物流商对接经验,后发现自身优势仍在技术领域,创业中技术发展受限,打算回归职场深耕技术。
6、现在创业之事停了吗?
> 我这边没有再继续了。
7、创业是亏还是赚?
> 亏了。
8、做跨境电商的主要难点在哪?
> 难点在于把控市场、供应链,以及运营和售后等方面,事务繁琐,超出预期。
9、人数规模?
> 算上招的运营,最多时有十几个。
10、如何保障简历所写保障轨迹的及时率和完成率 98%以上?
> 主动查询调度中心,周期性查包裹轨迹;用消息表记录并定时对账,防查询任务断掉。发现加主动查询后,因物流商系统延迟,轨迹仍不达标,便做技术调研,从其他轨迹服务商获取轨迹增补,设计增补链路,将单包裹与单物流商对应链路拓展为一对多,增加轨迹分单模块,记录包裹、所在物流商、轨迹服务商的关系。又因多数据源会致轨迹重复,增加清洗去重模块,依据时间、地点等重要信息去重,使多数据源下包裹轨迹果正常,提升及时率。
11、多数据源互补怎么做,如何避免数据格式不一致、重复、冗余问题?
> 应先介绍轨迹按节点存储,多节点组成配送链路,再依据轨迹状态、部位、时间去重。
12、主动查询的延时时间如何设计、考虑,是直接设定吗?
> 先根据国家和业务差异定延时时间,有 2、3、6 小时等配置,依据包裹轨迹操作时间与系统接收时间差值定义及时率,不同国家差值不同,时间间隔也不同。
13、延时队列是怎么实现的?
> rocketmq。
14、若公司 rocketmq 版本低,不支持任意时间延时,且同一时间多消息,如何设计延时队列?
> 一开始想用数据库存消息、定时轮询,未考虑性能问题,后想用 redis 设过期时间、利用过期消息订阅通知,仍无法满足数据量大且对时延敏感情况,经面试官提示,用 redis 的 zset。正常方案是将消息存 redis,键值和延时后消费的时间戳存到 zset,为防 zset 过大,用哈希表将键存到多个 zset 里,消费端轮询 zset 最小值,对比时间戳消费。
15、在字节的商业化部门做什么,与广告投放相关吗?
> 广告的投后风控系统。定时抓取线上全量广告的落地页、图文等,过机审模型,依命中模型策略执行不同处理。
16、性能优化怎么做?
> 一是语言迁移,从 python 到 golang,利用 golang 特性做并发优化,提升性能,减少实例数与机器资源占用;用 redis 缓存热点数据,降低数据库直接访问,提升读写性能;用事件驱动方式,将复杂逻辑如落地页内容实现、模型规则命中设为异步发至消息队列,打平流量。
17、接下来找工作更看重什么?
> 希望接触更多技术业务场景,解决业务问题,提升技术,实现职业技术进阶,往高阶发展,优先考虑武汉,因家在武汉。
18、创业与在职场上班,哪种更适合?
> 经历过后,觉得自己更适合在职场专精某领域,创业琐事多。
19、字节的职级?
20、反问环节:公司的业务场景和挑战?
> 公司主要负责作业帮直播课偏 b 端系统。直播课是作业帮核心营收源,分 c 端、b 端。c 端涉及学生上课各端、流媒体长链接等服务;b 端给辅导老师提供服务,包括学生信息管理、分层标签、课程信息进度,课前提醒、课中反馈、课后报告批改等。挑战在于业务复杂度高,要服务多种场景,且系统质量要求高,问题第一时间反馈公司,与 c 端不同。
21、反问提升的建议?
> 主要针对延时队列场景题。
22、还有问题吗?
> 面试官介绍公司和团队:作业帮 21 年双减受影响,23 年起在线教育管控放松,今年业务超双减前峰值,公司低调。武汉是第二研发中心,直播课 B 端团队后端加前端约 20 人,测试共 20 多不到 30 人,产品在北京,业务在武汉基本闭环。23 年武汉约 100 人,今年 200 多人,明年预计扩编,公司倾向将招聘资源向武汉倾斜。
## 欢迎关注 ❤
我们搞了一个**免费的面试真题共享群**,互通有无,一起刷题进步。
**没准能让你能刷到自己意向公司的最新面试题呢。**
感兴趣的朋友们可以加我微信:**wangzhongyang1993**,备注:面试群。
有疑问加站长微信联系(非本文作者))