0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

なぜ大規模用フレームワークになるとルーティング設定がいるのか?

Posted at

1. そう思ったきっかけ

初めてプログラミングを学び始めたとき、PHPを使ってウェブサイトを作成することは非常にシンプルでした。
ファイルベースの構造を使い、たとえば index.phpabout.phpcontact.php などのファイルを作成するだけで、特別なルーティング設定をする必要はありませんでした。URLがそのままファイルの構造に対応していたからです。

このようなファイルベースのルーティングは、小規模なウェブサイトでは非常に便利で直感的ですが、複雑なアプリケーションや大規模なプロジェクトになると、途端に管理が難しくなります。そのときに、フレームワークのルーティング設定がなぜ必要なのかを考えるようになりました。バニラのPHPでは不要だったルーティング設定が、フレームワークになると必須になる理由は何なのでしょうか?

2. 詳しい説明

私が調べた結果、大規模なアプリケーションでは、いくつかの要因によりルーティング設定が必要になります。
ここで上げられるのはlaravelですが、その他にもNode.jsJavaPythonなどを使用したフレームワークも含まれます。

2 - 1 URLと内部ファイルの分離

バニラのPHPでは、URLはそのまま物理的なファイル構造に対応していますが、大規模なアプリケーションでは、URLをファイル構造から切り離すことが望ましいです。なぜなら、URLはユーザーにとって直感的であるべきであり、変更されにくい設計が求められるからです。

フレームワークは、URLをコントローラやアクションといった内部ファイル・フォルダにマッピングする役割を果たします。これにより、物理的なファイル構造を意識せずに、自由にURLを設計でき、URLの変更や内部構造の変更にも柔軟に対応できるのです。

2 - 2 可読性とメンテナンス性の向上

数十、数百ものページや機能を持つ大規模なプロジェクトでは、各ページをファイル単位で管理することは煩雑です。ルーティング設定を使うことで、すべてのURLとその処理を一元管理でき、プロジェクトの可読性とメンテナンス性が大幅に向上します。

たとえば、LaravelやRailsといったフレームワークでは、ルートファイルにすべてのルーティングが定義されているため、新しいページを追加したり、URL構造を変更する場合にも、中央集約された場所で管理できるメリットがあります。

2 - 3 再利用性と拡張性

大規模なアプリケーションでは、同じ処理を異なるパスで呼び出したり、特定の条件に応じて異なるビューを表示することが求められます。ルーティング機能は、これを実現するための柔軟性を提供します。たとえば、同じコントローラを複数のURLで再利用できたり、ルートに条件(HTTPメソッドやパラメータの値など)を設定して、動的な振る舞いを実現することができます。

2 - 4 セキュリティとアクセス制御

ルーティング機能が私の中で一番必要としている理由はここです。大規模なアプリケーションでは、ユーザーの認証やアクセス権の管理が必要になります。フレームワークのルーティング機能は、各ルートに対してアクセス制限を設定したり、ミドルウェアを適用してセキュリティを強化することができます。
これにより、ユーザーが特定のページにアクセスする前、認証やアクセス権の確認が簡単に行えるようになります。

3. まとめ

小規模なプロジェクトの場合は、シンプルなファイルベースのルーティングで十分な場合もありますが、大規模なプロジェクトになると、ルーティング設定は必須となります。URLと内部ファイル・フォルダの分離、可読性の向上、再利用性や拡張性、セキュリティ面での強化など、さまざまな理由から、フレームワークがルーティング設定を提供しているのです。
大規模プロジェクトでは、ルーティング設定を活用することで、コードベースの管理が容易になり、将来的な拡張や変更にも柔軟に対応できるようになります。

読んでくれてありがとう

この記事を読んでいただき、本当にありがとうございました。 技術の世界は常に進化していますが、皆さんの理解や意見が共有されることで、より良い未来が築かれると信じています。少しでもお役に立てたなら嬉しいです!ヽ(^o^)丿

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?