新人エンジニアがオブジェクト指向を学ぶ意味
こんにちは。開発2部の濱上です。
入社後すぐのJava研修でオブジェクト指向に触れたとき、「結局、理解して何が変わるの?」という疑問にぶつかりました。
プログラミング初心者の私にとって、それは大きな壁でした。
ですが、実際にコードを書く中で、オブジェクト指向は、コードの居場所を決めて全体図をつかみやすくする、大切な設計の基礎であることに気づきました。
まだ新入社員として学び途中ではありますが、オブジェクト指向に苦戦した中で見えてきた設計の大切さと、AI時代だからこそ必要な設計の考え方をまとめたいと思います。
オブジェクト指向とは何か
・“モノをそのままプログラムに持ち込む” という発想
オブジェクト指向は一言でいうと、
私たちの身の回りにある「モノ(=オブジェクト)」を、そのままプログラムに置き換える考え方
と理解しました。
例えば、「商品」、「ユーザー」、「注文」などの概念がそのままオブジェクトになります。
現実世界で 「商品がある → 値段がある → ユーザーが購入する」という流れを、プログラムでもクラスやメソッドを使って表現していくイメージです。
・“情報”と“役割”をセットにする
オブジェクト指向の大きな価値は、
「情報」と「その情報を扱う処理」を、ひとつのまとまり(オブジェクト)にできること
だと感じています。
初めて取り組んだ開発では、変数や関数がバラバラに存在していて、時間が経つと、どこに何があるのか分からなくなりました。
ですがオブジェクト指向に慣れてくると、
- 商品クラスなら「商品のデータ」と「商品の振る舞い」
- ユーザクラスなら「ユーザのデータ」と「ユーザの振る舞い」
といったように、自然に整理しやすくなり、担当者を決めるようなイメージで、コードが読みやすくなります。
・初心者こそ助けてもらえる考え方
理解が進むほど、初心者こそオブジェクト指向に救われるのでは?と思うようになりました。
- コードの居場所がはっきりする
- 重複を書かなくていい
- プログラムの全体図をつかみやすい
など、迷子になりにくくなると感じています。
AI がコードを書く時代でも必要なのか
オブジェクト指向について調べていると、「AI が出てきたからオブジェクト指向は古い」といった意見を目にすることがありました。
ですが、AI にコードを書いてもらうと、分かりにくいコードが生成されることもあります。
- クラスの役割が曖昧
- 名前の統一感がない
- 1つのクラスに機能が詰め込まれてしまう
など、読んでいて混乱することもあります。
そこで気づいたのは、以下の点です。
- AI にはコードを書いてもらえるが、設計の判断は人間
- オブジェクト指向を理解しているほど、AI が生成したコードも扱いやすい
- AI に質問する際に明確に伝えられれば、返ってくる回答の精度も高くなる
AI 時代だからこそ、設計の基本となる考え方(オブジェクト指向)はもっと大事になるように感じます。
まとめ
オブジェクト指向はまだまだ勉強中ですが、理解が進むにつれてコードが読みやすくなり、作りやすくなるのを実感しています。
そして AI がどれだけ進化しても、設計の考え方は残るはずです。
これからプロジェクトで実際にコードを書く場面も増えていくので、 AI もうまく使いながら、自分自身の設計力も伸ばしていきます。