javascriptの大規模開発で、そもそも重複コードをなくしたり、保守性の高いコードを記述するために、関数として記述したほうが良いのか、クラスにしたほうが良いのか分かりません。
デメリット、メリットを教えてください。
参考記事でも結構です。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
それぞれ使い分けるのがよいと思います。
特にjavascriptは関数を変数として渡すことが出来るので、非常に柔軟性が高いプログラムが書けます。
rooooさんがおっしゃっている関数というのが、再帰や高階関数を使ったものなのかどうかというので説明が変わってきますが、まずはそういうのを使わないタイプの関数の話からします。
関数はオブジェクト指向でも使います。メソッドと関数の違いは無いです。
オブジェクト指向を使わない場合と考えます。これを(1)とします。
次に、オブジェクト指向を使う場合、これを(2)とします。
最後に、再帰や高階関数を使う場合、これを(3)とします。
(1)関数のみの場合
メリット:
オブジェクト指向や高階関数がわからない人もコードを読むことが出来る
デメリット;
開発規模が大きくなるに従い。扱う関数が多くなり、再利用がされずらい。
開発規模が大きくなるに従い。影響範囲の調査に手間がかかるようになる
(2)オブジェクト指向
メリット:
わかりやすく階層化された記述になりソースが読みやすい
関数に名前が付いているので、機能を想像し易い
再利用がし易い
規模が大きくなっても、影響範囲の調査の増加をおさえることが出来る
デメリット:
オブジェクト指向を学習しなければならない
参照箇所が飛び飛びになるので、ツールを利用する必要がある
オブジェクトの設計を知る必要がある
少し記述が長くなる
javascriptのクラスの記述の仕方は少し独特なので慣れが必要
(3)高階関数などを用いた関数
メリット:
記述量が短い
副作用が少なく、テストし易い(バグが減る)
デメリット:
他の関数型言語などで学ぶ必要がある
一般的に難解とされている
というところです。(独断と偏見があるかもしれません。)
おすすめとしては大規模ということで、基本オブジェクト指向でクラスを使って書き、オブジェクト指向では記述が複雑になる部分は、関数型も含めて色々な手法を使うというのでいくと良いと思います。
特定のやり方が向いている部分というものはあり、記述が難解だからといって禁止するのは帰って複雑なコードを書く原因(そしてバグの原因)になります。
投稿2017/05/08 14:23
総合スコア2883
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/08 22:31