猫でもわかるWebプログラミングと副業

本業エンジニアリングマネージャー。副業Webエンジニア。Web開発のヒントや、副業、日常生活のことを書きます。

これまで僕が仕事で使ったWebフレームワークと言語の特徴

これまで僕が業務で触ったことあるフレームワーク(と言語)は

  • Laravel (PHP)
  • Slim Framework (PHP)
  • Django (Python)
  • Gin (Go言語)

で、どれも1年以上は保守しています。

長年業務で使ってきたこれらのフレームワークについて、実際使ってみてどうだったのか、どのようなプロダクトに向いているのかまとめます。

Laravel (PHP)

f:id:yoshiki_utakata:20210526114644p:plain

Lumen も触ったし、下に書いてあるフレームワークも触ったし、いろいろな言語やフレームワークを触ったけど、一番無難なフレームワークはこれ。

DB接続、SQLのクエリビルダ、Redisなどのキャッシュ、ログ出力、DI、DBマイグレーションなど、必要なものはだいたい揃っています。

DIが特に優秀で、何も考えずにDIが実装できます。

また、Web開発において考えたくない部分だけをフレームワークがやってくれるので、非常に便利です。余分な機能が少なく、ドキュメントも整っているので、学習コストが低いのも魅力です。

PHP自体も学習コストが低い言語なので、その点も良いです。

デメリットは、後述のGoなどと比べて遅いこと。PHPが若干遅めなのと、Laravelも重めではあるので、高いパフォーマンスを求めることはできません。

全体的に簡単で扱いやすいフレームワークなので、一番オススメできるフレームワークです。

Slim Framework (PHP)

f:id:yoshiki_utakata:20210526114800p:plain

基本的には Laravel を使うのがいいです。

クエリビルダ等が不要で、ルーティングだけあれば良い、かつそこそこパフォーマンスほしい場合は採用するとよいです。

Django (Python)

f:id:yoshiki_utakata:20210526114735p:plain

Python が最近人気言語となってきおり、それに伴い Django も人気のフレームワークとなっています。

課題としてはパフォーマンスで、PHPと比べても遅いので、かなり課題になると思います。

機能はLaravelよりも豊富ですが、その分学習コストは高いです。

Django REST framework という、REST API を簡単に実装できるフレームワークがあり、これが優秀です。

REST framework に従って REST API を実装するのであれば、かなり優秀かなと思いますが、凝ったことをやろうとすると破綻するので、そこが難しい所です。

Python を使いたい場合はおすすめですが、言語が何でも良い場合で、Web開発の場合は、Laravel のほうがおすすめかなと思います。

Gin (Go言語)

f:id:yoshiki_utakata:20210526114931p:plain

パフォーマンスを求めるなら非常に良いフレームワークです。

PHP と比べて5倍〜10倍くらいのパフォーマンス(request/secなど)が出るでしょう。

フレームワークとしては非常にシンプルで、機能も少ないです。ほぼルーティングの機能しかないです。

言語としても PHP のように成熟したものでもなければ、 Web 特化でもないので、 Web サービスを作る時には若干扱いづらいところがあります。DIフレームワークなどはまだ微妙かなと感じます。

Go言語自体の言語仕様も複雑なので、学習コストも高めです。