关于那个 Slack 流程图,每个人都是错的

主要观点:构建软件困难,看似简单的事细节处理后会变复杂,以 Slack 工程团队的通知流程图为例,原流程复杂难懂,作者重新绘制了一个更简单易懂的版本,虽与原流程不完全兼容但更准确,作者认为简化后的流程更易理解、验证正确性和找bug,强调思考和谈论系统的方式对其可理解性影响大,复杂问题的简单解决方案很难得。
关键信息:Slack 原通知流程图复杂有几十 boxes 和 arrows 且部分重复;作者简化后只有 6 个 boxes 更易理解;作者版本虽与原不完全兼容但更准确;原流程存在一些可优化之处如分裂问题等;作者认为简化可帮助理解意图和决策树;强调系统思考方式的重要性。
重要细节:原流程中存在循环,有“channel notification preferences”与“global notification preferences”分开等问题;作者版本用“&&”“||”对应原不同 boxes,“Nothing (incl. muted)”箭头实际是两个检查伪装成一个;作者不认为简化是作弊,每个 box 或 arrow 对应几行代码等;提及 Slack 通知逻辑复杂,还有未被图表涵盖的复杂性,如消息发送者覆盖免打扰等情况。

阅读 12
0 条评论