惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Scott Helme
Scott Helme
N
Netflix TechBlog - Medium
AI
AI
Security Latest
Security Latest
GbyAI
GbyAI
P
Proofpoint News Feed
Y
Y Combinator Blog
A
Arctic Wolf
G
Google Developers Blog
U
Unit 42
爱范儿
爱范儿
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
Vulnerabilities – Threatpost
Know Your Adversary
Know Your Adversary
Cisco Talos Blog
Cisco Talos Blog
T
Tor Project blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
L
Lohrmann on Cybersecurity
C
CERT Recently Published Vulnerability Notes
C
Check Point Blog
B
Blog RSS Feed
The GitHub Blog
The GitHub Blog
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 【当耐特】
博客园 - Franky
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
C
Cisco Blogs
云风的 BLOG
云风的 BLOG
NISL@THU
NISL@THU
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Microsoft Security Blog
Microsoft Security Blog
T
The Blog of Author Tim Ferriss
阮一峰的网络日志
阮一峰的网络日志
Latest news
Latest news
L
LINUX DO - 最新话题
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
美团技术团队
WordPress大学
WordPress大学
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
大猫的无限游戏
大猫的无限游戏
The Hacker News
The Hacker News
Simon Willison's Weblog
Simon Willison's Weblog
V
V2EX
Project Zero
Project Zero
博客园_首页

I'm Marcus Blog

又回到四十年前 坚持坚持再坚持 波士顿 真善美八卦经 「好吃到感动!」才四颗星 本博客的前世 扭曲的需求曲线 微波炉的进化史 「坏」的本质 2026.05.17 博客阅读周记 渐渐失控的服务器群 实质正义与程序正义 我的语文天赋 瀑布大瀑发 不要提高博客的写作效率 当智力成为廉价品 传送门:第 4 期 BlogBlog.Club 同乐会汇总 被冷落的感官 狗尿尿 拔智齿 小玩具 Ubuntu 变味了 AI 对等法则 2026.05.03 博客阅读周记 金鱼脑 想坚持下去就不要设目标 我的钢琴作品《当一切结束时》 拇指定律👍👎 「像」就是「是」 你所愿的,也许是他所恨的 2026.04.26 博客阅读周记 孩子不是白纸 美国邓丽君 静音耳机 重审人的独特价值 尽量避免切换任务 2026.04.19 博客阅读周记 酷炫的 ANSIWAVE BBS 在美国报税 纽扣问题 MaMa 的奇妙冒险 论健身房 博客是爱,不是日记 2026.04.12 博客阅读周记 早餐店关门了 永生意味着什么 K. 522 终于可以下载 DDR7 内存了 真的不知道 黄金的金融地位 渐渐丧失的能力 敏感话题⭕错误言论❌ 挂画 逻辑的边界是底线 下课铃响了 「整齐划一」与「熵」 女人的简化版 旅行中,请假 住在宾馆里 理想的日常 来玩玩新开发的小游戏吧 「教宗都叫好」破产了 最近对各种资产价格的看法 造物主为什么选择三维空间 2026.03.22 博客阅读周记 年代感发型 带着孩子去芝加哥零元购 现在大概三点钟 收银的小孩 纯数字网址 减肥神汤「四海一家鲜」 2026.03.15 博客阅读周记 修签名墙 删网 忍不住测量了一下 花两个月写的一首曲子🎵 真诚地闭嘴 断网的权限 传送门:第 2 期 BlogBlog.Club 同乐会汇总 养坏蛋 为什么自由软件最强大 「习俗」伪史 互联网的零测集 旁听了油画鉴赏课 2026.03.01 博客阅读周记 Claude 喜欢我 关灯 触发唱歌行为的四个词组 Jeopardy! 「无时无刻」与「没日没夜」 二十一世纪的愚昧 2026.02.22 博客阅读周记 谦虚谨慎与你的神同行 从小「培养品格」真的有用吗 S-word Lie-to-Children 找回童年的快乐 小区散步 2026.02.15 博客阅读周记 💩与🍋
软件架构与成功之母
2026-04-22 · via I'm Marcus Blog

今天读到 Eltrac 的 Clean Architecture 读后感,觉得还挺有意思的,于是想插入几句自己的看法。

首先让我感觉有意思的地方是,我没有想到「软件架构」这种东西,如书中所说,真的几乎没有什么进化和改变。比如书里提到的 SOLID 原则和测试驱动的方法,就已经是 OOP 里经典到入土了的教义。

SOLID 原则争议

网上对 SOLID 的批判声是排山倒海,不把经典批倒批臭怎么能展现新生代的酷炫呢?

这里就不展开这个大粪坑了。之后再来掏粪

关于架构的书籍我没有读过很多,但是一个从小学开始就喜欢手搓代码为生的非科班半码农,我对架构的理解就是从一次一次「推倒重建」的血泪经历中建立起来的。在设计软件的早期作出的任何一个小小的偷懒设计,到了后期都会复利增长成巨大的屎山代码。

就拿我目前的工作来说,有一个非常底层的组件就是把一个字符串反解成一套用于初始化各个对象的配置。这套东西的设计经历过几个版本:

  • 最早的时候就是把字符串传来传去,每个对象都去同一个串里找属于自己的字符,代码恶心不堪。
  • 第二套方案,字符串被大致切割,预处理后派发给各个对象,再在构造函数中读取子串。但是最后每个对象都要写解析逻辑,代码重复度高,我出于厌恶又给推翻了。

最终1的设计是一套被动声明系统:每个需要配置的类只需声明一个 Schema,不用实际负责解析字符串。接收字符串的组件负责统一采集所有的 Schema,照着里面的指示将字符串中对应部分解析出来填入对象的指定域。为了简化声明的表述,我还额外开发了一套 DSL2,甚至连「有朝一日会出现 AI」这样的可能性都考虑进去了,让 Schema 里的每一项都可以附加元数据,帮助 AI 理解配置的逻辑与可调范围。八年来已经有无数的核心业务逻辑堆砌在这个底层组件上面,目前看来这个架构仍然稳如泰山,而且居然跑赢了时代,让现在接入 AI 自动配置成为可能。这算是我感到自豪的一次架构迭代。

而在这次经验中,我学到了很多架构的技巧(比如函数式编程的思维)。其实这些技巧和理论早就都写进了教科书,普通的软件工程的学生可能都在课上听过。但是,没有撞到南墙,是不知道北边为什么才是出路的;没有见证过一种架构的崩溃,就不能深刻到另一种架构或理论为什么重要。


「失败乃成功之母」——这不是一句安慰人的鸡汤文,而是一个事实:

  • 失败的经验比成功的结果要更值钱!
  • 失败的经验比成功的结果要更值钱!
  • 失败的经验比成功的结果要更值钱!

为什么科技界在大量裁员的同时,各个公司都在亿万美元疯抢 AI 人才?其实大家在疯抢的,除了好用的脑子之外,更重要的是「哪些道路试过行不通」的经验!道理很简单:在 AI 这个光速迭代的时代,走上一条歪路导致的时间和算力的损失都是不可估量的。

失败的经验远比成功的经验多,但是失败的记录却远比成功的记录要少。很少有人会发表「失败经验」的论文,都是悄悄把失败装在脑子的角落里,然后很可惜,大部分人就会把更值钱的这部分渐渐遗忘掉

在「数据就是一切」的 AI 时代,「没有被充分分享的失败经验」意味着什么呢——每个人不被 AI 替代的价值之所在吧!

  1. 希望如此吧。 ↩

  2. Domain Specific Language,就是在一种编程语言中创造另一种小方言。 ↩