Protected: Interview Questions
There is no excerpt because this is a protected post.
There is no excerpt because this is a protected post.
系统设计的题目,感觉不用做非常多,但要善于总结,相似的问题可以总结成一类,用一个模板来解答,然后加一些小细节加以区分。 如何将一个信息同时传播给多个关注该事务的client 定时任务 Event Sourcing Event sourcing就是说我们不存最后的状态,而是把每一个action都存起来,然后需要结果的话,我们得到所有的action,然后derive出最后的状态是什么。那什么时候需要event sourcing呢?跟钱打交道的时候,比如说Auction system需要我们prove为什么是这个人赢得了最后的bid等。另一个就是,如果很多人都在竞拍一个产品,如果我们只存最终结果(在这种情况下是update Auction表里的winner),在高并发的情况下会一直修改同一个数据,这要比往bid table里不停append给bid table的的性能要差很多。 Lease机制 Lease机制是facebook设计memcached的时候,为了解决数据一致性的问题解决的,非常适合高并发场景。那么是如何工作的呢?– 同一个cache key,memcached维护一个当前有效的lease token,不管多少请求都拿到这个token– server A和server B都来读取数据,拿到相同token,然后server A先过来更新– Memcached对比了token,有效,就把对应的值改掉,lease token也发生了变化– server B再过来更新的时候因为token invalid,所以更新被拒绝 确保任务不会被重复执行 这是经典的分布式系统并发控制问题。例如,a cluster of worker nodes会不停的扫描数据库来发现下一个要做的task。如何保证node A take该task之后,别的node不会重复去执行呢? 这是悲观锁方案 这是乐观锁方案,用的CAS, 基于version。也可以基于时间戳,设一个last_modified column。 两个方案各有利弊。如果是高冲突环境下,悲观锁比较好,skip locked可以避免无效等待,每次查询基本都可以获得结果,不需要不停的retry。低冲突环境下,乐观锁比较好,没有锁开销,并发读取效率比较高。…
什么情况下用BFS? 什么情况下用DFS? 练习题
TreeMap Heap PriorityQueue Insert() log(n) log(n) log(n) Delete() log(n) log(n) O(n) Pop() log(n) log(n) log(n) Find() log(n) log(n) Not support Modify() log(n) log(n) Not support Min / Max log(n) O(1) O(1) Upper / Lower log(n) Not support Not support Lower…
什么题适合动态规划? 什么题不适合动态规划? 动规四要素 顺带回忆一下递归三要素 动态规划只能记录一种最优方案 练习题目:
NATURAL JOIN vs INNER JOIN 对比点 INNER JOIN NATURAL JOIN 是否需要指定连接条件 ✅ 需要使用 ON 明确指定连接字段 ❌ 不需要写 ON,自动匹配同名列 控制力 ✅ 高:你控制连接字段和方式 ❌ 低:自动决定,容易出错 可读性 ✅ 明确清晰,推荐生产使用 ⚠️ 可读性差,容易误用 常见用途 ✅ 实际项目中常用 🚫 学术/练习中偶尔出现,生产中少用或禁用 支持程度 ✅ 所有数据库都支持 ❌ 有些数据库(如 SQL Server)不支持…
基本类型和变量赋值 数据结构 条件判断 循环 函数定义 异常处理 类和对象 列表推导式 常用内置函数
API key 放在请求头里,例如 Token(jwt) 先调用登录api来获得token 然后得到相应: 然后带上这个token在请求头里: OAuth2 1. 用户点击“用 Google 登录” 2. 前端拿到 Google 的 ID Token 3. 前端把 ID Token 传给你的后端 API 4. 你的后端验证这个 Google ID Token 5. 后端根据用户身份生成自己的 JWT(可选) 6. 后端授权并返回资源 ✅ 具体技术细节 验证 Google ID Token…
There’re different test types across software testing. Unit testing Unit testing means writting automated tests for the smallest testable parts of the code to check if they work as expected. Integration Testing Integration testing checks how different parts(modules) of the…
Here are some interview skills and coding styles that on top of my head. Interview Skills Try to avoid “I know a fancy algorithm called xyz…” Try to avoid using uncommon existing algorithms used for very specific cases, such as…