金蝶

一面

两位面试官,一位leader,一位中级开发

详细说说简历上的项目

面的 BU 是做测试效能开发的,所以挑了个持续集成平台说。

关注哪些覆盖率

行覆盖率

你的代码量多少

4个项目,一个项目300个类,平均每个类100行,保守估计 12万代码量。

说说 Raft 算法的选举过程

Candidate(相当于 ZAB 协议的 looking 状态节点)在一轮中只会投一次票,如果不投票,那么超时后,增加一个 term,并且自己成为 Candidate,选出自己。
和 ZAB 对比,Raft 没有投票箱的概念,在一轮中只能投一票。但是比较选票的过程是一样的,先比较 term(logicLook),然后是 xid,最后是 nodeId。

区分 BeanFactory、ApplicationContext

国际化、Resource、Environment、提前加载所有 Bean、更多的钩子(ApplicationListener,观察者模式)

项目中有涉及到哪些设计模式吗

策略模式。文件网关支持更多的校验规则
观察者模式。添加、修改项目、部署元信息,通知感兴趣的 Listener(更新CMDB、通知业务负责人元信息更新)
责任链模式。发布前钩子(调用 Eureka 进行服务驱逐,给 Dubbo 添加黑名单,JVM参数织入等)

常用哪些排序算法,适用怎样的场景?

插入排序,基本有序的情况下最好情况 O(N)
快速排序不稳定,但对于无序数组也能保证 O(logN)
归并排序稳定,但是外部排序占用更多内容,虽然是 O(logN),但常数项过大

Redis 中的 zset,为什么不用红黑树实现呢

红黑树在并发场景下,需要锁定整棵树,但 skiplist 只需要锁定相关的节点,粒度小,并发性能就提升了(但你要小心,Redis 是单线程的,不需要考虑竞争)
skiplist 在内存占用方面,会比红黑树小一点(质疑)
因为 zset 最常用的 zrange,如果红黑树实现需要 O(n),但跳表可以做到 O(logN)

二面

两位部门经理,一位技术负责人,一位HR

刚进随手记的时候做的是什么

数据门户,展示报表,图表

持续集成平台如何分工

一共3位开发

SonarQube 质量阈加入了哪些指标

行覆盖率、类覆盖率、BUG趋势

项目中的分支怎么管控

master、feature、bugfixed

持续集成平台线上怎么部署,Kubernetes 集群呢,机器的配置怎样

(如实回答,其实是在确认简历中的数字的真实性,部门经理对这个很敏感)

posted @ 2020-11-20 10:17  Casaa  阅读(136)  评论(0编辑  收藏  举报