こんにちは、ヒデ(@hideto1939)です。
日々プログラミングに取り組んでいます。
今回、初めて「Laravel」を使って自作のWebサービスを作ってみました。
この記事では、そのときの経験をシェアします。少しでも開発の際の参考にしていただけると嬉しいです。
では、始めます!
Laravelを使ってWebサービスの開発をしてみました
Laravelはまだ学び始めたばかりでしたが、自作のWebサービス開発にチャレンジしてみました。
理由は以下の二つです。
- SkillAwardに応募するため
- Laravelへの理解を深めるため(スキルアップ)

それぞれ説明します!
SkillAwardに応募するため
一ヶ月ほど前にツイッター上で、フリーランスエンジニアの迫さん(@yuki_99_s)が「Skill Award」というプログラミングコンテストの開催を宣言されました。
【コンテスト開催!】
プログラミング力を伸ばす上で、手を動かしながらアウトプットすることが1番近道です。
ということで初学者しか参加できないコンテスト、 #SkillAward を開催決定。
優勝者には賞金10万出します!6月中になんか作って応募しましょ!▼申込みはこちらhttps://t.co/ga3g7ukZCz pic.twitter.com/z1giYIb8pZ
— 迫 佑樹/プログラミング講師 (@yuki_99_s) May 17, 2019
「プログラミング経験が一年未満」という条件に当てはまったこと。
さらに「優勝賞金10万円」という点にも惹かれ、良い機会だと思ったので参加を決めました。
Laravelへの理解を深めるため(スキルアップ)
元々はRailsに取り組んでいました。
しかし、就職先がLaravelをメインに使っている所になったため、最近Laravelの勉強を開始しました。

その中で「自作のサービスを作ることでスキルアップを図ろう」と考えたことも動機の一つです。
Laravelで作ったWebサービス【BookStorage~本の倉庫】
「BookStorage」というサービスを作りました↓
>>https://bookstorage.herokuapp.com/
「BookStorage」を一言で言うと
一言で言うと、「読みたい本を保存しておくサービス」です。
なぜこのサービスを作ったか?【背景・動機】
僕は読書が好きです。
本屋とかネットとかで読みたい本があったら、写真やスクショを撮ってスマホのフォルダに保存しています。
そして後で、その中から本を選んで買っています。
ところが最近は、フォルダ内の写真が多くなってしまい(数百枚)、管理が難しくなってきました。
- どの本から買えば良いか
- どこにどの本があるか
が分かりにくくなってしまっていたのです。
そこで、「読みたい本を整理して表示してくれる」ようなアプリがあれば便利だと考えました。
整理の方法として考えたのは、読むべき本を「優先度が高い順」に表示してくれる方法です。
これにより、「本を選ぶときに迷わなくて済む」そして「効率よく本を選んで読書ができる」と考えました。
迷ったポイント→優先順位をどう示すか?
一番の問題として「優先順位をどう示すか」がありました。様々な方法があるとは思いますが、
- 完成までの期間(1ヶ月)
- 自分の技術力(Laravel初心者)
を考慮して今回は、
と考えました。
サービスの中身の説明【概要】
具体的なサービスの中身の説明です。ざっくりと主要な部分だけ解説します。
表紙のページ。認証機能(ログイン、登録)も実装してみました。
ログイン画面。シーディングで値を入れておいたので、表示されている名前とパスワードでログインできます。
ログイン後の画面。登録した本の一覧が「得点順」に表示されています。
新規の作成ページです。本に得点をつけます。
Laravelアプリ作成の流れ・使った技術等
「Laravelアプリ作成の流れ・使った技術等」をサクッとまとめます。
Laravelアプリ開発の流れ【一ヶ月を振り返る】
ざっくりまとめると、
です。
1日目(サービスの作り方を調べる)(コンセプト等を紙に書き出す)
まず、何もわからなかったので、「Webサービスの作り方」でググりました。開発の流れをイメージするためです。
その後、コンセプト(サービス名、機能等)やMVCアーキテクチャの構造、データベース設計等をざっくりと紙に書き出しました。
モックアップとかを作って詳細に設計したわけではありません。本当にざっくりですね。

今思えばこの作業をもっと丁寧にしておけば良かった。。
2日目以降(作りながら考える)
2日目以降は、
分からないところとか、エラーが出たら、その都度ググりまくって、考えまくって解決する形です。
開発の過程で、全く解決できないエラーに5回ほどは遭遇しましたが、なんとか全て乗り越えることができました。

エラーは萎えるけど、解決できた瞬間は最高に嬉しいんですよね(*´-`)
使った技術・フレームワーク
ザックリとこんな感じです。
- エディタ Atom
- Git, GitHub
- Laravel 5.8.19
- PHP 7.1.23
- Heroku(デプロイ)
- PostgreSQL (本番環境)
- SQLite(開発環境)
- Bootstrap
- Font Awesome
今回、Gitでブランチを切ったりしてみました。
かなり理解は深まりましたが、まだまだなので、コツコツ学んでいきます!

Gitについては以下の記事にまとめておいたので、興味のある方は是非!

実装した機能
実装する機能に関しては、勝又さんのこちらの動画を参考にさせていただきました。m(_ _)m
- 記事一覧表示機能
- 記事詳細表示機能
- 記事投稿機能
- 管理ユーザ登録機能
- 管理ユーザログイン機能
- 画像ファイルのアップロード機能
- DBテーブルのリレーション管理
- DBトランザクションの制御機能
- ページネーション機能
- 単体テスト機能
- 統合テスト機能
とはいえ、今の時点ではまだ実装できてないものもあるので、少しずつ機能追加していきたいと思います。
勝又さんはエンジニア向けの動画を多数投稿されています。有益な情報ばかりなのでおすすめです。
>>KENTA / 雑食系エンジニアTV
ツイッターでも発信されています。
>>@poly_soft
参考にした書籍・資料
主に以下の2つです。
- PHPフレームワーク Laravel入門
- Google検索
PHPフレームワーク Laravel入門
主にこちらの本を参考にしました。
チャプターの構成は以下のようになっています。
- Laravelを準備する
- ルーティングとコントローラ
- ビューとテンプレート
- リクエスト・レスポンスを補完する
- データベースの利用
- Eloquent ORM
- RESTfulサービス/セッション/ペジネーション/認証/テスト
Laravelのほぼ全ての機能について、かなり分かりやすくまとまっています。
「Laravel初心者が最初に読むべき一冊」「Laravelの全体像をつかむための一冊」としては最適でしょう。
Google検索
上記の本に載っていないことは、ググりまくりました。
開発期間中にどれだけの記事を読んだか、本当に分かりません。笑
苦しかったですが、かなり知識は身についたと感じています。

日本語だけでなく、英語でも検索する癖をつけましょう。エラーを解決できる確率が格段に上がります!
初めてのlaravel開発、良かった部分
LaravelでWebサービスを作ってみて良かった点は、以下の3つです。
- Laravelの全体像がつかめた
- 様々な技術への理解を深めることができた
- 「自分で手を動かす」ことの大切さを改めて認識できた
Laravelの全体像がつかめた
確実にLaravelへの理解は深まりました。
MVCアーキテクチャの関係性、役割、実装方法はもちろんのこと、データベース関係の知識や認証機能に関する理解も深めることができたと感じています。
様々な技術への理解を深めることができた
Laravelだけではありません。
「個人開発」ということでバックエンドはもちろんのこと、フロント側も実装する必要があったため、HTML/CSS等の知識もかなり深めれらたと思います。
他にもGitの扱いやHerokuへのデプロイに関しても経験を積めました。
「自分で手を動かす」ことの大切さを改めて認識できた
今回、本当にゼロから自分でサービスを作ってみたことで「自分で手を動かす」ことの重要性を改めて認識できました。
今後もこの学びを生かして、本や資料を読むだけでなく、「手を動かす」ことを意識していきたいと思います。
初めてのLaravel開発、反省点
もちろん反省点もあります。
- 最初にもっとちゃんと考えておいたらよかった
- そもそものアプリのコンセプトが分かりにくい
最初にもっとちゃんと考えておいたらよかった
最初の設計が雑すぎました。笑
ちゃんとモックアップとか設計書を作っていたら、よりスムーズに開発を進められたのかなと思います。
次回はこの反省を生かしたいです。
そもそものアプリのコンセプトが分かりにくい
今回、「ぼく自身の日常の不便」を基にサービスを作ってみました。自分としては分かりやすいサービスを作ったつもりです。
しかし、他の人目線に立ったとき、分かりやすいかといえば、正直分かりにくいと思います。

ニーズもなさそうですし。。
今後は「自分だけでなく、他人にとっても分かりやすい」サービスの開発を意識していきたいです。

ま、「スキルの向上」が目的なら、そんなにこだわらなくてもいいんですけどね。
BookStorage、今後の課題点【少しずつ改善していきます!】
一応SkillAwardには応募しました。
しかし、正直完成はしていません。課題は山積みです。
主には以下の辺りですね。
- バリデーション機能の追加
- デザインをもっと綺麗に
- アマゾンリンクで商品ページに飛べるようにする
- インフラにHeroku以外を使う(AWSなど)
- Dockerの導入
- 自分なりの価値基準で、本の評価項目を設定できるようにする

少しずつ改善していきます!
プログラマとして成長するためには「手を動かす」が一番大事!
今回、Laravelでサービスを作ってみて一番感じたことは、
「手を動かすことの大切さ」です。
たくさんググって、考えて試行錯誤する中で、やはりプログラマとして成長する上では、「自分で手を動かす」が一番有効だと感じました。
今後、新しい技術を学ぶ機会もたくさんあると思います。
そのときは、「基礎学習→実践」のスパンをなるべく短くして、「自分で手を動かす」ことを一番に意識していきたいです。
今回は以上となります。
最後まで読んで頂き、ありがとうございました。
この記事が、あなたがWebサービスを作る上で少しでも参考になっていたら嬉しいです。
では!m(_ _)m
こちらの記事もおすすめです!!



初めてのLaravelアプリ作成にあたり、参考にした資料(一部)
一部ではありますが、役に立った資料をまとめておきます。参考にしていただけると嬉しいです。m(_ _)m
コメント