所有主题

主题

architecture

该主题下共 6 篇笔记

architecture

  1. 分层架构上的探索实践

    把整洁架构 / 六边形架构的分层思路落进真实 ToB 项目:分包怎么演进、业务怎么自治、单测怎么跑起来,以及踩过的坑。

    15 分钟阅读
  2. 应对复杂软件的思考

    结合 SAAS 行业的项目实践,思考如何应对复杂多变的业务需求:从分离 Logic / Control / Data 改善"面条代码",到引入六边形架构与整洁架构的依赖倒置,再到用 DDD 战略设计划分界限上下文、用四色建模识别领域模型,最终让代码与业务模型对应起来。

    8 分钟阅读
  3. 面向"轨道"编程

    借鉴 Scott Wlaschin 的 Railway Oriented Programming 思路,用 Kotlin 的 Result Monad 把业务函数的成功/失败两条路径抽象成两条"轨道":通过 flatMap/flatMapError 链式组合业务函数,将异常处理与控制流从业务代码中分离,让 Logic 与 Control 解耦。

    3 分钟阅读
  4. Tomcat是如何启动的

    从 server.xml 配置出发解析 Tomcat 的整体设计:Server/Service/Connector/Container(Engine/Host/Context/Wrapper)/Executor/Listener 等核心接口的职责,并追踪 catalina.sh 启动脚本到 Bootstrap 通过反射调用 Catalina、再借助 Digester 解析 server.xml 构建出整个 Tomcat 服务器的启动过程。

    4 分钟阅读
  5. 一致性哈希

    介绍 1997 年 MIT 提出的一致性哈希算法:通过 2^32 的环形 Hash 空间让数据按顺时针落到最近的服务器节点上,解决分布式环境下的数据分布、节点故障与扩容问题,并使用虚拟节点平衡各服务器的数据堆积。

    2 分钟阅读
  6. 全局唯一ID设计

    对比分布式系统中三种全局唯一 ID 生成方案的优劣:数据库自增(简单但难扩展)、UUID(全局唯一但占空间且无序)、Twitter Snowflake(41bit 毫秒时间戳 + 区域 + 机器号 + 序列号拼成 64bit long,趋势递增)。附带 Java 与 Python 版本的自定义 Snowflake 实现,并提醒注意 NTP 时间回拨与跨毫秒序列随机化等细节。

    2 分钟阅读