今回はPHPのフレームワークであるLaravelについて、メリットとデメリットを解説していきます。
私自身、今までフリーランスエンジニアとして、「Laravelを用いたWebサービス開発」「Laravelを使わずに生のPHPのみで行う開発」のいずれも経験してきました。
その経験から、Laravelを使うことによって感じられたメリットとデメリットをあげていきたいと思います。
想定読者は以下の通りです。
・現在自身の開発でLaravelを使用するか、PHPのフルスクラッチで開発をするか迷っている方
・他のPHPフレームワークを使用するか、Laravelを使用するか迷っている方
Laravelのメリット3選
それでは早速Laravelを使用するメリットを3つ紹介していきます。
Laravelのメリット①:使用者が多くネット上に情報が多い
まず1つ目に挙げるメリットは、使用者が多くネット上に情報が多いという点です。
使用者だけが増えているわけではなく、案件数などもかなり増加してきています。
実際に、Laravelの案件数は2020年12月時点で以下のようになっています。(フリーランススタート調べ)
案件数で見ると圧倒的ですね。
さらに、フレームワークを使用する人口や案件数が増えると、必然的にネット上の情報も多くなります。
ネット上に情報が多いと、エラー解決のスピードも向上します。
自分がぶつかっているエラーや問題は、大抵過去に誰かが経験していて、解決方法を残しているからです。
Laravelのメリット②:便利な機能がデフォルトで用意されている
LaravelではWebアプリケーションを作る上で良く使う機能が用意されています。
というよりも、フレームワークってそもそもそういうものですよね笑
例えば、Laravelではコマンドを1つ実行するだけで、認証系の機能(ログイン機能、新規登録機能、パスワードリマインド機能、パスワード変更機能など)を全て揃えてくれます。
他にも様々な機能を提供しているので、気になる方は公式をのぞいてみてください。
▶︎ Laravel公式ページ
Laravelのメリット③:チーム開発の効率が高まる
これについてもLaravelだけというよりもフレームワーク全般のメリットって感じです。
LaravelではMVCという概念を取り入れています。
MVCというのは、Model(モデル), View(ビュー), Controller(コントローラー)という3つの部分にそれぞれの役割を分けてプログラムを設計していくような考え方です。
このように役割を分けることによって、チームでの開発が進めやすくなります。
Laravelのデメリット3選
次にデメリットを3つ紹介していきます。
Laravelのデメリット①:コードが統一されにくい
Laravelは自由度が高く、人によって様々な書き方ができるため、コードが統一されにくくなります。
あまりコードが統一されていない状況だと、チーム開発の効率が下がってしまいますね。
ただ、もちろんフルスクラッチでプログラムを記述するよりは、ある程度コードが統一されるので、チーム内でルールを決めてプログラムを書いていけば問題なく開発を進めることは可能です。
Laravelのデメリット②:まあまあ重たい
デフォルトの機能が多いだけに、Laravelで作成したプロジェクトは少しだけ重たいというのがデメリットの1つです。
ただ個人的に使ってみた感想としては、小規模の開発でそこまで処理速度が気になることはありません。
大規模な開発であったり、処理速度が重要視されるようなアプリケーションでは、フレームワーク選定を慎重にする必要があるかもしれませんね。
Laravelのデメリット③:便利さ故に裏の仕組みを忘れがち
Laravelでは前述した通り、コマンド一つで認証周りの機能を作れたり、バリデーション機能なども用意されているため、開発がサクサク進みます。
しかし、久しぶりにフレームワークを使わずにコードを書こうとした時に、結構「あれ?ここどういう風に書くんだっけ?」ってなります。
もちろん便利なものは使い倒せば良いと思いますが、あまりそこだけに傾倒し過ぎて本質的な部分を理解せずにやっていると、Laravelだけしか触れないLaravelエンジニアになってしまいます泣
もちろんそれでも現時点では案件はたくさんありますが、将来的なことを考えて、あまり特定のフレームワークだけに特化し過ぎないようにしたいですね。
まとめ:Laravelのメリット・デメリット
今回は僕自身が実務経験の中から感じたLaravelのメリット・デメリットをあげました。
ここまでLaravelのデメリットについても触れてきましたが、僕自身は個人的に一番好きなフレームワークです。(実案件として一番長い時間触れているので愛着もあります笑)
最近トレンドのフレームワークの一つなので、皆さんも一度は触ってみることをおすすめします。