見出し画像

良いコードを書くための抽象化技術

前回までは良いコードを書くための形とプログラミングのパフォーマンスについて、まとめました。今回はソースコードの抽象化について、ご紹介します。プログラミングにおける抽象化とは、「似ているものを同じように扱うことでプログラミングを簡単にすること」です。

前回のまとめ

良いコードを書くためには、まず形にはめることから始まります。良いコードの形について、この文に紹介しています。

次は、良いコードの質とプログラミングのパフォーマンスについて紹介しました。

抽象化


では今回は、より高度なプログラミングでの重要な概念の一つ、抽象化について紹介します。抽象化を利用することで、振る舞いが異なる大量の処理を、簡潔かつ保守性に優れたコードとして書けます。抽象化をうまく利用すれば、10,000行のコードを100行になることもあります。抽象化はプログラミングが持つパワーや醍醐味です。抽象化の例としては次のようなものがあります。

  1. 共通的な処理をまとめて親クラスを作成する

  2. データベースへの接続情報を設定ファイルに外だしする

  3. 似たような振る舞い(関数)をインターフェースとして抽出する

抽出化にはいくつかのレベルがあります。たとえば、パラメータレベルの抽象化、型の抽象化、ポリホフィズムなどです。初歩的な抽象化とは、配列・リストのようなオブジェクトの集合に格納・管理などを指します。抽象化のメリットは主に3つあります。

  1. 重複する処理が減り、バグがうまれにくい

  2. 全体に影響する機能追加や修正を簡単に行える

  3. 処理対象が増えてもコードはほとんど増えない

フレームワーク

フレームワークとは、アプリケーション作成で必要とされる汎用的な機能をまとめて、再利用できるようにしたライブラリのことです。例えば、ディープラーニング用なPytorch、TensorFlowは有名なライブラリですね。フレームワークを使うことで定型的冗長なコードが一掃でき、アプリケーションロジックに集中してプログラミングできます。積極的にフレームワークを利用することで、コードがコンパクトになり、再利用性も高まります。欠点として、フレームワークが変更されると、今までのコードが突然作動しなくなる可能性はあります。フレームワークを利用する前に、しっかりフレームワークの中身を確認し、プログラミングの説明にその依存関係を明確に定義しましょう。Pythonプログラミングではライブラリなしでは損になります。

まとめ

今回、良いコードを書くための抽象化する方法についてご紹介しました。良いコードシリーズは、ここで終えたいと思います。自分もプログラミングについて、20年間勉強・実践してきましたが、わからないことだらけですし、天才プログラマーをよく見ると劣等感を感じることも多いです。ただし、才能というもは私は習得できると思いますし、日々の練習と反省、新しい知識を継続的に取り入れて、常に吸収・アップデートしてるうちに、前よりはプログラミングを好きになっている自分がいます。

感想

結局、プログラミングすることは問題分析・解決のプロセスを整理し、書きおろしていることです。重要なのは、スキルやテクニックではなく、マインドと思考だと思います。自分のマインド・思考を常に磨き、最後は自分の心も磨かれると思います。万事共通です。この年齢になっても、自分を磨くことができ、安心安全な環境でいられること、健康な心と体があることに感謝しています。


いいなと思ったら応援しよう!