バックエンドのエンジニアとして働き始めて1年2ヶ月が経とうとしてます。
今日は、バックエンドエンジニアであれば必ず触れたことがあるであろう、PHPのフレームワークであるLaravelについてまとめてみたいと思います!
ああ、あの人気のLaravelね!PHPのフレームワークといえばLaravelだよね!と言っているそこのあなた!
Laravelがなぜ選ばれているのか?将来性はどうなのか?稼げるの?など一度は考えたことがあると思います。
私も普段業務でLaravelを使っていますが、特徴についてはなんとなくわかっているつもり、状態でした。
なのでこの機会にLaravelの特徴をここに残していきたいと思います!(人は忘れる生き物なので!ね!)
Laravelのメリット6選
学習コストが低い
Laravelは世界のトレンドで調べると、今やPHPのフレームワークでは一番人気です。
実際にGoogleトレンドでPHPのフレームワークで調べてみたところ、2017年頃からlaravelの人気は右肩上がりで、圧倒的な人気を誇っていることがわかります。
そのため、多くの書籍やネット記事などが存在し知りたいと思ったことはすぐに調べられます。
学習コストが低いということは、参入障壁が低いとも言い換えられますね。つまりそれほど多くの人が利用しているのです。
多くの人が利用しているということは…次のメリットに繋がるわけです。
機能追加のバージョンアップが多い
たくさんの人に利用されているからこそ、新機能リリースが多いのも特徴です。
新しい機能が欲しいと思った時に、Laravelにもともと組み込まれている機能を使ってそれを実現させることが容易にできます。
機能追加は長期にわたって行われているので、将来性が高い言語ともいえますね。
MVCモデルを採用している
MVCモデルとは、処理をModel(モデル)、View(ビュー)、Controller(コントローラ)の三つの役割に分けて実装し、それらが連携することによって動作するモデルです。
Model:データの保存や取得などデータベースとのやりとりを行う
View:ユーザから見える部分を作る
Controller:ModelとViewの中間で、条件分岐や複雑な処理を行う
このように機能が分かれていることで、機能ごとに効率的な開発を行うことができます。
Composerでパッケージ管理できる
Composerとは、開発に必要なパッケージやライブラリを管理したりインストールしたりする機能を持つツールです。LaravelはこのCompsoerを採用しています。
Composerは自動で必要なライブラリなどをインストールしてくれるので、プログラムの依存関係問題を回避できます。
プログラムの依存関係問題とは、あるライブラリAを実行するために別のライブラリBが必要になる場合のように、AがBに依存しているためにどちらもインストールしなければならない、という非効率性を言います。
この点、Laravelは必要な機能をComposerが自動でインストールしてくれるので大変効率的で便利です。
DB操作が簡単
DB操作をする際、SQLをイチから描くと記述量が多くなってしまったり、DB接続の設定が大変だったりします。
しかしLaravelには データベースを容易に操作できる、migration(マイグレーション)と Eroquent(エロクアント)という機能があります。
migrationとは、データベースのテーブル定義や変更履歴を記述するファイルです。migrationにテーブル情報を書き込めば、必要とするテーブルを作成・変更することができます。
Eroquentとは、Model(モデル)とDBを関連づけることでDB操作を直感的に行える機能です。
SQLを書けない場合でも、これらふたつを組み合わせることで複雑なDB操作を簡単に行うことができます。
コマンドツールで設定や更新が容易にできる
Laravelはartisan(アルティザン)というコマンドラインインターフェース(いわゆるCLI)を用いています。指定のコマンドを実行することで、プログラムを実行することができます。
ファイルの生成やSeederの実行だけでなく、指定の時間に指定のコマンドが動くように設定すれば半自動的にプログラムを処理することもできます。
php aritsan ~~ とよく見かけるコマンドは、実はLaravelの便利機能の一つなのです。
Laravelのデメリット2選
自由が高いためコードが複雑化しやすい
できることが多く、コードを書くときの制約が少ないのがLaravelの特徴ですが
裏を返せば、みんなが好き放題コードを書くと、これはなんのための記述?同じことをしてるけど書き方が違うな?ということが起きてしまうということです。
そのためチーム開発でLaravelを行うときはもちろん、個人開発の時も
記述の意味と内容が分かりやすいよう一定のルールを決めて書く必要があります。
適宜コード補完のコメントを入れておくことや、チーム内でコードの書き方ルールなどを統一する必要があります。
(実際、Laravelは初心者でもとっつきやすいので、現場で好き放題なコードを書くとめちゃくちゃ指摘されます…^^;)
多機能なために処理速度が遅い
実は処理速度が遅いのがLaravelの特徴です。
速度という面で言えば、Laravelより少し前に流行ったCakePHPの方が早いのです。
これはフレームワークの特徴なので仕方がない部分はありますが
SQLの書き方を工夫したり、プログラム内で無闇に繰り返し処理を行わないなど、速度改善のための工夫を漏れなく行うことが重要になってきます。
Laravelを使えると年収は上がるのか?
さて、ここまでLaravelの特徴を書いてきましたが、Laravelが人気なフレームワークで多くのサービスに使われているのは言うまでもありません。
ですが、私は考えました。笑
Laravelは使っている人が多い、採用してる企業も多い、つまり需要はある。
だけど、飽和してないのだろうか?
飽和していたら希少性は低いので、収入は上がらないのではないか?と。。
Laravelを使った案件の金額を見てみるとそれなりの金額ではあるが、Laravelしかできないエンジニアの収入はどうやら低そうだ..という事が分かったのです。
PHPエンジニアとして収入を上げるには、どうやらLaravelは確実に扱えつつ、そのほかの高機能で希少性の高い言語も同時に習得していく必要上がりそうです。
あるいは上流工程もできるエンジニアになってサービス全体を見れるようになる事ですね。
ご覧いただきありがとうございました!!