#はじめに
未来電子テクノロジーでインターンをしている宮﨑です。
オブジェクト指向に至るまでの経緯を学習していたのですが、下地となる知識がゼロに近い私にとって難しい記事が多かったので、自分でわかる言葉でまとめてみました。
ほんとに初心者なのでかなりザックリとした説明です。
もし誤りがあれば修正するのでどんどん指摘してください。
#オブジェクト指向
オブジェクト指向とはシンプルに言うと、
「変数と関数をひとまとめにしたクラスを作るプログラミングの手法」
のこと。
↓参考にさせていただいた記事
(初心者が一番わかりやすかったオブジェクト指向プログラミングの説明は、子供向けのマイクラ本だった。。
https://note.mu/tokitky/n/n6e70d7e7a236)
#オブジェクト指向に至るまでの変遷
(出典:https://qiita.com/hirokidaichi/items/591ad96ab12938878fe1)
##ソフトウェア危機
コンピュータの進歩・普及によってソフトウェアの需要が急速に高まるにもかかわらず、生産量・品質・費用・時間の面で開発が間に合わない状況。
それを打開するために生まれたのが「構造化プログラミング」。
##構造化プログラミング
わかりづらいgoto文を廃止して、設計上のミスが起こりづらくするためにプログラムの実行を、
順接・反復・分岐
の三つの構造で制御することにした。
###(補足)goto文
処理を指定の位置へ移動(go to ~)させるための文。
処理を自由に移動させることができるが、流れが追いづらくなり、読みづらくなってしまう。
##モジュールプログラミング
モジュールとは「部品」のことである。
大きく複雑化するプログラミングをモジュールに分割することにより、分担して効率よく開発作業をすることができる。
モジュールに分割する際には「結合」と「凝集」の二つの観点からその質をはかることができる。
###結合
結合とはモジュール間の関係のこと。
同じ変数やデータを使ってお互いに依存しあっていると、一方を修正した際にもう一方も修正しなければならない。
それぞれが独立して情報のやり取りがはっきりしているのが理想的な結合だ。
###凝集
どんな処理をひとまとめにするかでメンテナンスのしやすさはだいぶ変わる。
とあるデータに関する処理をまとめたり、適切な概念とデータ構造とアルゴリズムをひとまとめにしたりするのが好ましい。
##抽象データ型
よいモジュールを言語的に支援するために誕生したのが抽象データ型。
抽象データ型は今でいうクラスのことである。
つまりデータとそれに関連する処理をひとまとめにしたデータ型のことだ。
#まとめ
今までちんぷんかんぷんだったキーワードがぼんやりとわかってきました。
具体的な言語を学ぶとより理解できそうです。
今回骨組みとして参考にさせていただいたのはこちらの記事です。
詳細までしっかりと理解したい方はぜひお読みください。
(新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡
→https://qiita.com/hirokidaichi/items/591ad96ab12938878fe1)