mcpField
P
pragmatic-programmer

pragmatic-programmer

github.com/grndlvl开发1743 次安装38 周前更新
代码仓库

关于 pragmatic-programmer

pragmatic-programmer 是基于《The Pragmatic Programmer》的软件开发原则参考技能,面向希望改进日常开发实践的开发者。内容涵盖设计、调试、测试、自动化、沟通与持续学习。

主要功能

  1. 01DRY、正交性与可逆性原则
  2. 02调试、重构与测试实践
  3. 03命令行与文本处理技巧
  4. 04自动化与代码生成建议
  5. 05估算、沟通和持续学习

适用场景

  1. 01评估代码重复与模块耦合
  2. 02规划调试、重构或测试工作
  3. 03改进团队开发流程与沟通

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/grndlvl/software-patterns --skill pragmatic-programmer

安装后在 Claude Code 中输入/pragmatic-programmer确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

practices/
assertive-programming.md
automation.md
code-generators.md
debugging.md
decoupling.md
design-by-contract.md
plain-text.md
refactoring.md
shell-games.md
testing.md
text-manipulation.md
principles/
domain-languages.md
dry.md
estimating.md
orthogonality.md
prototypes.md
reversibility.md
tracer-bullets.md

详细介绍

Pragmatic Programmer 参考指南

这是一份全面的实用软件开发原则参考,基于 David Thomas 和 Andrew Hunt 的《The Pragmatic Programmer》。这项技能提供了助你成为更优秀开发者的历久弥新建议。

此技能的触发条件

遇到以下情况时,此技能会自动触发:

  • 讨论软件开发最佳实践
  • 需要调试策略
  • 考虑代码重复(DRY)
  • 思考工具与自动化
  • 讨论项目估算或规划
  • 审查开发工作流

核心理念

“关心自己的手艺。” “认真思考自己的工作。”

实用主义程序员:

  • 对自己的职业生涯和工作负责
  • 不找借口,而是提供选项
  • 是变革的推动者,而非环境的受害者
  • 持续学习并适应变化

快速参考

基础原则
原则概要
DRY - 不要重复自己每条知识都应有唯一的表示形式
正交性保持事物独立、解耦
可逆性让决策可逆;避免被锁定
示踪弹通过端到端骨架快速获取反馈
原型先学习再承诺;原型完成后应丢弃
领域语言用贴近问题领域的方式编程
估算学会给出准确的估算
实用技巧
实践概要
纯文本的力量以易于访问的格式保存知识
Shell 技巧掌握命令行
调试解决问题,而不是归咎于人
文本处理学习文本处理工具
代码生成器编写能生成代码的代码
契约式设计明确权利与责任
断言式编程如果某事不可能发生,就使用断言
解耦尽量减少模块间的依赖
重构持续改进代码
测试尽早测试、经常测试、自动化测试
自动化不要依赖手动流程

实用主义者的建议

书中的关键建议:

  1. 关心自己的手艺 - 如果你不关心,为什么要用一生来开发软件?
  2. 认真思考自己的工作! - 关闭自动驾驶模式,主动掌控工作
  3. 提供选项,不要找借口 - 不要说做不到;说明可以怎么做
  4. 不要容忍破窗 - 发现糟糕的设计和错误的决策时,就把它们修正
  5. 成为变革的催化剂 - 向人们展示未来,并帮助他们参与其中
  6. 牢记全局 - 不要过于专注,以至于忘了自己在做什么
  7. 将质量纳入需求讨论 - 让用户参与确定质量标准
  8. 定期投资于自己的知识组合 - 养成学习的习惯
  9. 批判性地分析所读所闻 - 不要被供应商或媒体炒作左右
  10. 说什么和怎么说同样重要 - 沟通很重要

知识组合

像管理金融投资组合一样管理自己的知识:

  • 定期投资 - 有规律地学习新知识
  • 分散投资 - 熟悉多种不同技术
  • 管理风险 - 在稳妥技术与高风险、高回报技术之间取得平衡
  • 低买高卖 - 在新兴技术成为主流之前就开始学习
  • 审查并再平衡 - 定期重新评估
建议:
  • 每年学习一门新语言
  • 每月读一本技术书籍
  • 也要阅读非技术类书籍
  • 参加课程
  • 参与本地用户群组
  • 尝试不同的环境
  • 关注最新动态(新闻简报、博客、会议)

沟通

  • 明确自己想说什么
  • 了解受众
  • 选择合适的时机
  • 选择合适的风格
  • 让内容赏心悦目
  • 让受众参与进来
  • 做一个倾听者
  • 及时回复他人
  • 文档是项目的一部分,而不是事后补充

语言翻译说明

示例使用通用伪代码。请根据所用语言进行调整:

  • PHP:class、function、->、类型提示
  • JavaScript/TypeScript:class、箭头函数、.
  • Python:class、def、.、类型提示
  • Java/C#:直接映射并使用访问修饰符

基于 David Thomas 和 Andrew Hunt 所著的《The Pragmatic Programmer: Your Journey to Mastery》中的理念。

评论

支持 Markdown