開発業務(?)に携わっているなかで、「DRY原則って結局なんだ?」といった疑問を持ち始めたので、ChatGPT先生を交えながら考えてみようと思います...
DRY原則って
ググってみたところ、ソフトウェアの構成や構築手法についての原則の一つで、同じ意味や機能を持つ情報を複数の場所に重複して置くことをなるべく避けるべきとする考え方
らしい...
「車輪の再開発は控えようね」といったニュアンスなんだろうが、いまいちピンとこないので、ChatGPT先生に聞いてみようと思います...
ChatGPT先生に「DRY原則」を聞いてみた
今はやりのChatGPT先生に「DRY原則に沿った開発方法」について聞いてみたいと思います。
インプット(プロンプト)
私は新人WEB開発エンジニアで、あなたはベテランWeb開発エンジニアです。
先輩エンジニアから「DRY原則に沿った開発を行うように」といった依頼を受けたのですが、
いまいちよくわかっていないです。
新人でもわかるように「DRY原則に沿った開発方法とポイント」を教えてもらいたいです。
アウトプット(回答)
DRY原則(Don't Repeat Yourself: 繰り返しを避ける原則)は、コードの中で同じロジックやデータを何度も書くことを避け、重複を減らすという考え方です。これにより、メンテナンス性や拡張性が向上し、エラーが発生しにくくなります。
DRY原則に沿った開発方法とポイント
コードの重複を避ける
同じ処理を複数の場所で繰り返して書くのではなく、共通する部分をまとめて1つの関数やクラスにします。これにより、変更が必要な場合でも、1箇所を修正するだけで済みます。
テンプレートを活用する
Web開発では、HTMLやメールのコンテンツなどで同じパターンが繰り返されることがあります。こういった場合は、テンプレートエンジン(例えば、Jinja2やEJSなど)を使って共通部分を一箇所にまとめます。
関数やモジュール化
大きなプログラムを、小さな再利用可能な部品に分割します。これにより、同じコードを何度も書かずに、必要に応じて再利用できます。
定数や設定ファイルを使う
数値や文字列などのハードコーディングを避け、定数や設定ファイルにまとめることで、変更が必要な場合に一箇所を修正するだけで済むようにします。
DRY原則を守るメリット
メンテナンスが楽:コードの一部を変更するだけで全体に反映されるため、修正が簡単。
バグが減る:同じ処理を1箇所にまとめることで、同じバグが複数箇所に散らばるのを防げる。
再利用性が高まる:一度書いたコードや関数を何度でも使えるため、開発速度が向上する。
このように、DRY原則に従うことで、コードの品質が高まり、後々のメンテナンスや拡張がしやすくなります。
作りこんでいないプロンプトでも、「まぁまぁいい感じの回答を出してくれるなぁ~」といった印象を持ちました。
さいごに
ChatGPTを使えば、「もやっとしている知識をある程度整理するのに役立つのかなぁ」問言った印象を持ちました。禅問答のように、繰り返し、プロンプトを修正しながら、ChatGPTの回答精度を上げていくと、「自身の知識としても落とし込んでいけるのかなぁと思いました。今後も、新たな気づきや学びがあれば、定期的に発信していければなぁと思っています…