PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
Soft_Job
[心得] 2025铁人赛心得:AWS 系统设计哲学
楼主:
vansama
(抽著菸斗看着书)
2025-11-14 18:33:49
(代po)
各位前辈大家好,今天我来忝不知耻的宣传(? 发自内心的感谢版上的大大们,
并问问看能否在致谢铭中感谢版上曾经的援手
而想跟大家分享的是<AWS架构师的自我修养:30天云端系统思维指南>
https://ithelp.ithome.com.tw/users/20162031/ironman/8504
在这个AI时代中 - 相关系列文与前辈们也探讨过 - 作为工程师“我们现在可以怎么做”与
“未来我们该怎么做”
而这次铁人赛就是分享在工作中一路来被PM追着MVP、跟UIUX吵、和SA讨论规格、思考QA的
情境是操作者能操作猪来的吗? 种种不知凡几的思绪融合成整的产品级的系统设计心得。
系列主要分享软件开发者在接下来的世代中(至少是下一个10年)最好能够具备哲学诘问思维
,追问系统存在的目的第一性(即领域驱动, DDD)。
系统设计可以被视为一种概念化的仿生学,有它的生老病死环节﹑具备有机性与生长性,需
紧紧依循目的设计。
所以本次心得是依照着我经验中观察到的产品开发的所有流程,只能说是主观多数经验了,
若有与各位大大的经验与流程不服-我菜我谦卑,求鞭小力点Orz
(1)产品发想与机会探索=>(2)需求定义与优先排序=>(3)产品设计与使用者体验=>(4)技术规
划与系统设计=>(5)软件开发与持续整合=>(6)验证与品质保证
第一站:产品发想与机会探索-奠基哲学 (Day 1-5) - 城市的规划蓝图
在动工之前,我们先站在空地上,思考这座城市为谁而建、要解决什么问题。
Day 1 线上服务即数位生物:系统设计不是技术堆砌,而是有目的导向的创造。
Day 2 如何将模糊的商业需求转化为清晰的系统边界,怎么透过符号学与哲学中的公式工具
解构抽象需求,透过现象层=>本质层=>存在层,来为我们细化并提前分析后续须亦考虑的面
向。
Day 3-4 深入 DDD 的核心:如何用抽象建模识别领域边界,如何用聚合设计保护业务不变式
。
Day 5 将视角转向使用者:User Story 与 Scenario Flow 让我们从“市民”的角度理解城
市,确保设计不是闭门造车。
第二站:技术决策 (Day 6-9) - 城市的基础建设
有了蓝图,我们开始面对现实的约束:预算有限、时间紧迫、需求会变。这没有绝对的最佳
解,只有当下情境中的最适解,每一个技术选择都伴随着代价。
Day 6 探讨 Trade-off 的艺术:在成本、性能、可维护性之间找平衡,就像城市规划中要在
地价、交通便利性、环境品质间做抉择。Lambda、ECS、EC2 的选择,从来不是“哪个更好
”,而是“哪个最符合当下目的”。
Day 7 将领域模型映射为技术架构:单体、微服务、Serverless 对应不同业务复杂度与团队
成熟度的务实选择。
Day 8 将前端设计系统与原子化架构引入,说明了从最小的 UI 组件到完整的业务流程,如
何保持设计的一致性与可扩展性。
Day 9 面对高并发场景,如何用限流、降级、熔断等策略保护系统,如同城市的交通管制与
应急预案。
第三站:数据与状态 (Day 10-11) - 城市的记忆系统
数据是系统的灵魂,同时也是我们在执行某一个动作后所被记录下来有其意义的影响 - 交
易记录、用户行为、系统状态。如何存储、如何快速检索、如何保证一致性?
快取雪崩、数据不一致这些技术问题,本质上是我们对业务逻辑理解不够深刻的体现。
Day 10 深入快取策略的哲学:时间与空间的权衡、一致性与性能的取舍。
Day 11 探讨数据库设计:从领域模型到 Schema 设计,从 ACID 到最终一致性,每一个选择
都反映了我们对业务本质的理解程度。
核心反思:数据是系统的灵魂,而如何对待数据,体现了我们对业务的尊重程度。
第四站:工程实践 (Day 12-15) - 城市的建设流程
再好的设计,如果无法安全、高效地落地,也只是空中楼阁。
Day 12 建立版本控制与代码审查文化,确保团队协作的品质。
Day 13 用 OpenAPI 等工具建立团队间的契约,让前后端、不同服务间能够并行开发而不互
相阻塞。
Day 14 将基础设施代码化(IaC),让系统的部署可重复、可追溯、可回滚。
Day 15 建立 CI/CD 流水线,让从代码提交到生产部署的每一步都自动化、可观测。
第五站:环境与体验 (Day 16-18) - 城市的使用体验
系统不是孤立存在的,它运行在多个环境中,被不同角色的人使用。一个难以除错、难以部
署的系统,再性感的架构也会在长期维护中逐渐腐化。
Day 16 探讨多环境治理:开发、测试、生产环境的隔离与一致性,如同城市的开发区、试验
区与成熟区的规划。
Day 17 关注开发者体验(DX):好的内部工具与除错设计,能让团队事半功倍。
Day 18 制定系统验收准则:如何定义“完成”,如何确保交付品质符合预期。
第六站:品质保证 (Day 19-21) - 城市的安全检验
测试不是开发完成后的附加步骤,而是设计阶段就应该考虑的核心能力。可测试的系统往往
也是设计良好、边界清晰的系统。
Day 19 从使用者视角进行 UX 测试与可用性验证,确保系统真正解决了用户的问题。
Day 20 建立从单元测试到集成测试的完整测试策略,让系统的每一层都有品质保障。
Day 21 进行性能与压力测试,识别系统在极限负载下的瓶颈与风险点。
第七站:安全与韧性 (Day 22-25) - 城市的防御体系
韧性不是被动的容错,而是主动的设计选择。系统一定会出错,不是从不出错(或者可能只
存在印度人嘴皮子上),我能做得是能够主动引爆错误并快速恢复,从失败中学习。
Day 22 引入零信任架构:从边界防御到身份验证的思维转变,重新定义安全边界。
Day 23 建立可观测性三大支柱(Logs, Metrics, Traces),让系统能“对自己说话”,及
时发现问题。
Day 24 用 SRE 方法论定义与衡量可靠性:SLI、SLO、错误预算等概念,让可靠性从口号变
为可量化的指标。
Day 25 透过混沌工程主动验证韧性,在受控环境中提前暴露系统的脆弱点。
第八站:演进与持续改进 (Day 26-29) - 城市的有机成长
系统不是一次性交付的产品,而是持续演进的生命体。
Day 26 建立数据驱动的产品决策机制:从 A/B 测试到北极星指标,让每一次改进都有数据
支撑。
Day 27 识别与偿还技术债:用技术债象限与童子军规则,让系统在演进中保持健康。
Day 28 关注数据治理与隐私保护:在 GDPR 等法规要求下,如何设计合规的数据生命周期。
Day 29-1 探讨架构演进的策略:用绞杀者模式与 BFF,实现从单体到微服务的平滑过渡,避
免大爆炸式重写的灾难。
Day 29-2 引入 AI 协作框架:在 AI 时代,架构师如何与 AI 工具协同,放大自己的思考与
决策能力。
核心价值在于理解商业逻辑、业务实现(每个技术决策都涉及成本、风险和目的的权衡),掌
握领域知识是 AI 时代是我们未来的、真正的竞争壁垒。
我认为未来我们会逐步朝着架构师迈进,当技术难易度水位随着AI大爆发上升,架构的理解
就像是观察洋流的流向与水位下的暗礁,不同的Domain就像是岛屿一般,有些领域未来势必
可以用AI模型直接完整做出来,这时它就变成了水面下的暗礁了。
但要看它长得对不对、有没有什么真实程式语言上的隐患,和未来要怎么扩张就很考验我们
对于这个数位新生命的期许了,在现行AI的设计上还是编向于链式思考(Tier 1),而非网式
思考(Tier 2),这目前也只能靠人类来进行权衡与规划 - 哪个链式思考能得出 龙X汽车 与
114514 的关联啊(恼
我很努力缩短摘要,但真的好难(系列文章通篇快90万字...吧?),感谢各位看到这里的前辈
与大大们Orz,在我当初转职的时候提供的讨论与愿意回复我的询问私讯让我能够成功上岸
,真的是非常非常非常感谢,要谢的人太多了,谢谢如天一般的版大们
楼主: vansama (抽著菸斗看着书)
2025-11-14 18:53:00
这里是整理好的NotebookLM,可以直接玩玩看~
https://bit.ly/4nYlgEp
作者:
hermithsieh
(hermit)
2025-11-14 20:03:00
推
作者:
melancholy07
(雾雨)
2025-11-15 03:40:00
推个
作者: kor525
2025-11-15 21:13:00
推
作者:
cloudgoogle
(漫步在云端)
2025-11-15 21:33:00
推
继续阅读
Re: [讨论] 为什么比较像样的公司一堆是博弈?
Breve
[讨论] AI对软件工程师的影响
scitamehtam
Re: [请益] 自制工具无偿让内部使用,竟被公司禁掉?
kurtsgm
Re: [请益] 自制工具无偿让内部使用,竟被公司禁掉?
dream1124
Re: [请益] 自制工具无偿让内部使用,竟被公司禁
bxc
Re: [请益] 自制工具无偿让内部使用,竟被公司禁
brucetu
[请益] 自制工具无偿让内部使用,竟被公司禁掉?
ericjc
[群组] Coding Love 程式群
Breve
[讨论] 又在招募资安分析师了
zxcv150150
[请益] 请问台北的RD/SQA等职缺的年薪是几个月?
dreambegins
Links
booklink
Contact Us: admin [ a t ] ucptt.com