架构演进史(四):DDD 觉醒,让代码说业务的语言
当我第一次把「工资单」从一个数据库表变成一个有行为的聚合根时,突然明白了 DDD 的意义:代码不再是「数据库的搬运工」,而是「业务规则的执行者」。 ...
当我第一次把「工资单」从一个数据库表变成一个有行为的聚合根时,突然明白了 DDD 的意义:代码不再是「数据库的搬运工」,而是「业务规则的执行者」。 ...
当我第一次看到 Phoenix 生成的代码结构时,有点困惑:为什么不是 models/、controllers/,而是 accounts/、catalog/?这不是按功能划分,而是按业务划分。 ...
2005 年,Ruby on Rails 横空出世,一句「约定优于配置」震动了整个 Web 开发界。它告诉程序员:不是你决定代码怎么组织,是框架告诉你怎么组织。 ...
刚接触后端开发那会儿,我接手了一个 PHP 项目。打开代码的那一刻,我以为自己在考古。3000 行的 index.php,SQL 语句和 HTML 混在一起,全局变量满天飞。这不是代码,这是一碗意大利面。 ...
学了这么多算法,遇到实际问题该用哪个?这篇文章用真实案例告诉你:算法选型不是考试,而是在约束条件下找最优解。 ...
10000 个敏感词,一篇文章逐个检查?太慢了。AC 自动机让你一次扫描匹配所有敏感词,复杂度从 O(n×m) 降到 O(n)。 ...
组织架构、分类目录、评论回复——这些层级数据怎么存?邻接表、路径枚举、闭包表、嵌套集,四种方案各有优劣。 ...
游戏排行榜、积分榜、延迟队列——这些功能背后,Redis 用的不是红黑树,而是跳表。为什么?因为跳表更简单、更实用。 ...
秒杀活动,10 万人同时涌入。不限流?服务器直接躺平。限流算法是系统的最后一道防线:令牌桶、漏桶、滑动窗口,各有各的用法。 ...
定时任务怎么实现?Top-K 怎么高效计算?答案都指向同一个数据结构:堆。它是任务调度器、排行榜、事件驱动系统的核心。 ...