エンジニア

【金曜日のSTUDY】SE以外の人がオブジェクト指向を学んでみよう

アップリーチでは、今年から社内勉強会を開いています。題して「金曜日のSTUDY」
読んで字のごとく、金曜日に開催する勉強会です。

  • 自分の知っていること
  • 最近知ったこと
  • 気になること
  • 見つけたこと
  • 思いついたこと

などを、共有し新たにインプットとアウトプットを繰り返しつつスキルアップを目指すものです。
この勉強会の目的は、「さまざまな角度でモノゴトが見られる(考えられる)思考を身につけよう(癖づけよう)」です。
フレシキブルな思考や発想を生まれながらに持っている人はごく一部でしょう。意識したりコツを掴んだり、思考の鍛錬が必要だと思います。
スポーツジムに通いストレッチするがごとく、毎週金曜日の一時間程度、脳を鍛えて柔らかアタマへ!
開催したのは少し前なのですが「オブジェクト指向」について、どんな様子だったかご紹介します。
この勉強会では、システムエンジニア以外の人もオブジェクト指向を学んでみようという趣旨で開催しました。もちろん、システムエンジニアも参加しましたが、その他に、デザイナー、総務、経理、役員秘書など、オブジェクト指向について初めての人が多数参加しました。

勉強会の内容

オブジェクト指向とは?

プログラミングを勉強し始めると必ず目や耳にする言葉、「オブジェクト指向」。
初学者向けにオブジェクト指向とは何かを簡単に解説しました。
ざっくり言うと、以下になります。

「オブジェクト」
「もの」という意味で、システムを構成する「部品」に近い。

「指向」
ある目的をめざして向かうこと。

オブジェクト指向 = 部品指向
プログラム化する対象を部品化していく、プログラミングの設計思想を指す。

オブジェクト指向型の言語

  • Java
  • C++
  • C#
  • PHP
  • Python
  • Ruby
  • Swift
  • JavaScript

上記以外にもオブジェクト指向型言語は数多くありますが、どの言語にも共通することで、オブジェクト指向型以外の関数型や手続き型と呼ばれる設計思想でもプログラミングが可能です。あくまで思想で得意不得意が言語によって異なります。

以下のような利点と欠点があり、開発状況に応じて適切に使い分けが必要です。

オブジェクト指向の利点

  • 機能の変更に強い
  • 部品を再利用しやすい
  • 分業しやすい
  • 大規模開発に向いている
  • コミュニティが活発

オブジェクト指向の欠点

  • 学習ハードルが高い
  • コード量が多い
  • 小規模開発に不向き

オブジェクト指向の例

以下のようなカレーのレシピを使用して参加者の方々にオブジェクト指向を体験して頂きました。
具体的なレシピは変更に弱いため、抽象化して変更に強いレシピを作ります。



オブジェクト指向の使い方

実際のシステム開発では以下の点を留意しつつ、オブジェクト指向で設計します。

共通化

  • お客様の要求/要件内容を分解して、共通事項を見つける。
  • 共通事項に抽象化した名前を付け、部品とする。
  • 各部品からさらに共通事項を見つけ、抽象化した名前を付け、部品とする。

組み合わせ

  • 部品を組み合わせてシステム化する。
  • 部品の組み合わせは適宜変更できるようにする。

オブジェクト指向のポイント

過度に抽象化しずぎない。

  • 抽象化しすぎると逆に変更しにくくなる。処理フローが追いにくい。
  • システムの目的が不明瞭になる。

お客様の要求を深く理解し、将来的な変更点を予測する。

  • 変更点がある箇所のみを抽象化する。
  • 場数を踏んで変更点を洗い出せるようにしましょう。

「オブジェクト指向」勉強会を受講しての感想

「カレーを作るには?」例え話のおかげで理解が深まりました

デザイナーのかんみです。
常務の穏やかな口調でスタートした勉強会。「カレーを作ると想定して…」と身近なものに例えて説明してくださったので、理系嫌いの私も楽しく参加できました。途中で「適宜」という言葉がでてきてビックリ! システムに携わる方は「白黒はっきり、グレーを許さない存在」と勝手に思っていたので、意外な人間味を感じました。柔軟性はどの業務にも必要ですね。今後の仕事に活かしたいと思います。ありがとうございました。

お客さまとの対話がとっても大事なんだな、と思いました

役員秘書のまめこです。
今までシステムに触れたこともないのに大丈夫かな、と心配していましたが、終わってみると不思議と分かった気になっちゃいました。使いやすいシステムづくりのために「お客さまの要望を理解することが一番大事。達成方法は何パターンもある。」そんな言葉を聞いて、驚きました。理解することから始まるのは、全部の仕事に活かせそうです。言語部分は難しすぎましたが、ちょっと脳みそが柔らかくなりました。お客様との対話を大切に、仕事に臨みたいと思います。ありがとうございました。

関連リンク

システムやWeb制作に関連する面白い記事です。こちらも是非お読みください!

システム部

この記事を書いた人

システム部

システムやアプリケーションの企画・開発・設計などを担当している部署の面々が、日々の業務から感じる様々なことを交代でアウトプットしていきます。

関連記事

TOP