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

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

ただいまの
回答率

90.01%

フレームワークの先の知識

解決済

回答 4

投稿

  • 評価
  • クリップ 0
  • VIEW 225

rashild

score 8

webサービスを開発するために私を含め初学者の方はフレームワークを使っていると思います。
フレームワークの「使い方」(すでにフレームワーク内で実装されているコードを利用すること)はネットや入門系の書籍等で学ぶことができると思うのですが、そのコードが裏でどのように動いているのかということまで理解することができれば、それぞれの言語の長所が自分でわかるようになり、もうワンステップ成長できるように思います。

このようなフレームワークの仕組みを学習したい場合、どのようが知識が必要でしょうか?
今のところHTTPやTCP/IPを勉強するつもりです。

他の方の意見をお聞きしたいです。
よろしくお願いします。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

質問への追記・修正、ベストアンサー選択の依頼

  • gentaro

    2019/07/15 12:24

    フレームワークって言葉の指している範囲はめちゃくちゃ広いので、どうにも質問が漠然としているように感じます。
    HTTPやTCP/IPに関係するフレームワークの具体例って何でしょう?

    キャンセル

  • rashild

    2019/07/15 18:31

    提議が曖昧なのは私の理解が曖昧だからです。すみません。
    HTTPやTCP/IPの勉強をしようとしているのは、フレームワークの使い方しかしらないとフレームワーク上で実装されたコードしか使いこなせなくなる時が来るのではないかと思い、漠然とそれよりも下の層の知識が必要になると思ったからです。
    例としてlaravelには既存のログイン認証がありますが認証するための変数を増やしたければ、自分で書き換えることになると思います。
    その先は知識がなく未知ですが、極論としてどんどん機能を掘り下げていくには別の層の知識も知っておいた方が良いのではないかと思い質問させていただきました。
    もっと頭を整理させてから質問すべきでした。

    キャンセル

回答 4

+1

このようなフレームワークの仕組みを学習したい場合、どのようが知識が必要でしょうか?

Web系のフレームワークに限ったとしも、機能は多岐に渡ります。
なので、実際に理解したいフレームワークを自分で作ってみるのが近道な気がします。

また最近のフレームワークはほとんどオープンソースなので、ソースコードを読むことで理解を深めることができるかもしれません。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

checkベストアンサー

0

まず、TCP/IPとひとくくりで書いてありますがそれぞれ別のレイヤーです
WEB用のフレームワーク使う側(学習含む)になるならTCP/IPの知識はいらないと思います
HTTPの勉強が何を指しているのか分からないけど、広義で言えばフレームワークやる(?)時点でHTTPの勉強に足踏み込んでます。
フレームワークを作る側になりたいのならTCPの知識はあってもいいかもしれないけど、主観で言えば要らないです

どんな言語のどんなフレームワークの勉強したいのか知りませんが、コードの裏が知りたいという事なら何かプログラムを実行して気になるところでブレークポイント置いてステップインしながら処理をひとつひとつ順に理解していけばいいんじゃないでしょうか

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2019/07/15 05:10

    回答ありがとうございます。曖昧な質問ですみません。
    今までLaravel,Vue,Djangoなどのフレームワークを使ったことがありますが
    この質問をした理由として、
    毎回フレームワークを学習する時により下の層の仕組みを理解していた方が学習が早くなるのかな
    理解できれば既存のコードをoverrideなどしてより自在に書けるようになるかも
    と思い質問させていただきました。
    他の方の回答も待ってみたいと思います。

    キャンセル

  • 2019/07/15 05:35

    オーバーライドがどの程度のものを指してるのか分からないけどそれは各フレームワーク毎の仕様の範疇でしょう。
    フレームワークごとに方針が違うので、Aフレームワークを理解したからと言ってBフレームワークの習得が早くなることはまずないです。
    新規のフレームワークそのものの理解速度を速める事が目的ならステップインで処理を追って確認する必要もありません。
    中身の処理を追うよりは各言語の基本が出来る事は前提として、各言語の最新バージョンの仕様を覚える事と、ミドルウェアへのアンテナを伸ばしておく方がいいでしょうね。
    各言語で新しい仕様がリリースされれば大抵のフレームワークは即座にそれを採用してます(実際には入念な設計やテストをして採用自体も検討した上で採用しているのでしょうが)
    それに有用なミドルウェアが出たら(というか有用だと判断したら)即組み込んできます。

    フレームワーク作る側の人から回答が来るといいですね。

    キャンセル

0

フレームワークって便利ですよね。
で、その先を目指すなら「不便」なものを体験しておくのがよいかと。
例えるなら ABSなしの車でブレーキングを体験するみたいな?

まず、HTTPサーバー組み込みでなく CGI がいいです。
そこで perl なり ruby なり python なりを使って
どのような処理が必要になり、どのような挙動をするかを
体験すれば、フレームワークなどで覆われたものを
扱う際にも(やりたいことの)当たりがつくようになります。

要は WEBシステムの基本的な流れを肌で感じるのが目的ですね。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

0

このようなフレームワークの仕組みを学習したい場合、どのようが知識が必要でしょうか?

LaravelやRailsなど、フレームワークによっては、フレームワーク上でのコード作成を便利に進めるため、メタプログラミング的な高度な手法を使ってフレームワークを実装してあることがあります。

このようなフレームワークを深く理解したい場合、そういった高度な言語機能のほうもしっかり理解しないとついていけないでしょう。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

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