2025.3.4 微派

133 阅读3分钟

一面

  1. 自我介绍
  2. 围绕项目问一些问题
    • 第一个团队任职期间从一个下单入口扩充到3大入口,肯定是有一些数据结构的改造或其它兼容性的处理的,能否展开讲讲这其中你自己做了哪些事?
    • 再聊聊最近团队做的这个项目吧,可以就里头的低代码的设计展开讲讲?
    • 你刚提到的分页,这么多外部数据是怎么去分的?
    • 所以这里头基本的数据会先从一个实体里头获取出来,然后再去其它的实体中找关联数据吗?
    • 只能根据一个order_id去查吗,假设我现在想要的是今天内产生的一些order数据?
    • 但是我现在不知道有多少order_id,我只是想知道今天产生了多少订单
    • 条件搜索功能,我理解就是查询过滤,如果是涉及第三方的数据,这个功能是在你这层实现的还是外部API?
  3. 代码题:本地IDE手撕+单测
给定两个 非空链表 l1和 l2 来代表两个非负整数。
数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相减的绝对值返回一个新的链表。
可以假设除了数字 0 之外,这两个数字都不会以零开头。

输入:l1 = [7,2,4,3], l2 = [5,6,4]
输出:[6,6,7,9]

输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[3,2,1]
  1. 平时对MySQL和Redis接触得多吗
  2. Redis熟悉哪些数据结构?
  3. 说一下MySQL的数据插入流程,插入一条数据底层经历了什么过程?从发送insert命令开始讲
  4. golang的defer执行流程是怎样的
  5. 有了解过哪些场景的报错是没法捕获住?为什么?
  6. 反问

2025.3.10 二面

  1. 回顾一面,你觉得自己有什么回答得好或者不好的地方吗?
  2. 为什么golang里头并发读写map不是抛可以捕获的panic,而是直接fatal error呢?
  3. 切片的并发读写会怎么样?
  4. 那最终具体的表现会是怎样,会panic吗?为什么呢?
  5. 如果是你来设计这个slice,你会报错panic,还是其它error,还是就不管呢?
  6. 遇到线上的死锁问题,一般怎么去排查?
  7. 如果锁比较多,也有嵌套的情况,例如先加锁A,再加锁B,再加锁C,就比较容易出现问题,该怎么优化解决?
  8. 22年获得的奖项,是做了什么贡献,可以介绍一下吗?
  9. 那22年之后怎么就没有再获奖了?
  10. 这次会什么看广东以外的机会?
  11. 代码题:
// Do executes and returns the results of the given function, making
// sure that only one execution is in-flight for a given key at a
// time. If a duplicate comes in, the duplicate caller waits for the
// original to complete and receives the same results.
// The return value shared indicates whether v was given to multiple callers.
func (g *Group) Do(key string, fn func() (interface{}, error)) (v interface{}, err error, shared bool) {
  // 实现该函数
}
  1. 反问