FinatraはScalaに活用されるFinagleとTwitterServerの上にAPIサービスを簡単に構築するためのマイクロフレームワークです。Twitter社によって開発されRubu向けフレームワーク「Sinatra」をモデルに開発されたことで知られております。この記事ではFinatraを理解するために初心者でも分かる歴史、特徴、基礎知識などを簡単に解説していきます。
FinatraとはTwitter社によって開発されたFinagleとTwitterServerの上にAPIサービスを簡単に構築するためのフレームワークです。Rubyのフレームワークである『Sinatra』をモデルに開発されており軽量Webフレームワークとなっております。高速でテスト可能であり、Twitter自社のサービスにも使われていることからScalaフレームワークとして高い注目を集めております。
Scalaとはスイス連邦工科大学のマーティン・オーダスキー氏によって2001年に設計されたJavaに影響を受けたオブジェクト指向と関数型言語の特徴を統合したプログラミング言語です。世に公開がされたのは2004年始めの頃でJavaプラットフォームにリリースされました。ScalaはJVM上で動作するため、Javaのライブラリを不自由なく使えるという特徴があります。
他にも.NET Framework上でも動作するため、同様に.NETライブラリも使用することが出来ます。(※.NETサポートは2012年に中止)2003年に誕生した比較的新しいプログラミング言語ですが、2019年に『GitHubPullRequest』によって発表されたプログラミング言語使用率ランキングによると第12位を記録するほどの人気度が伺えました。
日本国内でも様々な有名サービスがScalaを用いた開発を行っており、代表的なものとして『SmartNews』『Chatwork』などが挙げられます。
『Scalaにおけるシステム開発を簡単に行えるように用意された枠組みのこと』
ScalaフレームワークとはScalaにおけるシステム開発のプログラミングを効率的に実施するために汎用的な機能群をまとめ、システムの骨組みとなるテンプレートまで用意してくれる枠組みのことです。フレームワークを活用することでプログラミングにおける記述コードを最小限に抑えることが出来ます。Scalaフレームワークの代表的な種類として『PlayFramework』『Finatra』『Skinny Framework』などが挙げられます。
Scalaフレームワーク人気どころ6選ついて解説された記事はこちら>>
Finatraの読み方は『フィナトラ』です。名前の由来はRubyフレームワーク の「Sinatra(シナトラ)」をモデルに開発されたことから「Finagle(フィナグレ)」×「Sinatra(シナトラ)」を組み合わせて『Finatra(フィナトラ)』となったといわれております。
FinatraはTwitter社によってRubyフレームワーク 「Sinatra(シナトラ)」をモデルに開発され、FinagleとTwitterServerの上にAPIサービスを簡単に構築するためのフレームワークとして2013年にリリースされました。2013年よりバージョンアップリリース記録が詳細に記されております。登場以来度重なるアップデートを繰り返し2020年10月現在の最新バージョンは『Finatra20.10.0』となっております。簡単に以下の年表にまとめておりますのでご覧ください。
年代 | 内容 |
2013年 | Finatra 初版リリース |
2017年 | Finatra 17.10.0リリース |
2018年 | Finatra 18.1.0リリース |
2019年 | Finatra 19.1.0リリース |
2020年 | Finatra 20.1.0リリース |
Finatraの特徴を見ていきましょう。
Finatraはマイクロフレームワークという特徴があります。軽量で機能を最小限に抑えていることから他のフレームワークに比べて動きがとても軽いです。
Finatraはテストに関する機能が豊富という特徴があります。高速でテスト可能で統合テストのサポートも充実しております。
FinatraはSinatraをモデルに開発されたという特徴があります。
Sinatraの歴史、特徴、基礎知識などについて解説された記事はこちら>>
Finatra以外のScalaによるシステム開発に用いられる代表的なフレームワークを紹介させていただきます。
Scalatraとはシンプルで簡単をテーマに開発されたWebマイクロフレームワークです。ScalatraはJVMのパワーとScalaの美しさと簡潔さを組み合わせ、高性能のWebサイトとAPIをすばやく構築が可能です。名称からも分かるようにRuby用のフレームワークであるSinatraをモデルに開発されました。
Skinny FrameworkとはSkinny Micro上に構築されたフルスタックWebアプリフレームワークです。Skinny(スキニー)と略称して呼ばれることが一般的でScala on Railsがコンセプトとなっております。それからも分かる通り、Ruby on Railsに強く影響を受けておりサーブレットベースのWebアプリ開発の持続可能な生産性を実現するために最適化されています。
Skinny Frameworkの公式サイトはこちら>>
Skinny Frameworkの歴史や特徴、基礎知識について解説された記事はこちら>>
Play FrameworkとはJavaとScaraの2つのプログラミング言語でZenexity社のプログラマーギヨーム・ボルト(Guillaume Bort)氏によって開発されたオープンソースのWEBアプリケーションフレームワークです。Play FrameworkはRuby on Railsからの影響を強く受けたフレームワークとして有名です。その特徴として軽量で動きが速いという点が挙げられることから度々Webサービスの開発などにおいて好まれて利用されております。
Play Frameworkの公式サイトはこちら>>
Play Frameworkの歴史や特徴、基礎知識について解説された記事はこちら>>
Finatraを理解するために初心者でも分かる歴史、特徴、基礎知識などを簡単に解説させていただきました。Finatraを一言で表すと『Sinatraをモデルに開発されたWebマイクロフレームワーク』です。Finatraはマイクロフレームワーク以外にも「テストに関する機能が豊富」などの特徴が挙げられます。Finatraについてこの記事に書かれている最低限の内容は理解をしておくようにしましょう。