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

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

ただいまの
回答率

87.94%

laravel(PHP)のwebアプリケーションの開発までの道筋

解決済

回答 3

投稿

  • 評価
  • クリップ 1
  • VIEW 2,553

score 39

前提・実現したいこと

laravelのwebサイトを作るために、本で勉強している段階ですが現在の本が入門の本だからなのかもしれませんが、一つ一つの機能についての説明や方法は習って行けてると思いますが、それらをまとめて一つのwebアプリケーションにすることができない。と言うよりも、ゴールまでの指針が分からず足踏みをしてしまっている状態です。これが、まだ入門の本を読んでいるからなのか(他の本には各パーツを組み合わせて1つに出来るようになる方法が書かれている)、それとも独学の難しさの所以なのか(決して諦めるつもりはなく、目標に向かって行きたいと思ってます)、どのように勉強していけばいいのかご教授頂けたらと思います。

知りたいこと

1.大まかでいいので、laravelを用いたwebアプリケーションの開発における道筋(手順)が知りたいです。
各それぞれのパーツにおける役割や使い方は習うことが出来ましたが、これらをどのように組み立てるのかが分かりません。

2.laravel開発環境このサイトや公式を見て、開発環境を整えることは出来ましたがそれをどのように生かすのか書いてあるサイトが少なかった(見つけられませんでした)。これをどのように活用するのか知りたいです。

3.経験がある人に伺いたいのですが...そもそも独学で行けますか?やる気さえあれば、行ける。とかは、重々承知しており自分自身もそこは頑張りたいと考えてますが、本(これから他の本も買う予定です)でこれからも勉強して行こうと考えてますが、laravelなどのフレームワーク系の本は割と種類が少ないのかなと見てて思ってしまったりで、現実的に可能なのか知りたいです。

4.お勧めの本があったらご紹介して頂きたいです。現在私が見る限りでは、laravelなどのフレームワーク系の本は少ないのかなと思ったりもしました。勘違いかもしれません。その中でも、これを読めば全体像が見えてくるよ。とかお勧めの本を知りたいです。

まとめ

webサイトを作ろうと10月あたりから独学をしていますが、自分の勉強環境(特に教材)は良いのか、未だにwebサイトの全体像が見えなくどうすればいいのか、迷ってしまったので長文になってしまいましたが質問しようと思いました。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 3

checkベストアンサー

+2

私は独学のみでやってきてますが、行けると思います。

まずは作りたいアプリの完成形を具体的にイメージするのが良いかと思います。
作りたいものが具体的に思い浮かばなかったら、最初はtwitterのクローンアプリや簡単な会員登録性の掲示板をイメージするのが良いかと思います。
それらのアプリに必要な画面や、移動する仕組みを簡単な絵で良いのでノート等の紙に書きながら考えてから作ると良いかと思います。
これらはワイヤーフレームと言い、以下の様なサイトを参考にするとよいかと思います。
WEB・アプリの設計図。ワイヤーフレームとは?
また、『画面遷移図』という言葉でネット検索をしても、具体的に作るものを最初に考える際の参考になるかと思います。

例えばメインの非ログインのユーザーが最初に見るページがあって、新規登録とログインがあって、
ログインした後にはこんなページがあって、と、四角い枠とボタンやリンクを文字や絵で描くことは出来るかと思います。
そこからさらにユーザーの視点で欲しい機能や画面を考えて行くと、自然と必要な画面や機能が見えて来るかと思います。
例えば書き込みをする画面、他の人の書き込みを見れる画面、自分の気に入った他のユーザーのみを表示させる画面、書き込みを編集や削除するための機能、もしくは画面、といった具合です。

あとはそれに従って、viewを作ってルーティングして、最低限のhtml画面を表示させ。入力フォームを作り、そこに入力した情報をコントローラーで受け取って、バリテーションしてDBに入れるまでの処理を書いて、エラーの時はメッセージを出して、正常ならDBに登録させた後に、ユーザーをこの画面に移動させて…。といった具合でしょうか?

ちなみに『PHPフレームワークLaravel入門』という青い本がアプリを作る際の基本的な部品となる各画面や機能の作り方を具体的に教えてくれていますので、これらを参考にするのも良いかと思います。

個人的には、まず最初はショボくて良いので、なるべく少ない画面数と機能で最低限動くものを作るのが良いかと思います。
がんばってください。

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2019/01/20 11:36

    回答ありがとうございます。私も「PHPフレームワークLaravel入門」の本で進めていますが、基本的な部品となる各画面や機能の作り方は学べましたが、それらの部品をどのように組み立てるべきかが載ってないのかなと思ってしまいました。仮に、組み立てあげたものが作れたとしてそれをでは次はどのような環境や方法で公開していくのか。もし、お勧めの本や知見がありましたら教えて頂きたいです。

    キャンセル

  • 2019/01/20 15:08

    自分が作ったアプリケーションを公開するには、Laravelとは違って、サーバーの環境構築の知識が必要となります。今はAWSやVPSなど様々な方法がありますが、共通するのはLinuxをOSとしたWebサーバーをリモートで環境構築する知識が必要になるかと思います。いわゆる黒い画面にコマンドだけでインストールをしたり、設定ファイルの一部を書き換える作業が必要になります。
    VPSをするなら、例えばさくらサーバーさんの以下の記事を読むと具体的にすることがわかるかと思います。

    [連載:「ネコでもわかる!さくらのVPS講座」の記事一覧](https://knowledge.sakura.ad.jp/serialization/understood-cats-vps/)

    また、Laravelの場合、vagrantやLaradock等の開発用仮想環境が既に作られていますが、練習のために、あえてVirtualBOX等でubuntuやcentos等をインストールして、そこにご自身で作ったアプリを動かす環境を一通り作る経験を先に積むと良いかと思います。具体的にはWebサーバーアプリのApacheやNginxの設定や、MySQLやMariaDB等のDBの設定がわかってからVPS環境等で同じような設定ができる様になると良いかと思います。

    キャンセル

  • 2019/01/20 22:16

    まだまだ色々覚えることが多そうですね。ですが、少しずつ進めて行きたいと思います。今回のこの回答とURLは今から見ていきたいtと思います。ありがとうございました。

    キャンセル

+1

初心者がアプリを作成しようとして躓くのは、多くの場合「設計」が出来ていないからです。
設計が出来ていないと「何を処理すればよいか」分からず、結果として「手が進まない」という事象が発生します。

アプリ開発の手法はいくつかありますが、ワリとわかりやすい手法として「ウォータフォールモデル」があるので、概要を学習してみてください。

アプリケーションの要件を「処理の最小単位」まで分解できるようになれば、「手が進む」状態を作り出せます。

経験を積めば、設計を雑にしても「処理の最小単位」の検討がつくようになるので、小規模なアプリではほとんど設計せず「さっさと手を動かす」ようになりますが、初心者こそ設計を重視するべきだと思ってます。

自身で最小単位まで分解できない場合、誰かに協力してもらうか、詳細設計まで終わっているアプリを実装してみると良いです。

まずは「最小単位に分解」してみると手が動かせる状態になることを実感してみてください。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2019/01/20 11:42

    回答ありがとうございます。だいたいこのようなものを作りたいと考えていましたが、根本的な考えとして設計をおろそかにしていたのか、もう一度設計を考えてみたいと思いました。また、やはり1人では難しそうであれば再度考えて行こうと思います。

    キャンセル

+1

むしろ本を読まないほうがいいのでは…。
Laravelに限らずPHPの本に間違いが多いのは昔から有名。
公式な情報より間違った本を信じ込むからおかしなことになる。

5年前は本なんかないのでその頃から使ってる人は公式ドキュメントだけで使えるようになってる。
幸い早々に日本語訳があったので。
Laravelの普及は確実に日本語版ドキュメントのおかげ。

当然ながらLaravel以前にPHPや他のフレームワークの経験がある上でだけど。
日本で話題になる1,2年前の記事検索すればZendからLaravelに乗り換えたみたいな海外の記事が見つかる。
https://yetanotherprogrammingblog.com/content/bye-bye-zend-framework-hello-laravel
https://mnshankar.wordpress.com/2013/04/17/moving-from-zend-framework-to-laravel-4/
他を知らないとLaravelの何が良いのかが理解できない。

Laravel4の頃まではまだシンプルだったけど5以降は複雑になってるから初心者には全くおすすめできない。
https://kore1server.com/370/Laravel%E3%82%92%E4%BD%BF%E3%81%86%E3%81%B9%E3%81%8D%E3%81%8B%E3%80%812017

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2019/01/20 11:30

    回答ありがとうございます。本を読まない方が良いというのと、「Laravelを使うべきか」のURLの考え方を見るに進路変更をすべきかなと思ってしまいました。特に、本番環境についての説明は厳しいかなと思いました。では、データベースを用いたサイトを作る際に、どのように作るのがお勧めですか?

    キャンセル

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

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

関連した質問

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