系统设计时要避免的 3 个误区
系统设计时常见 3 大误区:未确认解决对的问题、过度关注不重要细节,以及解法不符合系统脉络。本篇提供实用检核清单,助你避开设计陷阱,在工作与面试中精准掌握重点。
继续阅读
每当提到在程式中写注解(comments),你大概会在网路上看到两派人马,有人觉得应该要写注解;又有另一群人觉得代码应该要写得够清楚,如果有注解就代表写不够清楚,应该要重构而不是加注解。当然除了这极端的两派人马外,多数人都是在中间,部分的代码写注解,但不会全部都写。关于写注解这件事,在《A Philosophy of Software Design》书当中也有谈及。John Ousterhout 教授的观点是,如果注解写得好,将有效改善整体的系统设计。假如你是反注解派的人,或许可以一起来读读他为什么这么认为。
继续阅读
数组扁平化指的是将超过一维的数组转化为只有一维的数组,目前社群中有许多效用函式库有提供这个方法,例如知名的 lodash 函式库就有 flattenDeep 方法来协助转换数组。
继续阅读
要做好系统设计,或是在系统设计面试中有突出的表现,必须深入细节。虽然说面对不同的系统,会需要针对需求与特性,去做特别的调整,不过有许多心法是在各类系统都适用的。在这篇文章,我们会谈 5 个系统设计心法,分别是水平扩张、快取、非同步、避免单点故障、监控
继续阅读
这周亚马逊的 Prime Video 团队发表了一篇新的技术文章《Scaling up the Prime Video audio/video monitoring service and reducing costs by 90%》,在文中描述它们如何透过把架构从 serverless 迁移到 monolith 来节省 90% 的成本
继续阅读