質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.11%

フレームワークを使わない利点

受付中

回答 7

投稿

  • 評価
  • クリップ 0
  • VIEW 11K+
退会済みユーザー

退会済みユーザー

PHPを例にしますが、フレームワークを使わずに、生のphpを使うと何か良いことが流のでしょうか?

僕の思う利点は、ファイルわけや、プログラムコードを意識して改装わけなどできるようになることかと思いますわw

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 7

+15

フレームワークの偉大さを知ることができることかな、まったく冗談ではなく。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+9

フレームワークを使わない利点

学習コストが低くなるのは利点です。
しかし逆に、実装コストは高くなる欠点もあります。

総合的に見て時間が節約でき、コスト削減できるから、
現に使われているのだと思います。


ただ、こういうご質問をなさる気持ちは分かります。

今どきのフレームワーク(FW)は高度化して複雑だし、
毎年のように新しいFWが出て陳腐化していきます。

言語は覚えないと書けないから仕様がないとして、
FWまで覚えるのは負担だという感覚はありますね。

しかし、冒頭で言ったように、FWを使わないと、
車輪の再発明をしてしまい、実装コストが高くなります。


ではどうすればいいのか? 個人的に考える落としどころは、
とくに個人開発のような小規模開発には小規模FWを使うことです。

その具体的な軽量FWはPHPですと、「CodeIgniter」や「FuelPHP」、
ほかにも、Rubyでも「Sinatra」、JavaScriptなら最近出てきた「Riot.js」など。

これらは主流のFWではないですが、制作物がWebアプリよりWebサイトに近く、
ゴテゴテした過剰な機能が不要なときに、選択肢としてはアリだと思います。

もっと言えば、場合によっては、FWでなくCMSを使っても別に構わないわけです。
「ブログでXXしたい」という風に定型的なサービスに機能を足すだけなら、
CMSのプラグインなりスニペットなりを書いた方が早い場合もあるでしょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

どのような目的で、フレームワークを使う/使わないを検討するのかによると思います。

たとえば、実際のプロダクト開発で、速く安全に開発を進めたいのであれば、フレームワークは適切なものを選定して、積極的に使うべきだと思います。
なぜなら、フレームワークが適切なものであれば、フレームワーク自体のバグは充分少ないはずですし、目的の機能を実装するために必要な共通機能をフレームワークが提供してくれているはずなので、車輪の再発明を避けて、実装コストを下げることができます。

僕の思う利点は、ファイルわけや、プログラムコードを意識して改装わけなどできるようになることかと思いますわw

このご意見から察するに、今回の目的はプログラミング学習に関して、フレームワークの利用を検討されているように見えます。

このことに関しても、私の意見としては、基本的にフレームワークは使うべき、だと思います。

よいフレームワークには、多くの場合ベストプラクティスがあります。
どのようにファイルを配置するべき、どのようにクラスを分けるべき、という前提がフレームワークの利用にあたって、意識することになると思います。

フレームワークを利用しながら、「なぜ、ここにこのファイルを置くのか」、「なぜこのクラスの責務は分かれているのか」を考えることで、学習の効果は充分に発揮できます。
また、フレームワークには先人の知恵が随所に含まれているので、フレームワーク自体がひとつの参考書として、学習に役立ちます。

また、経験上、フレームワークを使わずに実装をしたからといって、適切なプログラムが書けない人が、書けるようにはなりません。
フレームワークを使わずに実装して、ファイルわけ、階層わけを考えられる力のある人は、フレームワークを使った時に、上記の「なぜこのフレームワークではこのように実装するのか」を考える力があるはずです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

良い機会なので
フレームワークを使うメリット、デメリット
フレームワークを使わないメリット、デメリット
を簡単に整理してみました。

フレームワークを使うメリット
・速く開発できる
・コードの書き方を統一させることができる
・バグが少なくなる

フレームワークを使うデメリット
・フレームワーク自体を覚えるのに時間・労力がかかる
・仕組みを理解しなくても書ける
・カスタマイズに限界がある

フレームワークを使わないメリット
・高速処理ができるコードになる可能性もある
・隅々まで理解してコードを書くことができる
・自由にカスタマイズ可能

フレームワークを使わないデメリット
・全体として開発に時間がかかってしまう可能性が高い
・コードの書き方が統一できない可能性が高い
・全体としてバグが多くなる可能性が高い

ご参考まで

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

回答、というよりはこれも疑問・質問になってしまうかもしれませんが...
私自身はインフラ寄りの人間で、いわゆる「上モノ」の開発はほとんど携わらないのですが、PHP、ruby、pythonといった開発言語には興味があり、時々触っています。(ほんと、触る程度)
フレームワークについてもどんなものか見てはいるのですが、正直「初学者がここから入っていいのかな?」という疑問を持ってしまいます。
フレームワークを使えば圧倒的にコーディングの量が減るような気がしますし、他の方の回答にある通りメリットが絶大なのはその通りだと思います。
ただ一方、フレームワークを覚えたからといってPHPなりrubyなりを覚えたことになるのか、フレームワークが生成した部分のコードに手を入れる必要が生じた場合はお手上げになるのではないかと思ってしまいます。
この点実際はどうなのか、有識者のコメントをいただけると幸いです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/10/04 09:10

    そのとおりだと思います。
    素のPHPで実現できないのにないものを、フレームワークを使えばできるということはないでしょうね。あくまで枠組みなので。
    特に最近のフレームワークは「設定より規約」を重視しているので、意識せずにフレームワーク側がよろしくやってくれる部分が多く、うまく動かないときにどうしたらいいかわからないケースは多いと思います。
    ただし、このへんは他の経験値がものをいう部分でもあるかもしれませんね。自分はJava経験があったので、PHPはあんまりよくわかってなかったけど、いきなりCakephpで開発してそんなに困らなかったし、むしろ楽だったと実感しています。

    キャンセル

  • 2016/10/04 10:38

    > ただ一方、フレームワークを覚えたからといってPHPなりrubyなりを覚えたことになるのか、フレームワークが生成した部分のコードに手を入れる必要が生じた場合はお手上げになるのではないかと思ってしまいます。

    懸念は非常によくわかります。
    ただ、逆のことを考えて、フレームワークを使わなかったらプログラミング言語に精通できるのか?を考えると、できないと思います。
    もしくは、それができる人は、学ぶ姿勢を持っているはずなので、フレームワークを使っていても、フレームワークを通して、言語に精通していけると考えています。

    なので、まずは楽に成功体験を積み上げられるようフレームワークを使って、まず動くものを作った体験を得るのが重要だと考えています。(とはいえ、この辺りはどういった学習者を想定するかでかなりブレますね)

    キャンセル

  • 2016/10/04 12:24

    icchiiさん、Kuchitamaさん、コメントいただきありがとうございます。

    「言語を学ぶ」という観点からするとFWから入らない方がいいのではないか、というのがコメントを読んでの感想です。
    「よく分からないけど上手く動いている」だと、学習という点からすると得るものがない(というか気持ち悪い)というのが経験からくる実感です。

    また、Kuchitamaさんのコメントですが、

    >フレームワークを使わなかったらプログラミング言語に精通できるのか?

    については、むしろ「FWを使わなかったからこそ精通できた」ということもあり得るのではないかと考えています。
    もちろんKuchitamaさんのおっしゃる「学ぶ姿勢」があるのが前提ですが。

    >楽に成功体験を積み上げられるようフレームワークを使って、まず動くものを作った体験を得るのが重要

    これについては「確かにそうかも」ですね。
    私の場合はエラーや意図しない動作を一つ一つ潰して最終的に自分の目的とするものを作り出す、という方向性で言語を学んでいくやり方ですが、それだと心が折れてしまう人はいるでしょうね。

    キャンセル

+1

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

煽りでもなんでもなく、このような質問をしているレベルの時点で生PHPを使っておいたほうが絶対に良いです。

きっとあなたはフレームワークの利点を感じるような状況(仕事で、それなりの規模で、チームで開発、とか)ではないでしょう。そんな人がフレームワークを使っても、何がなんだかわからないままになるでしょう。特にトラブルやバグが起きたときに調べるのが難しくなる。

まずは生PHPで車輪の再発明なり非効率なことなりを自力でやりまくって、ある程度の知識と経験を蓄え、初心者を脱した頃にもう一度フレームワークを検討してみるとまた違った景色が見えてくると思います。
ただそれでも場合によっては無理にフレームワークを使うよりも生PHPのほうが多くのメリットがあることもありますけどね。個人的には基本は「生」推奨派です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.11%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る