Webフレームワークの調査メモ

技術全般

はじめに

Webアプリケーションを作ろうと思ったは良いものの、さっぱり作り方がわかりません。
どんなフレームワークがあり、どういう勉強をすればよいのかを個人的にまとめてみました。
あくまでも知識のない人間が、勉強する際の指針としてまとめたものなので、内容の正確さについては保証はしません。あくまでも個人の備忘録となります。

フレームワークとは

そもそもフレームワークとは一体なんなのか。
用語としては「一般的には、システム構築するための基盤、あるいはサービスを提供するための基盤となるソフトウェアのこと。」らしい。

フレームワークとは - コトバンク
ASCII.jpデジタル用語辞典 - フレームワークの用語解説 - 骨組み、構造の意味。一般的には、システム構築するための基盤、あるいはサービスを提供するための基盤となるソフトウェアのこと。プログラミング分野では、オブジェクト指向プログラミングにおける、ソフトウェアの開発基盤を指す。アプリケ...

システムを簡単に作れるというものではなく、フレームワークを理解して、そのうえで、自身でシステムを構築していく必要があるのだそうで。

Webフレームワーク

Webアプリケーションを作成するうえでは、調べた限り、以下の3種類が主流となっている様子。

  • Javascriptフレームワーク
  • Pythonフレームワーク
  • Rubyフレームワーク

そもそも、Webアプリを開発するにあたり、言語によって得意な分野があるのだそうな。
例えばPythonとかはAI、IoTとかに強かったり。
フレームワークを選定する際には、とりあえずこのフレームワーク、というわけではなく、目的や言語にあわせたフレームワークを選択するのが良さそう。

初心者向けフレームワークとか書いてあっても、自分が作ってみたいシステムと相性が良くなくて、あとになってがっかりするということもありそう。

また、Webアプリケーションを構成する要素としては、以下の2種類が存在する。

  • フロントエンド
  • バックエンド(サーバーサイド)

ざっくりと、フロントエンドは利用者側のブラウザで処理されるようなUIがあてはまり、バックエンドはフロントエンドからの要求に対して返答をするサーバ側の処理があてはまるのだそうな。
フレームワークもフロントエンドのフレームワーク、バックエンドのフレームワークが存在するので、ちゃんと理解したうえで選定をする必要がある。

また、バックエンドのフレームワークにはHTMLを生成してくれるような、フロントエンドも兼ねることができるようなものも存在するらしい。

ちゃんとフレームワークの立ち位置、役割、得意分野を意識してから最初の一歩を踏み出すのが重要なように思われる。

やりたいこと

今後、いろいろな技術を学ぶにあたり、やりたいことから必要な技術を考える力を養いたいので、まずはやりたいことと、必要そうな技術について考えてみる。

やりたいことはブラウザでやりとりができるチャットBOTの作成です。

応答を出力する部分はバックエンド部分でサーバ側での処理が必要になります。
ここで登場するのが、バックエンドのチャットBOT用のフレームワークです。
使ってみたかったのがGithub社が公開しているhubotです。

HUBOT
Hubot is your friendly robot sidekick. Install him in your company to dramatically improve employee efficiency.

これで、バックエンド側は良いとして、次はフロントエンド部分をどうするかを考えます。
hubotはWebサーバとして、HTMLを返答することもできるらしく、hubot一本で完結することもできるそうです。

ただし、ここでは敢えて、フロントエンドはフロントエンドの別のフレームワークを使ってみたいと思います。ここではJavascriptベースのReactを使ってみようかなーと思います。
hubotもReactもNode.jsなので、共通している点は多いと思ってる(思いたい。)

コメント

タイトルとURLをコピーしました