NINA HOUSE

技術ブログ作ってみる

フレームワークの賞味期限について

web開発でフレームワークって欠かせないと思います。
現在わたしはC#フレームワーク.NET Coreについて勉強中です。

これまでに他の言語ではPHPのLaravel、Vue.jsのNuxt.jsを触ったことはありますが、特徴はそれぞれだけど基本的にどれも同じだと思っています。各種構造を理解できれば、特定の場所に必要な機能を追加実装するだけでwebアプリとして成り立つので積極的に使っていきたいところです。

フレームワークとは

簡単に言ってしまうと「必要な機能がすでに実装されているファイルをまとめているフォルダ」です。

こんなの ↓
f:id:nina-b:20210428174614j:plain:w300

もちろんこのファイルたち、裏で密につながっています。

例えばフォームのバリデーション。
自分で一から実装すると結構面倒ですが、フレームワークに標準で簡単にバリデーションを実装できるような機能がついてたりするので重宝します。標準のセキュリティがしっかりしてたりとか。

他にも書ききれないほどたくさんの機能がついてるので、使いたいフレームワークの特徴をそれぞれ調べてみると良いと思います。

docs.microsoft.com

バージョンとは

フレームワークにはバージョンというものがあります。
(例:.NET Core3.1の3.1の部分)

だいたい数字が増えるごとにバージョンが上がっていきますが、それぞれ新たな機能が追加されたり、そのバージョンでコーディング方法が変わっていたりするのでこの数字は非常に大事です。

そこで問題になってくるのが、「どのバージョンを選べばいいのか」。

フレームワークをインストールするときにバージョンを指定することができます。例えば .NET Coreは5が最新、Laravelでは8が最新(2021/4現在)なので最新を選べばいいかというと、必ずしもそうではありません。

もちろん選び方は人それぞれなので一概に言えることではありませんが、どれを選べばいいか迷っている方の一つの判断材料になればいいなと思います。

LTS(Long-term support)について

それでは本題、フレームワークの賞味期限についてお話します。

LTS(Long-term support)はその名の通り、「長期サポート」という意味です。公式がながーくサポートしてくれるバージョンというのが、あらかじめ決まっているんです。
.NET CoreやLaravelには、バージョンによってLTSなものとそうではないものがあります。
(LTSはフレームワークに限らず、OSや言語にもあります!調べてみましょう)

.NET CoreのLTS ↓

f:id:nina-b:20210428212613j:plain:w500

.NET Core and .NET 5 official support policy

LaravelのLTS ↓ 

f:id:nina-b:20210428212655j:plain:w500

Release Notes 8.x Laravel

ごらんの通り2021年4月現在では、.NET Coreでは3.1が最新、Laravelでは6が最新のLTSバージョンとなっています。
※それぞれ期間も違うので注意が必要です。

サポート期間が終了するとどうなるのか

ではサポート期間が終了するとどうなるでしょうか。

もちろんいきなり動かなくなったりすることはありません。もしフレームワーク側に重大なバグが見つかったとしても更新されず、セキュリティのリスクが上がるなど、webアプリが少しずつ腐っていきます。

ではどうすればいいのかというと、新しいバージョンに切り替えていく必要があります。 アップデートしながら運用していかなければなりません。
新しいバージョンを選ぶ時も、LTSを考慮する必要がありそうです。

まとめ

フレームワークを使ってwebアプリを開発・運用していくことを考えると、LTSは必ず検討しなければなりません。
もちろん最新バージョンにしかない新しい機能が使いたい!という場合は、LTSでなくともそのバージョンを選択する必要があると思います。

最適なバージョンを自分で選択できるようになりたいなと思います。おわり。