オブジェクト指向と関数型プログラミングのメリット・デメリットを列挙してください。
また、個人的な意見も教えてください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
■オブジェクト志向
メリット:
・再利用可能なモジュール設計が容易
・名詞.動詞()という理解しやすい概念でプログラムが書ける/設計できる
デメリット:
・方法論が無駄に乱立しているため、学習コストが高い(例えば、DB設計は正規化という指針がほぼ合意済みだが、オブジェクト志向に関してはそのような合意はない)。
・現実の事象の表現としてのコードと、プログラムを動作させるためのコードの分離が難しい。デザインパターンなど、解決策は存在するが、本質的に分離することは不可能であり、プログラマの技量に依存する
■関数型プログラミング
メリット:
・参照透過性が強要or推奨されるスタイルによる副作用のないプログラムを作成できる
・プログラムから副作用が排除されることで、副作用があることによって発生する厄介なバグを抑制できる
・仕様を数学的関数として表せるなら、そのままコードに落とし込むことができる(理論上は)
デメリット:
・オブジェクト指向以上にプログラマの知性を要求されるため、プログラマの知性が足りない場合、著しく非効率なプログラムが作成される可能性が高い
・いわゆる業務プログラムで一般的なCRUD操作がメインのアプリケーションでは関数型プログラミングを採用するメリットが薄い(手続き型のスタイルで十分ことが足りてしまう)。したがって、適用範囲が限定されがち
【おまけ】
■手続き型スタイル
メリット:
・手続きを列挙していくスタイルであるため、経験が浅いものでも理解が容易
・小規模なプログラムであれば、非常に高速かつ理解しやすいコードが書ける
・実直に手続きを追っていけば必ず処理を理解できる(はず)
デメリット:
・一定の規模を超えると保守が不可能になる。作成時は処理を書き下すだけなので何となく作れてしまうが、保守は人類の知性では不可能である場合が多い
・一般的に無駄が多くなりがち
・非同期処理や状態を管理する必要のあるプログラムを書くことが難しくなることが多い
【個人的見解】
・ケースバイケースとしか言いようがない
・理想を述べるのであれば、どちらかに傾倒するのでなく、両方共自在に使えるようになるのがベストであると思う
投稿2015/05/23 16:11
退会済みユーザー
総合スコア0
0
オブジェクト指向
メリット
・仕事ができる
デメリット
・ダサい
関数型プログラミング
メリット
・なんかかっこいい
デメリット
・仕事にはならない
私は断然関数型プログラミングが好きです!
投稿2015/05/28 01:58
総合スコア46
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。