Algorithm
本周选择的题是:Duplicate Emails。
规则
Write an SQL query to report all the duplicate emails.
Return the result table in any order.
The query result format is in the following example.
Solution
# Write your MySQL query statement below
select Email from Person group by Email having count(Email) > 1;
Review
Stop Client Side and Server Side Rendering. Do This Instead.
Client-side rendering and server-side rendering are killing your app’s success.
SSG 是指浏览器向前端服务请求 HTML 资源时,前端服务将已经打包好的、具有完整 DOM 结构的 HTML 返回给浏览器进行解析、构建等操作。优点是确实快,因为是在编译时处理,所以无需服务端在响应时做额外处理就能直接返回,服务器响应快;且浏览器也不用额外下载 JS 等文件,非常快就可以看到页面;对 SEO 也有帮助。
缺点是页面交互不方便,因为构建时执行的是通用逻辑,没有 window、document 等对象,存在潜在的兼容性问题。
这种方式其实和客户端很像,客户端提供的页面是编译期生成的静态页面,包含完整的资源文件和页面结构,动态内容在运行时获取;但 SSG 又不完全是静态内容,如果是对所有用户相同的数据,是可以直接在下发的页面中完整包含进来的,进一步减少请求+渲染的总时长,细想之下也和客户端的通常做法类似,比如预置离线包或离线数据,然后在启动时更新、替换。
面向终端用户的架构统一也只是时间问题。
Tip
一个用于存储临时文件的在线服务:/TMP/FILES。
Share
关于风险处理的四大类:
- 立即采取果断行动
- 现在采取短期行动,但以后再采取永久行动
- 现在注意到问题,并承诺以后采取行动
- 任其燃烧
“立即采取果断行动” 通常用于处理系统性风险,比如监管部门的要求、信息安全等,立即处理的核心目的是阻止事态扩大,这不仅是从法律角度上的要求,合理的东西不一定合情,不合情可能导致产生用户信任危机,从而造成无法挽回的损失。
“现在采取短期行动,但以后再采取永久行动” 重点在于先通过短期或临时方法止损,以赢取时间,但以后再采取永久行动。以支付宝来说,当年风控手段不完善时,支付宝采用了先行赔付策略,避免因交易导致买家权益受损,从用户那赢取时间后,再不断提高自身的风控水平,以便在未来降低业务成本。
“现在注意到问题,并承诺以后采取行动” 是指在面对风险时,虽然该风险现在可以控制,但如果不加以重视未来会升级为系统性风险,那就不能忽视它,即使不立即采用行动,也应该承诺以后采取行动。通常出现在内部缺少必要的职能部门或专业知识,而且业务处于早期阶段,因此可以延后解决,但之所以要承诺采取行动,也是为了更好地管理、跟进该问题,避免业务量提高导致对相关知识、基础设施的要求变成刚性要求,措手不及。
如果是某种非系统性风险,甚至觉得不值得花精力分析它时,它可能只是一个小火苗,可以先 “任其燃烧”。