Fayner Brack (Medium)

RSS: https://medium.com/feed/@fagnerbrack
Fagner Brack 的 Medium 软件工程博客。

The Paradox of Fancy Tooling

The simpler the tool, the more it rewards skill Plain hammer beside an over-built chainsaw-hammer, showing simpler tools reward skill Want to come back later? Save this to. The Paradox of Fancy Toolin...
评论点赞收藏54 天前

Mockist 与 Classicist TDD 之争,本质上是 OOP 与 FP 之争

文章指出 TDD 中 Mockist 与 Classicist 的争论,本质上是面向对象编程(OOP)与函数式编程(FP)两种范式在测试领域的映射。作者认为这不仅是测试技巧的选择,更是思维范式的差异,类似于 OOP 与 FP 之间的长期辩论。
评论点赞收藏65 天前

Same Idea, Different Decade

The tools change every decade. The work doesn’t. Five identical wooden chairs in a row, each painted a different solid color against white. Want to come back later? Save this to. Same Idea, Different ...
评论点赞收藏70 天前

技术面试正在淘汰错误的人选

核心看点:作者用15年观察和大量研究数据证明,技术面试筛选的不是能力,而是焦虑耐受度、表达能力和面试官的认知偏见。文章拆解了几个关键问题:白板面试让女性候选人的通过率从100%降到0%(同一批人);MBTI人格测试的出版商自己说用它来招聘是不道德的;成长型思维筛选对工作表现预测近乎为零(d=0.02);达克效应和相似性偏见让平庸面试官无法识别真正的高手。核心论点跳出了"怎么筛人"的老话题,给出了评价面试本身质量的FATE框架(反馈、准确度、时间、精力四个维度各0-10分)。作者建议用真实的业务场景题代替算法背诵,面试官不应事先知道答案以消除相似性偏见。这不是又一篇"面试很难"的吐槽,而是有方法论、有数据、有框架的实用批判。适合所有参与技术招聘的工程师和管理者阅读。
评论点赞收藏75 天前

80年代的PDF解析器击败了Claude,他们内部还在用

作者分享亲身经历:在解析一份CIA的PDF文件时,发现一款80年代的PDF解析工具居然比Claude表现更好,而且团队内部仍在实际使用它。文章通过这一具体案例,探讨"选对工具"的朴素道理——新技术未必总是最佳方案,老旧但专精的工具在特定场景下仍有不可替代的优势。一个真实、有画面感、有实际参考价值的个人技术故事,让人想点开看看到底怎么回事。
评论点赞收藏75 天前

商业成功:运气而非能力

核心观点:创业成功常被归因于能力,但实际更多是运气使然。每个新创始人都在为前人已经付过学费的教训重新买单,信息不对称才是创业失败的真正隐性成本。文章用一排五个格子间里同样显示ERROR信息的人作为意象,讽刺创业圈"执行决定成败"的主流叙事——更关键的问题在于关键知识无法有效传承,每个入局者都在重复试错。适合对创业、商业逻辑和硅谷文化感兴趣的中文读者。
评论点赞收藏79 天前

2026年学PHP?没错,真的值得学

一篇为PHP正名的个人观点文。作者指出,技术社区对PHP的轻视往往更多反映了批评者自身的偏见与跟风心态,而非语言本身的真实缺陷。文章从PHP的实际生态地位、极高的部署普及率、低门槛实用性出发,反驳编程语言鄙视链,认为在2026年选择学什么语言应基于实际需求而非声望标签。全文有明确立场、幽默感和真实的讨论入口,适合技术从业者阅读和参与辩论。
评论点赞收藏82 天前

真正的工匠精神,不是狗屁工匠精神

核心看点:作者用航空业与软件业的工艺水平对比,犀利指出软件行业至今没学会真正的工匠精神——飞机机身左侧是精密工程、整齐标注、打磨光滑的铝合金结构,右侧却是同一机身用乱线、锈铁、胶带和废金属拼凑的垃圾堆。航空业几十年前就建立了可靠的工程标准和质量体系,而软件行业仍在用"能跑就行"的态度堆砌技术债。文章没有空泛说教,而是用一个直观的视觉比喻撕开行业痛点,让人反思什么是真正的 craftsmanship,什么只是自我安慰的 craftsmanshit。有态度、有对比、有刺痛感,适合转发讨论。
评论点赞收藏89 天前

一次学会SQL,用上30年

核心看点:SQL 是唯一建立在数学(关系代数)之上、而非技术潮流之上的编程语言,因此能在三十年里岿然不动。作者用岩石地层剖面图作比喻——上层是开裂破碎的旧 Web 技术(jQuery、Backbone、Flash、CoffeeScript),底层则是刻着 SQL 和关系代数符号的稳固基岩。观点鲜明、有画面感,能引发开发者对技术寿命与选择逻辑的讨论。
评论点赞收藏94 天前

什么是REST API——以及为什么你的大概率不是

这篇技术文章尖锐指出:大多数自称RESTful的API只满足了Roy Fielding博士论文定义的6个约束中的2-3个。作者从2000年原始论文出发,逐一拆解客户端-服务器、无状态、可缓存、统一接口(含HATEOAS)、分层系统、按需代码六个约束,用代码示例重点对比了最易被忽略的HATEOAS——没有它时客户端硬编码URL,版本变更成本高昂;有了它,服务器通过链接驱动客户端,变更无需重新部署。文章认为省略约束对内部小团队可能可接受,但公共API越扩张跳过HATEOAS的代价越大。适合所有做过或用过API的开发者自查。
评论点赞收藏95 天前

什么是真正的 REST API?为什么你写的很可能不是

大多数自称 REST API 的接口其实并不符合 REST 架构风格。文章回溯 Roy Fielding 在 2000 年提出的六项约束条件——客户-服务器、无状态、统一接口、缓存、分层系统、按需代码——并用一张可视化清单指出,大部分 API 仅满足前两项,在统一接口等核心约束上往往不合格。对习惯把任何 HTTP API 都称为 REST 的开发者来说,这是一篇及时的认知校准,帮助理解 REST 的准确定义与常见误用。
评论点赞收藏101 天前

别再拿生命周期理解 React Hooks——从一次线上事故说起

作者分享自己将无限渲染循环送上生产环境的真实踩坑经历,借此引出 React Hooks 最核心的认知误区:不要把 useEffect 当作 componentDidMount/componentDidUpdate 的替代品。依赖数组不是过滤器,而是一份契约——它声明了 effect 需要与哪些值保持同步。作者通过 WebSocket 连接调试经历悟出,把 Hook 理解为对 React 渲染周期的订阅而非生命周期时间点,代码逻辑会更清晰。还介绍了 useState 函数式更新、useRef 存储可变值等实用技巧。文章有真实个人视角和一条清晰的叙事线,对前端开发者有实际帮助,也容易引发讨论。
评论点赞收藏102 天前

《笨办法学Python》在一件事上是对的

核心看点:作者以亲身实践反驳"复制粘贴就行"的主流编程学习观,指出手动敲代码的真正价值不在于怀旧,而在于亲身经历每一种失败模式。文章用两张工作桌对比鲜明地抛出观点:左边乱糟糟但专注结果的老派程序员桌面 vs 右边干净漂亮但只在意表象的苹果设备桌面——你选哪一边?这不是关于代码风格或桌面整洁度的讨论,而是关于什么才是真正培养工程能力的学习方式。作者立场鲜明,观点有争议性,适合引发讨论和反思。
评论点赞收藏103 天前

面试刷算法,工作中用不上

作者直言:面试中的算法题(如反转链表)与真实生产工作(如事件流去重)是两种不同的技能,前者考拼图技巧,后者考验设计取舍和业务理解。通过亲身经历——一个航班票务自动化项目——说明"先交付一个能用但不完美的方案,让业务方从第一天就用起来、边用边迭代"远比"闭门造车六个月再拿出完美系统"更有效。文章不主张废除算法面试,而是呼吁诚实看待其局限,并以Canva的面试流程作为更贴近真实工作的参考。有代码示例、有真实项目细节、有鲜明立场,是值得讨论的技术观点文。
评论点赞收藏105 天前

Git:如何撤销提交而不毁掉你的职业生涯

作者回忆 2014 年一个周五下午,在 Git 中误将主分支当作功能分支执行了 git reset --hard HEAD~3,导致三天工作瞬间消失。这篇以亲身翻车经历开头的文章,分享了如何在 Git 中安全撤销提交而不酿成大祸,包括恢复命令、注意事项和避免类似灾难的工作习惯。有具体时间、具体命令、真实后果的个人教训,比干巴巴的 Git 手册更有说服力和记忆点,对经常用 Git 的开发者有直接参考价值。
评论点赞收藏107 天前

现代开源的危险

一个不领薪水的个人开发者,周末维护着自己的小项目,而这个项目躺在半数美国财富500强公司的依赖树里——这不是段子,是当今开源生态的日常。本文作者是js-cookie(npm周下载2000万,超过jQuery)的创建者,他回顾了从left-pad撤包(2016)、event-stream投毒(2018)、到xz Utils后门(2024)和Axios被朝鲜黑客攻陷(2026)等一系列标志性安全事件,指出现代开源已从Eric Raymond笔下"足够多的眼球让所有bug变浅"的分布式协作,退化为集中式注册表上维护者 burnout、无合同无问责、依赖链失控的体系。更尖锐的是,他认为LLM训练于无偿贡献的开源代码却作为产品出售,培养出"不读代码就提交"的开发习惯,进一步加剧了无人审计、无人负责的结构性风险。作者坦言:我就是js-cookie的创建者,到今天我也说不清这到底是开源的缺陷,还是开源本来的样子。
评论点赞收藏120 天前

《笨办法学Python》书评:从刻意打字中习得编程

核心看点是一位程序员时隔多年重读《Learn Python the Hard Way》的个人感悟。这本书的核心方法很简单:不复制粘贴,亲手逐行打字、运行、修错,通过52个循序渐进的练习建立肌肉记忆和调试习惯。作者特别点出"好想法是被发明的,伟大的想法是被发现的"——他2016年写过相似论点,后来发现Zed Shaw在更早的书中已经用这套方法论教了16年。文章拆解了书中从变量、文件I/O、函数到OOP和Flask Web应用的练习设计逻辑,并指出最反直觉的建议:不必每个练习都搞懂再前进,跳过卡住的部分,理解会在积累后自然到来。正文中"这不适合AI Vibe Coder"一句暗示了当前AI辅助编程热潮下这本书的独特价值——强调亲手操练的工匠式学习,而非让AI代写。有个人观察和审美判断,但整体是书评总结性质,标题平淡,互动钩子一般。
评论点赞收藏127 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。