はじめに
この記事は「プリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則」を読んだ際に記した議事録です。
著作権の関係により、詳細には書きません。詳しい詳細を知りたい方はぜひ本書を読んでみてください。
プリンシプルオブプログラミングをPOPと訳します。
What : 「文脈会話」「文脈思考」で考える
コンテキストとは「文章などの前後の関係や状況、背景のこと」です。
プログラミングの際もコンテキストの概念を以下の二つの側面からうまく利用します。
・コードの読み書きに使用
コードは「書き手と読み手のコミュニケーションツール」です。書き手は読み手のコンテキストを醸成する必要があります。つまりは内容をトップダウンで伝えて読みやすいコードを心がけます。具体的にはモジュールやクラスに命名する際、「何について書かれているのか」がわかるように名前をつけて関数名でもモジュールを文脈として中での処理が関数名からわかるような名前をつけます。
こうすることで読み手が「今自分は何を読んでいるのか」が明確になり、迷子になりにくくなります。
・思考ツールとして使用
プログラミングは問題解決の作業であり、問題は単独ではありません。すべてのものが周囲のものと繋がり、背景があり密接につながっています。これらをコンテキストとして考慮することで問題が明確になり、正確なアプローチをとることができます。
Why : 会話、思考を迷子にさせないため
コンテキストを与えることでバラバラの情報が関係性をもち、現在地を見失わずに済みます。書き手は読み手に「何をしているのか」を理解して、コードの意味を明確に伝えなければなりません。コンテキストを使わないと、何が問題でどうやって解決しているのかがわからず、相手が迷子になってしまいます。
コンテキストを与えられるかどうかが「読み手の理解度を大きく左右する」のでプログラマとして実力の差が出てくる部分でもあります。
How : コンテキストを示そう
コードを書くときはコンテキストを先に示すようにしましょう。コンテキストを先に示すと、読み手は「何についてのコードなのか」を理解することができます。
また設計をする際は、達人の思考法を真似します。コンテキストの存在を認識し、掘り下げ、状況に応じた判断を下せるように訓練していきます。そうすることで経験値が積み上がり達人に近づきます。初心者を脱して達人に近づいていくには、「直感に重きを置くこと」を大切にします。最終的に自らがシステムの一部分となって主体的に問題解決できるようになります。
具体的な作業に関しては「着眼大局、着手局小」を意識します。コンテキストを含む全体を見通して戦略を立てて、実際にコードを書く際は「小さなところから地道に」問題解決していきましょう。
終わりに
この記事ではプリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則の議事録を自分用に記しています。
この記事ではカバーしきれていない部分も多いので、是非本書を手にとって読んでみてください。
次回、「【POP93】ブルックスの法則」です。ぜひ、次の記事も読んでみてください。