输入标题、正文或标签,查找知识。

最近文档

软件工程 / 构建发布与运行构建环境与持续集成:为什么你电脑上能跑还不够你把收藏功能交给同事,他安装以后却打不开。原来你电脑用的是一个 Node 版本,他用另一个;你本地还有没提交的文件。要交付软件,不只需要源代码,还要让别人按照明确步骤得到能运行的结果。软件工程 / 构建发布与运行部署、发布、回滚与观察:把功能交到用户手里代码已经合并,收藏按钮却没出现在网站上。或者网站更新了,点击时提示找不到数据表。交付涉及代码、配置、数据和流量,不能只用“构建成功”判断完成。本章按一次小发布看这些环节怎样配合。语言基础 / TypeScript跨语言对照TypeScript 独有能力与缺失能力清单这一章适合在学完基础后回查:某个能力是 TypeScript 自己提供的,还是来自 JavaScript、浏览器、Node 或第三方库?先把来源认清,再讨论它擅长什么、缺少什么,就不会把“语言没有内置”误解成“整个生态都做不到”。语言基础语言基础学习路线:以 TypeScript 建立可迁移的编程模型学 TypeScript 时,你会同时遇到 JavaScript 的运行规则和 TypeScript 的类型规则。先把这两件事分清,很多报错就好理解了。按顺序做完前面的练习,再读跨语言对照;对照章节用于解释差异,不要求你同时学会五门语言。后端知识 / 身份权限与安全认证、授权与多租户:登录成功只是第一步用户把地址里的订单号从 42 改成 43,居然看到了别人订单。这不是登录失效,而是资源授权缺失。后端要分别确认调用者是谁,以及这个调用者是否能对这份数据执行当前操作。
1 / 5 · 构建环境与持续集成:为什么你电脑上能跑还不够
↑↓ 浏览 Enter 打开Esc 关闭
Damnatiox
知识文件夹

开源项目架构研究

现代 Java Backend Engineering 学习路线:开源项目架构研究

0 子目录8 文档
Java 开源架构研究:版本与证据、启动与请求、模块与依赖、数据与事务、安全与运行、横向对照

CHAPTER OVERVIEW · 章节概览

带着固定问题进入源码,先确认版本和证据,再追踪请求、数据与模块边界;不同项目用同一框架比较。

本章学习路线

箭头表示建议的学习顺序;先理解问题,再逐步进入实现与实践。

flowchart LR N0["01 版本与证据"] N1["02 启动与请求"] N2["03 模块与依赖"] N3["04 数据与事务"] N4["05 安全与运行"] N5["06 横向对照"] N0 --> N1 --> N2 --> N3 --> N4 --> N5

按顺序学习

8
Java 开源项目统一源码研究模板读开源项目不用从第一个目录一路读到最后。先固定版本,选一条具体请求,沿着入口、业务处理和数据保存走一遍。下面的记录格式帮助区分代码直接证明的事实、自己的推断和还没验证的问题。Spring Petclinic 架构研究入口Petclinic 的业务比较直观,适合第一次练习读 Spring 应用源码。可以选“查看主人及宠物信息”这条路径,从页面或接口找到控制器,再跟到数据访问和测试,不必先通读所有配置。Spring Modulith 架构研究入口读 Spring Modulith 源码时,可以先选一个模块验证或事件测试作为入口。看测试期待什么结果,再追踪实现,比只看模块名称更容易理解它解决的问题。本篇保留固定快照,方便重复查找。Spring Petclinic Microservices 架构研究入口这份 Petclinic 示例把熟悉的业务拆到了多个服务。可以与单体版本对照:一次查询多经过了哪些网络调用,配置与发现放在哪里,某个服务停掉后会怎样?这些变化比服务数量更值得研究。Keycloak 架构研究入口Keycloak 仓库很大,先选一个登录流程或协议处理入口即可。沿请求找身份、会话和令牌相关代码,同时阅读对应测试。本篇讨论范围以固定快照为准,不要求初学者一次理解整套身份平台。JHipster Generator 架构研究入口JHipster 有两层值得分开看:生成项目的工具,以及它生成出来的应用。先用一个选项观察生成结果,再回到模板和测试找原因,就能看清配置怎样变成代码。RuoYi-Vue-Plus 架构研究入口阅读 RuoYi-Vue-Plus 时,可以从一个带权限的业务接口入手,跟踪它怎样进入服务层、访问数据并返回前端。再比较租户和权限条件在哪里加入,不要只根据目录名推测实际行为。Spring AI 架构研究入口研究 Spring AI 时,先选一次模型调用,跟踪请求怎样经过客户端与扩展点,再到提供商适配层。向量检索、工具调用和记忆可以分别阅读,不必把所有集成能力看成每次调用都会执行的步骤。