小型编程技巧

许多程序员仍然认为 shell 快捷键、编辑器宏和小型 CLI 技巧对日常生产力极其重要,尽管 AI 编程工具越来越普遍。评论者对“手写代码”和深度工具熟练度,与把任务交给 LLM 进行了对比,认为 AI 很适合搜索、搭脚手架,以及通过示例学习新命令,但它不能取代对代码、架构或底层优化的理解。一个反复出现的主题是,这些微技能会随着时间积累价值——尤其是在调试、导航和性能工作中——不过也有人指出,如今 AI 往往可以按需生成或回忆这些内容,因此它们更容易被遗忘或贬低。

手工编码 vs AI 辅助编码

  • 许多评论者仍然“手写代码”,把 LLM 主要用作:
    • 更聪明的参考 / 搜索引擎,用于语法、API 或库的选择。
    • 代码审查者或橡皮鸭,用来发现低级错误。
  • 有些人表示,LLM 生成的代码与自己编写相比,理解和验证所需时间差不多,因此生产力提升有限。
  • 少数人描述了深度、对性能关键或高度特殊的工作场景,在这些场景下 LLM 没什么帮助,甚至会给出错误答案;他们更喜欢不中断的心流和直接编码。
  • 另一些人已经大幅转向 AI 辅助或 agentic 工作流,尤其用于样板代码和个人项目,但在工作中仍保留手动控制。

在“AI 时代”,小技巧还重要吗?

  • 几个人表示,shell/编辑器技巧依然每天都很有价值,尤其是在导航、历史记录和快速编辑方面,因为向 LLM 提问往往更慢。
  • 也有人觉得,既然 AI 可以按需生成命令或脚本,这类技巧的重要性就降低了。
  • 还有人把 AI 看作一种发现技巧的新方式——例如,观察 agent 的命令和选项,可以学到自己原本不知道的工具。
  • 也有人担心,把太多事情外包给 AI 会侵蚀技能,并减少将技巧内化的机会。

无分支和减少分支的代码

  • 一个讨论线程主张在可能时“避免分支”,建议:
    • 通过移除不必要的 if 来简化代码。
    • 使用查表、提前返回、专门化例程或模糊逻辑。
  • 反对意见:
    • 无分支代码通常可读性较差,而现代编译器已经会优化许多模式。
    • 真正的“无分支”优化(例如条件移动、向量化混合)很小众,只应在剖析之后考虑。

Shell 使用、历史记录和导航

  • 对高级历史记录和目录工具给予了高度评价:
    • 带模糊搜索的 Ctrl-Rhistory | grep、zsh 的子串搜索、fish 的按前缀历史,以及 Atuin 和 zoxide 这类第三方工具。
    • 有些人把重复的临时命令移到 Makefile/justfile 中,以提高可复现性,而不是依赖历史记录。
  • 各种导航技巧:用于跳转到 .. 的别名、在相关目录之间切换的小脚本、能保留工作目录的 SSH 辅助工具。

知识分享与文化

  • 对团队聊天里每天发“技巧”的做法看法不一:
    • 有些人认为这是有价值的指导和文化建设。
    • 也有人觉得面向广泛受众的每日技巧既吵闹又像作秀,更偏好可自选加入的频道或整理好的文档/速查表。
  • 总体上大家都同意,微小但恰到好处的技巧(比如合适的 CLI 工具或快捷键)可以果断解决现实中的棘手问题。