1. HOME
  2. ブログ
  3. IT技術
  4. 【Webフレームワーク編】Julia入門~高速な動的型付け言語~
【Webフレームワーク編】Julia入門~高速な動的型付け言語~

【Webフレームワーク編】Julia入門~高速な動的型付け言語~

Webフレームワーク編~Juliaに入門してみよう~

前回は、Julia の環境構築の方法や、文法などを紹介しました。

今回は、Julia の Web フレームワークとして開発が行われている「Genie」を使ってみたいと思います!

本記事で使用するのは、「Julia ver 1.5」となります。

「Genie」をインストールしてみよう!

Genieとは

Genie とは、Julia のために開発されている、フルスタックな MVC Web フレームワーク

Julia の強みである、

  1. high-level
  2. high-performance,
  3. dynamic
  4. JIT compiled

を基に、構築されています。

【 Genie 公式サイト】
https://genieframework.com/

Genie は、現在進行形で、積極的に開発が進んでいます。

2020年9月執筆時点では、Julia 1.3以上を対象とした「v 1.1.0」が公開中です。

インストール

Genie の導入は、とても簡単!

パッケージモードから追加するだけでOKです。

これだけです。

念のため、しっかりとインストールされているかを、確認してみましょう!

大丈夫そうですね!

動作確認

それでは、実際に Genie の動作確認もしてみましょう。

対話モードで確認します。

これで実際に、「http://127.0.0.1:8000/」にアクセスして、「Hello, Genie!」と表示されればOKです。

Genieプロジェクトを作成してみる

次に、小さなアプリケーションを、実際に構築してみましょう!

公式ドキュメントに従って、「MyGenieApp」という名前のプロジェクトを作ります。

すると、自動的にディレクトリやファイルが生成され、サーバも立ち上がるはずです。

一部省略していますが、ディレクトリ構成は、おおよそ上のような形になっているはずです。

そして、「http://127.0.0.1:8000/」で、以下のようなページが表示されると思います。

Genieプロジェクトを作成してみる

これは実際に、 MyGenieApp > public > welcome.html  が表示されているため。

他にも、エラーページなどのサンプルページは、最初から用意されています。

試しに、「http://127.0.0.1:8000/hoge」にアクセスしてみると…?

Genie 404ページ

サンプルの404ページが表示されましたね!

プロジェクトの中身を見てみる

次に、この Genie プロジェクトの中身を、紐解いていきましょう。

「Manifest.toml」と「Project.toml」

Manifest.toml と Project.toml は、Julia がアプリの依存関係を管理するファイルで、基本はいじらないファイルです。

「bin/」ディレクトリ内

bin/ ディレクトリ内には、「Genie REPL」や「Genie サーバ」を起動させるための、スクリプトが入っています。

「bootstrap.jl」「genie.jl 」と「src/」ディレクトリ内

bootstrap.jl 」「  genie.jl 」「 src/ ディレクトリ内のファイル」は、アプリを起動するために、Genie が管理するファイルです。

これも、基本的にユーザがいじることはありません。

「config/」ディレクトリ内

config/ ディレクトリは、環境ごとの構成ファイルが管理されています。

「log/」ディレクトリ内

log/ ディレクトリはその名前の通り、ログファイル保存用です。

「public/」ディレクトリ内

public/ はドキュメントルートで、HTML ファイルなどの静的ファイルを管理します。

「routes.jl」

routes.jl は、URL ルーティングを管理するファイルです。

プロジェクトでいじるファイルは?

開発する側が編集するファイルは、主にroutes.jl」と「 public/ディレクトリ内のファイル」です。

その他は、ほとんどいじることがありません。

Genieアプリを編集してみる

それでは、自動生成された Genie アプリに、少しだけ手を加えてみましょう!

と、その前に Genie アプリをいつでも立ち上げれるように、アクセス権限を変更しておきます。

コマンドラインから、Genie アプリを立ち上げるときは、

もしくは、

で立ち上げます。

URLルーティングを追加する

試しに、以下のコードを、 routes.jl に追記してみましょう。

これで、「http://127.0.0.1:8000/hello」にアクセスしてみると、しっかりと反映されているはずです。

とても簡単ですね!

または、以下のような、ルーティング方法もあります。

2つのルーティング記法の違い

ここで、Julia における引数の扱い方に、疑問を持つ方もいるかもしれません。

今紹介した2つの記法は、どちらも同じことをしています。

ですが、 do ... end 構文は、一体何を示しているのでしょうか?

答えは、無名関数です。

Swift でも、 do_something(arg) { ... }という形で、同じような振る舞いをする関数が見受けられますね!

動的なURLルーティング

次に、URL パターンを解析し、動的に振る舞いを変えるようなルーティング方法も見ていきましょう。

まずは、新しく Genie.Requests を追加で読み込みます。

そしたら、以下のようにコーディングしてみましょう!

これで例えば、「http://127.0.0.1:8000/booking/rightcode/orders/1234」にアクセスしてみると、

動的なURLルーティング

のように表示されるはずです。

その他Genieの機能

Genie では、シンプルな Web アプリだけでなく、MVC アプリケーションの開発もサポートしています。

のように、プロジェクトファイルを、簡単に作成できてしまいます!

ただ、執筆現在では、Genie の MVC アプリに関するドキュメントは刷新中。

そのため、本記事では詳しく紹介することはできませんが、Github のコードを見ればある程度は構築できそうな雰囲気でした。

【 Genie の MVC アプリに関するドキュメント】
https://genieframework.github.io/Genie.jl/dev/tutorials/4-1--Developing_MVC_Web_Apps.html

例えば、

で、コントローラを生成できます。

これは、Github のソースコード内の「src/Generatir.jl」から読み解くことができます。

【Github:src/】
https://github.com/GenieFramework/Genie.jl/tree/master/src

気になった方は、ソースファイルを読んで、ぜひ解読してみてくださいね!

Jupyter Notebookを使ったグラフ描画編へつづく!

今回は、Julia の Web フレームワークの代表格とも言える「Genie」を紹介しました。

触った印象としては、かなり充実した機能が詰まっている感じ。

Python でいう「Django」のような、ユーザフレンドリーなフレームワークだと思います。

ただ、Julia も Genie も、まだ開発途上でドキュメントも多くはありません…。

多くのエンジニアが本番環境で使うには、まだまだ時間がかかりそうですね!

さて次回は、Julia を「Jupyter Notebook」を使って、コーディングしてみようと思います。

ついでに、グラフ描画なども一緒に確認してみましょう!

では次回も、お楽しみに!

Jupyter Notebookを使ったグラフ描画編はこちら!

こちらの記事もオススメ!


書いた人はこんな人

広告メディア事業部
広告メディア事業部
「好きを仕事にするエンジニア集団」の(株)ライトコードです!

ライトコードは、福岡、東京、大阪の3拠点で事業展開するIT企業です。
現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。
いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。

システム開発依頼・お見積もり大歓迎!

また、現在「WEBエンジニア」「モバイルエンジニア」「営業」「WEBデザイナー」「WEBディレクター」を積極採用中です!
インターンや新卒採用も行っております。

以下よりご応募をお待ちしております!
https://rightcode.co.jp/recruit

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア