はじめてLaravelで開発し、デプロイした話。

どうも、おぎくぼです。

かなり久しぶりの投稿になりました。最近はPHPのフレームワークであるLaravelでWebアプリケーションを開発していました。

ちなみに作ったのは、プロテインの口コミサイト「プロコミ!」です。

プロコミ!(https://procomi.herokuapp.com/)

このアプリケーションを開発した背景などは別の記事で紹介したいと思います。

この記事では、初めてのLaravelでの開発の流れについて書いていきます。

主に、環境構築からデプロイまでです。コードは一切出てこないので、「へー、こうやって開発したんだ〜」ぐらい、軽く読んでもらえたらなと思います。

なんでLaravel??

「そもそもなんでLaravelなの?」とツッコミを入れられる可能性があるので、簡単に理由を説明します。

Laravelを選択した理由は、今後お世話になるであろう企業では、主にLaravelで開発しているからです。

それ以上の理由はありません。はい、次行きます。

色々考える

では開発の流れを紹介していきます。まずは色々考えます。

・どんなアプリ?
・名前は?
・どんな機能が欲しいか?
・データベースはどうするか?
・デザインは?

こんな感じで色々考えて、大まかな形を少しずつ作っていきます。

作っていく中で変更が面倒なこともあるので、ある程度は軸を定めます。

環境構築

環境構築というと何だか難しそうに聞こえますね。(実際、難しいし最高につまらない。)

簡単にいうと開発できるように準備するということです。間違ってたらすいません。

私はここで大コケしました…環境構築で躓いた話は長くなりそうなので、別の記事にします。

今回の環境構築はDockerでしました。Dockerは簡単にいうと、箱(実際はコンテナと言います)を用意して、その中で開発できるツールです。

ローカル環境の構築があっという間に終わります。

ちなみに参考にした、また実際に使ったのはこちらです(最強のLaravel開発環境をDockerを使って構築する【新編集版】)超助かりました。

コーディング

環境構築ができたら早速コードを書いていきます。まずは見た目の部分(UI)を作っていきます。

HTML・CSS・JS

まずはHTML・CSS(Sass)で見た目の部分を作ります。

私はデザインカンプを作るのではなく、頭の中で大まかなデザインをイメージして、そのイメージと実際の見た目を考えながらコーディングします。(デザインカンプの作成に時間を取られたくないです)

なのでコーディングは試行錯誤の連続で、意外と時間がかかります。

HTML・CSSが大体書けたら、JS(jQuery)で動かします。

ここは結構好きです。今回は意外と書いたので、新たな発見もありワクワクが止まりませんでした。はい。

いざ、Laravel

ある程度見た目ができたらLaravelでデータのやりとりや表示を行います。

初めてのLaravelは感動の連続でした。artisanコマンドやcomposerでいろんなものがサクサク作れて楽しかったです。

初めはMVCモデルなどのフレームワーク特有の記述には苦戦しましたが、だんだんと慣れてきて、開発の中盤からはすごく楽しかったです。

また、Laravelは世界的に人気の高いPHPフレームワークなので、躓いてもググればなんとかなりました。

不安なこと

Laravelはフレームワークなので大枠がある程度できています。

その上コマンドで色々とできるので、Laravelの裏での処理を知らなくても割となんとかなります。

自分で全てのコードを書くよりも手軽で便利な反面、コードを理解していなくても使えるので、本質的なプログラムの理解には繋がりません。

「なぜこのような処理が行われるのか?」「このコードでどんなコードを呼び出しているのか?」などを考えないと、表面的な理解のみに留まり、エンジニアとしての力はあまり伸びないと思います。

なのでこれからはLaravelの処理について注意深く学んでみたいと思います。

デプロイ

コードがかけたらデプロイします。

今回のデプロイはHerokuで行いました。ググったらHerokuに関する記事が多く、無料で使えるとのことだったので、Herokuにしました。

多少躓きましたが、思っていたよりは早くデプロイできました。

当初の予定ではgitのmasterブランチにpushしたらテストコードが走って、問題がなければ、自動でデプロイできるようにしたかったのですが、僕にとっては少し難しかったです。

CI/CDパイプラインについてはまた詳しく学習します。

はじめてLaravelで開発し、デプロイした感想

楽しかった!

今まではデータのやりとりのない、静的なサイトしか作ったことしかなかったので、動くものを自分で作ったというのには感動しました。

まだLaravelの道に一歩踏み出しただけなので、これから新機能を実装したり、実際の業務の中で色々学びたいと思います。

また、個人開発ではありますが、企画してデプロイまでのフローを経験できたことは、大きな経験だと感じました。

これからも楽しくやっていきまーす。

ではまた。