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

Laravelのコードが楽しくなった理由 〜OSI参照モデルを意識して読むという視点〜

Posted at

はじめに

最近、業務の中で Laravelのコードリーディング自社システムのキャッチアップ に本格的に時間を使っています。

上長からのオーダーや期待に応えること。
それに加えて、自分自身への新しいチャレンジとして「なぜこの処理はこう動いているのか」を説明できるレベルまで理解することを目標にしています。

そんな中で、これまで学んできた OSI参照モデル が、
Laravelのコードと結びつき始めたことで、コードリーディングの解像度が一段上がった感覚がありました。

この記事は、以前書いた L1〜L4を深掘りした記事の続編として、
L5以降(特にL5〜L7)をLaravelの視点で捉え直してみた記録です。

👉 前編(L1〜L4):
ネットワークが「線」でつながって見えた日:L1〜L4の理解が一気に進んだ学習ログまとめ

駆け出しエンジニア・初学者の方に向けて、
「OSIってネットワークの話でしょ?」が「アプリの理解にも使えるんだ」に変わるきっかけになれば嬉しいです。


前提:LaravelのMVCの流れは理解している

まず前提として、
Laravelの MVC(Model / View / Controller) の基本的な流れ自体は、ある程度イメージできていました。

  • ルーティング → Controller
  • Controller → Service / Model
  • Model → DB
  • 結果を View や JSON として返却

「コードとしては分かる」状態です。

ただし、

  • この処理は どの階層の責務なのか
  • どこからどこまでが アプリケーションの仕事 なのか

という視点は、正直あまり意識できていませんでした。

ここに OSI参照モデル を重ねたことで、
コードの流れが「役割の流れ」として見えるようになってきました。


L1〜L4を意識してきたこれまで

前編の記事では、以下を中心に整理しました。

  • L1:物理層(ケーブル・NIC・物理的な通信)
  • L2:データリンク層(MACアドレス、フレーム)
  • L3:ネットワーク層(IPアドレス、ルーティング)
  • L4:トランスポート層(TCP / UDP、ポート番号)

ここまでは、
「HTTPリクエストがサーバーに届くまでの土台」
という理解です。

Laravelにリクエストが届く 手前の世界 を理解している感覚でした。


気になり始めたL5〜L7

コードリーディングをしていると、
自然とこんな独り言が増えてきました。

  • 「このControllerはL7だよな」
  • 「DBに行くってことは、ここからL6の役割に降りるのか」
  • 「非同期通信や認証って、L5〜L6を行き来してるな」

OSIを暗記した知識ではなく、
今読んでいるコードに当てはめるようになった瞬間です。


Laravel × OSI の対応イメージ

L7:アプリケーション層

  • Controller
  • Request / Response
  • 認証・認可(Auth, Middleware)
  • APIエンドポイント

👉 「何をするアプリか」を定義する層

Controllerを読んでいるとき、
「ここは完全にL7の責務だな」と整理できるようになりました。


L6:プレゼンテーション層

  • データの整形
  • JSONレスポンス
  • Viewに渡すデータ構造
  • Eloquentの結果加工

👉 「どう見せる・どう渡すか」を担う層

DBから取得したデータを
そのまま返さず、整形している箇所を見ると
「今はL6の仕事をしている」と理解できます。


L5:セッション層

  • セッション管理
  • ログイン状態の維持
  • 非同期通信(状態を持ったやり取り)

👉 「通信の状態を保つ」層

認証処理やセッション周りのコードを読むとき、
「L5を扱っている」と考えることで、
責務の切り分けが見えやすくなりました。


OSIを意識するとコードが読みやすくなる理由

OSIを意識すると、
次のような変化がありました。

  • 処理の流れを 階層で分解 できる
  • 「ここでやるべき処理か?」を判断できる
  • 責務の越境に気づきやすくなる

結果として、
コードを追うストレスが減り、読むのが楽しくなった のが一番大きいです。


所感:この気づきは、まだ始まり

正直、この気づき自体は
エンジニアとして見れば「当たり前」の入口かもしれません。

ただ、
4月からエンジニアを目指してオンラインスクールで学び、
実際に働き始めた自分にとっては、
少し前の自分とは違う視点を持てた感覚がありました。

いつも思うことがあります。

「なるほどー」の後に
「でも、まだまだ分からんな〜」が来る

それの繰り返しです。


自分の理解度の階層も広げていきたい

そういう意味で、
コードの階層だけでなく、
自分自身の「理解度の階層」も、これから少しずつ広げていきたいと思っています。

分かったつもりで終わらせず、
昨日より一段深いところまで降りていく。

OSIの階層を意識するようになったのと同じように、
自分の理解もまた、下から順に積み上げていくものだと感じています。

明日もまた、新しいコードの中で
「なんだそれ、なるほど」を一つ拾いにいく。

今はそれを、地道に続けていきたいです。


おわりに

OSI参照モデルはネットワークの知識ですが、
アプリケーションを理解するための思考フレーム としても非常に有効だと感じています。

もし今、

  • Laravelのコードが追いづらい
  • MVCは分かるけど、腑に落ちていない

そんな状態であれば、
OSIを重ねて考えてみるのはおすすめです。

この記事が、誰かの「なるほど」の一助になれば幸いです。

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