フレームワークってなんだろう

左上 : thespruce, “House Foundation Types, Uses, and Pros and Cons”
https://www.thespruce.com/types-of-house-foundations-1821308
右上 : MASTER BUILDERS, “TIMBER FRAME HOMES”
https://www.masterbuilders-inc.com/custom-homes/timber-frame-homes
左下 : ICOGRAMS, “Templates”, https://icograms.com/templates/construction/process
フレームワークはプログラミング以外でも使用される言葉であり、よく建築を例に説明されます。
例えば、家を建てる時、家の土台 (左上) や枠組み (右上) を作る必要があります。
これは、どんな建物 (一軒家、マンション、ビル) でも共通し (左下) 、
必ず最初に土台や枠組みを作る必要があります 。
ソフトウェア制作においても、同様です。
僕は、Webアプリケーション作成しか行ったことはありませんが (また、3つしか作成していませんが) 、
データベースの作成と接続、それに対応するモデルクラスの作成といった部分は多くのWebアプリケーション制作において、共通する内容になります。
フレームワークとは、この共通する部分を前もって用意してくれているものになります。
同じならば使いまわしにし、Webアプリケーション特有の機能の実装に時間をかけよう
ということになります。
ちなみに、プログラミングにおけるフレームワークを、chatGPTに聞いたところ以下のような解答が得られました。
これまでのノウハウという部分が好きです。
フレームワークとは、あらかじめbuildされた再利用可能なソフトウェアの部品、ライブラリ、ツール、そして、これまでのノウハウであり、アプリケーションやウェブサイト、そしてソフトウェアシステムの開発の基礎を提供するものである。
OpenAI. (2023). ChatGPT (Mar 14 version) [Large language model]. https://chat.openai.com/chat
フレームワークを使う理由
- 時間を節約することができるため
- プロジェクトに特有の機能の実装に集中できるため
- テストとデバッグが容易に行えるため
参考文献
- net solutions “What is a Framework in Programming? And Why You Should Use One”
https://www.netsolutions.com/insights/what-is-a-framework-in-programming/ - codecademy “What Is a Framework?”
https://www.codecademy.com/resources/blog/what-is-a-framework/ - THE COHORT “What Are Programming Frameworks?”
https://blog.appacademy.io/what-is-a-framework-in-programming/
3つのWebページを調査した結果、フレームワークを使う理由は主に上記の3つになります。
最初の2つはすんなりと受け入れることができます。
なぜなら、CRUDのような一般的な機能はボタン一つで行えるからです。
しかし、テストやデバッグを本格的に行ったことがないせいか、
なぜ、フレームワークを使うとテストとデバッグが容易に行うことができるのか、
はわかりませんでした。
フレームワークの方で、あらかじめ用意してくれるため、ある程度質が保証されている、
とかならわかるのですが・・・。
また、この他にフレームワークを使うメリットとして、
セキュリティ面の向上や可読性が高いといったことも挙げられていました。
フレームワークの種類
種類 | 主要な言語 | |
Angular | Web (フロントエンド) | TypeScript |
React JS | Web (フロントエンド) | JavaScript |
Ruby on Rails | Web (バックエンド) | Ruby |
ASP.NET / ASP.NET Core | Web (バックエンド) | C#, F# |
React Native | モバイル | JavaScript |
Xamarin | モバイル | C# |
https://www.netsolutions.com/insights/what-is-a-framework-in-programming/
Webアプリケーション
Webアプリケーションに対するフレームワークには、フロントエンドとバックエンドのものがあります。
フロントエンドには、例えば、Angular や React JSがあり、これらはJavaScriptを主要な言語としています。
(TypeScriptはJavaScriptに構文を追加したものらしいので、JavaScriptと言っても、間違いはないはず)
バックエンドには、Rubyを主要な言語としたRuby on Rails や C#, F#を主要な言語としたASP.NET があります。
ちなみに、僕はASP.NETを目下勉強中です。(2023年9月14日)
モバイル
モバイルとは、スマホのアプリを指します。(おそらく)
モバイルのフレームワークには、JavaScriptを主要な言語としたReact Nativeや、
C#を主要な言語としたXamarinがあります。
今回紹介したもの以外にもまだまだあるため、気になる方は「フレームワーク プログラミング 一覧」で、
調べてみてください。
まとめ
- フレームワークは、ソフトウェア開発の基礎を提供してくれるもの
- フレームワークを使う代表的なメリットは以下の3つ
- 時間を節約することができるため
- プロジェクトに特有の機能の実装に集中できるため
- テストとデバッグが容易に行えるため
コメント