別の手順...
Andy Hunt の"Pragmatic Thinking and Learning - Refactor Your Wetware" (これには直接触れていません) を読んだ後、言及する価値のあるヒントをいくつかピックアップしました。
行動を観察する:
UIがあればなお良し。アプリを使用して、関係 (リンク、モーダルなど) のメンタル マップを取得します。役立つかどうか HTTP リクエストを調べてください。
フォルダー構造を確認します。
繰り返しますが、これは軽いです。何がどこに属しているかを確認し、構造が十分にセマンティックであることを願っています。ここから常にトップレベルの情報を取得できます。
コールスタックをトップダウンで分析:
紙やその他の媒体に目を通してリストしますが、タイプしないようにしてください-これにより、脳のさまざまな部分が関与します(必要に応じてレゴから構築します)-関数呼び出し、オブジェクト、および変数最初にトップレベルに最も近い。定数とモジュールを見て、できれば細かい機能に飛び込まないようにしてください。
マインドマップ!:
おそらく最も重要なステップです。コードの現在の理解の非常に大まかなマッピング ドラフトを作成します。マインドマップをすばやく実行してください。これにより、脳のさまざまな部分 (主に R モード) がマップで発言できるようになります。
- 雲、ボックスなどを作成します。最初に紙に配置する必要があると思われる場所に配置します。自由に構文記号でボックスを示してください (例: 'F'-Function、'f'-closure、'C'-Constant、'V'-Global Var、'v'-low-level var など)。矢印を使用します: 引数には着信配列、戻り値には発信配列、またはより自然に思いつくもの。
- 関係を示すために接続を描き始めます。乱雑に見えても問題ありません。これは最初のドラフトです。
- 手早く大まかな修正を行います。読みにくいので、別の簡単な構成を行いますが、複数の改訂は行わないでください。
デバッガーを開きます。
- マッピング後に持っていた考えを検証または無効にします。変数、引数、戻り値などを追跡します。
- HTTP リクエストなどを追跡して、データの送信元を把握します。ヘッダー自体を確認しますが、リクエスト本文の詳細には飛び込まないでください。
マインドマップ再び!:
これで、トップレベルの機能のほとんどについて適切なアイデアが得られたはずです。
- 最初のマインド マップで見逃したものをすべて含む新しいマインド マップを作成します。これにはもっと時間をかけて、比較的小さな詳細を追加することもできますが、以前の概念と競合する可能性があることを恐れないでください.
- この地図を前回の地図と比較し、以前の疑問を取り除き、新しい疑問を書き留め、相反する視点を書き留めます。
- かすんでいる場合は、このマップを修正してください。必要なだけ修正しますが、修正は最小限に抑えてください。
コードではないふりをする:
機械的に表現できるなら、そうしてください。これの最も重要な部分は、アプリの動作やコードの小さな部分のメタファーを考え出すことです。ばかげたことを真剣に考えてください。動物だったら、モンスターだったり、星だったり、ロボットだったり。どんなものでしょう。それがスタートレックにあったとしたら、彼らはそれを何に使うでしょうか. それを比較検討するために多くのことを考えてください。
分析よりも合成:
ここで、「何」ではなく「どのように」を見たいと考えています。ループのためにあなたを介して低レベルの部分を取り出して無菌環境に置くことができます (あなたはその入力を制御します)。どのような出力が得られますか。システムは当初考えていたよりも複雑ですか? もっと簡単?改善が必要ですか?
何か貢献してください、おい!
テストを書き、バグを修正し、コメントし、抽象化します。ささいな貢献を始めるのに十分な能力が必要であり、失敗しても問題ありません:) ! コミット、チャット、メールで行った変更に注意してください。何か卑劣なことをした場合は、本番に移行する前にそれを見つけることができます。何か問題がある場合は、チームメイトに問題を解決してもらうのに最適な方法です。通常、チームメイトの話を聞くと、マインドマップの衝突を引き起こした多くのことが解消されます。
一言で言えば、最も重要なことは、トップダウン方式を使用して、脳のさまざまな部分を可能な限り活用することです。ラップトップを閉じて、可能であれば席を窓の外に向けるとよいでしょう。調査によると、締め切りを強制すると、締め切りから 2.5 日後まで「プレッシャーの二日酔い」が生じることがわかっています。だから、リラックスして、タイムクランチはありません。そして、失敗しても安全な環境を自分自身に提供してください. 詳細に到達するまで、これらのほとんどはかなり急ぐことができます。高レベルのトピックの理解を回避しないように注意してください。
これがあなたにも役立つことを願っています:)