Notes: The Best Programmers I Know
- Read the Reference 阅读所使用的工具的参考文档
- Know Your Tools Really Well 从根本上理解自己使用的技术
- Read The Error Message 认真阅读错误信息,并尝试理解其中的内容
- Break Down Problems 分解问题
- Don’t Be Afraid To Get Your Hands Dirty 不害怕弄脏双手
- Always Help Others 乐于助人的心态
- Write and Share 掌握写作方式就是掌握思考方式
- Never Stop Learning 坚持学习,终身学习
- Status Doesn’t Matter 头衔不重要
- Build a Reputation 光做得好还不够,要让你的工作被大家看到
- Have Patience 对计算机和人类都保持耐心,尤其是对自己
- Never Blame the Computer 永远不要责怪计算机
- Don’t Be Afraid to Say “I Don’t Know” 不要害怕说“我不知道”
- Don’t Guess 面对模棱两可,拒绝猜测的诱惑 The Zen of Python
- Keep It Simple 聪明的工程师编写聪明的代码,卓越的工程师编写简单的代码

TIL-2510
- https://0github.com 使用 LLM 做 PR diff 查看
- Set direction, don’t set end point. By Dave Snowden
- 一个人只能学到他准备好去学习的东西
- 不要把别人得到的东西当做是自己失去的东西 via
TIL-2508
- https://fx.wtf 交互式 JSON 查看、过滤,类
jq+ 支持 JS 语法比如.map(x => x.name) - https://manuals.plus/zh-CN/ 一站式电子设备在线手册说明书,非常清晰简洁方便
Notes: Everything I know about good system design
GitHub 工程师 @sgoedecke 的文章,一些笔记:
- software design is how you assemble lines of code, system design is how you assemble services. 程序设计是组装代码,系统设计是组装服务
- a complex system usually reflects an absence of good design,复杂的系统通常反映了缺乏良好的设计
- You should try and minimize the amount of stateful components in any system. 尽量无状态服务,有状态意味着在重启、恢复时需要持久化数据,要考虑数据一致性等,增加了复杂度和成本
- you should be able to go through the database schema and get a rough idea of what the application is storing and why,好的数据库设计是能够从表结构快速了解应用存储的数据和关系,从而了解应用的业务逻辑
- Background jobs should be your first choice for slow operations,后台异步处理耗时任务
- The typical pattern is that junior engineers learn about caching and want to cache everything, while senior engineers want to cache as little as possible. 初级工程师希望缓存所有内容,而高级工程师希望尽量少缓存。原因:缓存是有状态的!
- put “this thing happened” on the queue,把某个事件发到消息,而不是某个 job,让其他服务订阅者自行决定要做的事情。比如新用户注册事件,A 服务发送欢迎邮件,B 服务扫描帐号,C 服务设置更多权限等
- pushing and pulling, pull 模式服务简单,push 模式节省资源,没有最优只是合适权衡
- focus on the “hot paths”: the part of the system that is most critically important, and the part of the system that is going to handle the most data. 关注热路径:系统中最重要的部分,以及系统中将处理最多数据的部分。
- log aggressively during unhappy paths, log 除了记录预期结果,更重要的是帮助排查为什么不预期发生
- It’s also important to decide what happens when part of your system fails.
- good system design is going to look like nothing
TIL-2507
- Apple Devices Screen Sizes
- 谨记:自己决定不了的事情,不算数的
TIL-2506
- PEBCAK, Problem Exists Between Chair and Keyboard 问题出在椅子和键盘之间,指人为原因
- Force on improving, not proving
- Never fix a bug and refactor in the same pull request, via Yak Shaving
- It must be worth it even if it doesn’t work
2025 State of Web Dev AI
- 模型 #ChatGPT 91% most-used, #Claude #Gemini #DeepSeek ,平均使用 4个
- Hallucination & inaccuracies 幻觉和不准确依然是最大问题
- AI IDE: #Cursor #Zed #Windsurf #VSCode, 代码生成服务:v0, Bolt
- 编码助手: #GitHub Copilot 70%,Codeium, Tabnine, Supermaven(已被 Curor 收购)
- AI 生成代码比例:平均 28%。69% 的使用者通过 AI 生成的代码比例都不到 25%,只有 8% 的使用者生成的代码比例超过 75%。
- Vercel AI SDK 是最受欢迎的 SDK
TIL-2505
- Don’t ask to ask, just ask
- Developer Roadmaps, 各种开发教程+练手 projects
- LocalCan, develop your apps locally with
.localdomains, #Ngrok alternative.
TIL-2504
- 取消微信的健康权限,比如微信运动读取步数,很明显提高微信打开时的 loading 速度
Bento Grids,「弁当」日语便当。Bento Grid 的特点是内容在卡片内,不容大小内容的卡片组合展示,类似「🍱」效果- 沉浸式翻译出的 PDF 识别 https://github.com/funstory-ai/BabelDOC
- nanobrowser 浏览器插件+AI=网页自动化
defaults write -g NSStatusItemSpacing -int 8decrease macOS’s status bar item spacing- Yak Shaving, Stay focused on the task at hand, and don’t shave that yak!