6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Spring Boot学習者が他言語のWebフレームワークを触ってみて気づいたこと

Last updated at Posted at 2021-09-11

こんにちは。ワタナベトシヒロです。
私はJavaのWebアプリケーションフレームワークであるSpring Bootを学習してきましたが、今回は他の言語のフレームワークも触ってみました。
Spring Boot(Java)、Laravel(PHP)、Ruby on Rails、Django(Python)を比較して、気づいたことを挙げていきます。
ただし、Spring Boot以外のフレームワークでは簡単なCRUD処理のAPIを実装しただけなので、フレームワークへの深い理解はできていません。

Spring Bootの特徴

コマンドを入力する機会が少ない?

Spring Bootのプロジェクト作成はWeb上で行ったり、IDEのGUI上で行うことが多いです。

また、LaravelやRailsではモデル作成やコントローラー作成用のコマンドがありますが、Spring Bootではコマンドを使ってファイルを作成する例は見たことがありません。

Spring Bootでは他のフレームワークと比べてCLIを操作する機会が少ない気がします。

DBのテーブルの作成はSQLで行う

Laravel、Rails、Djangoにはマイグレーションという機能があり、SQLを書かなくてもDBのテーブルを作成できますが、Spring Bootではフレームワークの機能を使わずにSQLでテーブルを作成しておくのが一般的だと思います。

プロジェクト作成時に生成されるコード量が少ない

最初に作成されるjavaファイルは3つだけで、最低限の記述しかありません。

htmlファイルも用意されておらず、初期状態でアプリを起動してアクセスしても何も表示されないのはSpring Bootだけです。

ただし、ディレクトリの階層は深く、初期設定では無駄なディレクトリ構成に感じてしまいます。
Spring Bootはパッケージ数が多い大規模なアプリのために設計されているのかもしれません。

image.png

Laravel

プロジェクト作成時に生成されるファイル数が多い

Laravelはプロジェクト作成時点でファイル数が多く、ディレクトリ構成もしっかり決められています。

image.png
↑ Spring Boot、Laravel、Rails、Djangoの4つの新規プロジェクトをまとめたGitリポジトリのコード割合です。BladeはLaravelのテンプレートエンジンなので、約7割がLaravel関連のコードで占められていることになります。

Ruby on Rails

Windowsでの開発が難しい

WindowsでRailsの開発をしようとすると、エラーに遭遇することが多く、特に環境構築で苦戦しました。

WindowsのWSL2という機能を使い、Linuxの仮想環境で環境構築をしてみましたが、それでもスムーズにいきませんでした。
(謎の警告が出たり、Rubyのインストール時に1時間以上インストール中と表示され続ける問題がありました)

Django

同名のフォルダやファイルが多くなりがち?

image.png

django-admin startproject <アプリ名>でDjangoプロジェクトを作成すると、<アプリ名>のフォルダが作成され、その中に同名の<アプリ名>のフォルダが作成されます。

また、__init__.pyやurls.pyなど、同名のファイルが複数作られることが多いですが、このように同名のフォルダやファイルが多いと紛らわしいのでは?と思いました。

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?