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

詳細

プラグマティック・プログラマー リファレンス

David Thomas と Andrew Hunt による「The Pragmatic Programmer」に基づいた、実践的なソフトウェア開発の原則を網羅したリファレンスです。このスキルでは、より優れた開発者になるための普遍的なアドバイスを提供します。

このスキルが有効になるとき

このスキルは、次のような場合に自動的に有効になります。

  • ソフトウェア開発のベストプラクティスについて話し合うとき
  • デバッグの戦略が必要なとき
  • コードの重複(DRY)を検討するとき
  • ツールや自動化について考えるとき
  • プロジェクトの見積もりや計画について話し合うとき
  • 開発ワークフローを見直すとき

基本理念

「自分の仕事に誇りを持ちましょう。」 「自分の仕事について考えましょう。」

プラグマティックなプログラマーは、次のように行動します。

  • 自分のキャリアと仕事に責任を持ちます
  • 言い訳をせず、選択肢を提示します
  • 状況の被害者ではなく、変化を起こす存在です
  • 継続的に学び、適応します

クイックリファレンス

基本原則
原則概要
DRY - 繰り返しを避けるあらゆる知識は、ただ一つの表現で表します
直交性独立性を保ち、疎結合にします
可逆性意思決定を取り消せるようにし、ロックインを避けます
トレーサーバレットエンドツーエンドの骨組みを使って、素早くフィードバックを得ます
プロトタイプ決断する前に学び、プロトタイプは破棄します
ドメイン言語問題領域に近い形でプログラミングします
見積もり正確な見積もりを出す方法を学びます
実践的なテクニック
実践概要
プレーンテキストの力アクセスしやすい形式で知識を保持します
シェル活用術コマンドラインを使いこなします
デバッグ人を責めず、問題を解決します
テキスト操作テキスト処理ツールの使い方を学びます
コードジェネレーターコードを生成するコードを書きます
契約による設計権利と責任を定義します
アサーティブプログラミング起こり得ないことにはアサーションを使います
疎結合モジュール間の依存関係を最小限にします
リファクタリング継続的にコードを改善します
テスト早く、頻繁に、自動でテストします
自動化手作業の手順を使わないようにします

プラグマティックなヒント

本書の重要なヒント:

  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」の概念に基づいています。

コメント