こんにちは、naoyaです。
一月に一回、プログラムに関する記事を投稿するということで、
第二回のお題は、「構造化について」です。まずは調べた内容から
まとめていこうと思います
・構造化とは
1960年代後半にオランダの情報工学者「エドガー・ダイクスト
ラ」によって提唱された「構造化プログラミング」という概念の
こと。プログラムに標準的な制御機構(逐次処理、分岐、反復)の
みを使い、全体を大まかな機能単位に分割し、その中をさらに
細かい機能単位に分割していくことで、記述内容を段階的に詳細
化していく技法。大規模なプログラムを効率よく、少ないミスで
設計できるようになる(サブルーチン分割)。
当時は低水準言語のジャンプ命令をそのままプログラミング言
語に実装した「goto文」を使用して、処理をプログラム中の別の
場所に移す技法が多用されており、規模が大きくなるほど、処理
の流れが把握しにくくなっていた。
構造化プログラミングは、プログラムを記述する上での基本的
な作法として、現在でも多くのプログラマの間で、広く共有され
ている。
・標準的な制御機構
・逐次処理
プログラムが記された順番に処理を行うこと。プログラムの
記述とコンピュータの動作が一致するプログラム構造である。
・条件分岐
プログラムで、ある条件を満たしたときだけ処理を変えたい
というときに使われる。if, else, switch等
・反復
ある条件が満たされるまで何度も同じ処理を繰り返したい場
合に使われる。while, for, foreach等
・その他
・関数
同じプログラムコードを複数の場所で何度も使用したい場合
に機能をまとめて何度も呼び出せるようにしたもの。
何度も同じソースコードを複数の場所で書くのは管理上良く
ないため、使われる。
何度も出てくるコードでなくても、処理に名前が付く単位で
関数化し、明確な名前をつけるのが、良いコードを書くコツ。
名前が付く単位で区切るのが良い。
・列挙型
曜日など、特定の値しかとらないデータを表現する場合に使
用する。
・複合型
複数の異なるデータ型の変数を一まとめにして管理するため
に、クラスや構造体といったものを定義して使う。
データをまとめた型を使いたいときに使用。
・名前空間
クラスを種類ごとに分けて管理するための機構。プログラム
の規模が大きくなり、クラスの数が多くなってくると、関連性
のあるもの同士でまとめて管理する仕組みが必要な場合が出て
くるので、その時にクラスを階層的に分類するための機構。
・例外処理
例外とは、本来プログラムの中で起こってはいけないことが
起きてしまうことを言う。堅牢なプログラムを作成するために
は、例外が起こってもプログラムが異常な動作をしないよう、
しっかりと例外処理を行う必要がある。
今回調べたものについて、構造化プログラミングという言葉は知
っていたのですが、それがどういったものなのか説明できる、と言
う所までは知りませんでした。しかし、調べてみると、普段から業
務で使っているものや気をつけている事など、中身それぞれについ
ては知っていることがほとんどでした。
結果的には半分ぐらい復習のような感じになりましたが、これま
での自分がその概念どおりに業務が出来ていたかと言われると、出
来てない部分の方が多く感じますので(特に関数については)、今回
学んだことを常に考えながら、業務を続けていこうと思います。
次回(第三回)は、「オブジェクト指向」について、調べていこう
と思います。
参考URL:
http://e-words.jp/w/%E6%A7%8B%E9%80%A0%E5%8C%96%E3%
83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%
E3%83%B3%E3%82%B0.html
https://ja.wikipedia.org/wiki/%E6%A7%8B%E9%80%A0%E5%8C%96%
E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3
%83%9F%E3%83%B3%E3%82%B0
http://ufcpp.net/study/csharp/