Glean 拾遗
最近收录

2 条 · 按时间

09-14

写软件的十一条原则:先数据,后代码

作者列出自己构建软件时遵循的一组原则,主线是让系统更简单:让非法状态无法表示、保证数据一致性、先设计数据再写代码、测量之后再优化。文中用一个数据库例子说明不一致的代价——必须保持 x=y 的两个布尔变量一旦拆到不同库、无法原子更新,数据就多出两种状态,toggle 函数在这些状态下没有正确答案。作者认为一致性是当下最被低估的工程原则,多数问题本质上都是数据不符合预期;他同时主张代码一致性优先于局部「正确」,学习应聚焦 concepts(关系模型、代数数据类型、borrow checker、Curry-Howard 同构)而非 React、Kubernetes 的表层细节。适合做后端与数据系统设计、正在权衡微服务拆分和 schema 取舍的工程师。

kevinmahoney.co.uk · 9 min · Database · Programming Languages · Software Engineering
08-31

资深工程师的沟通失效:你在防复杂度,业务在追速度

文章以两条业务环路解释资深工程师的核心工作:市场/业务端靠快速试错来降低不确定性,服务端则靠稳定、可理解、可调试的代码来控制复杂度。两者在公司里并行运转,导致工程师反复追问'为什么又要加功能',而业务方困惑'为什么就是不做'。作者认为高级工程师真正擅长的是拒绝不必要的构建、复用已有能力,并把这种能力包装成一个问句——'Can we try something quicker?'——来同时回应业务对速度的渴求与自己对复杂度的警惕。他还进一步提出为速度与稳定各建一套系统(Speed 版与 Scale 版)的解耦思路,并指出 AI 在加速市场反馈环路的同时,正在破坏系统的可理解性且不承担任何责任。适合关注组织沟通、系统演进与 AI 时代工程职责的工程师阅读。

www.nair.sh · 13 min · Engineering Culture · Software Engineering · System Design