10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

パーソルキャリアAdvent Calendar 2018

Day 1

Ballerinaとお付き合いをはじめたので軽く紹介してみる

Last updated at Posted at 2018-12-02

この記事はパーソルキャリア Advent Calendar 2018の1日目です。

ballerinaとは

誤: こちらではありません
ballerina.png

正: プログラミング言語です
ballerina-logo.png

Ballerinaは Cloud Native Programming Language を謳い文句にした、ウェブサービスを作るためのプログラミング言語です。

Ballerina is a simple programming language whose syntax and platform address the hard problems of integration. It is a general purpose, concurrent, transactional, statically and strongly typed programming language with both textual and graphical syntaxes. Its specialization is integration - it brings fundamental concepts, ideas and tools of distributed system integration into the language and offers a type safe, concurrent environment to implement such applications. These include distributed transactions, reliable messaging, stream processing, workflows and container management platforms.

簡単に言うと

みんながWebアプリケーションを作るときに使っているstreamingとかContainerとかそういうものを詰め合わせて簡単に作れるようにしたよ

っていうこと

ballerinaでできること / できないこと

できること

  • 簡単にAPIが実装できる
  • すぐにgRPCの実装ができる
    • gRPCが標準パッケージ化されている
  • 外部ツール無しでswaggerのドキュメントをImport/Exportできる
    • 標準機能です
  • 外部ツール無しでAPIドキュメントできる
    • 標準機能です
  • ソースコードをいじらずにプログラミングできる
    • このあとで説明しますが、IDEを使うとビジュアルプログラミング的なことができる
  • 外部ツール無しでテストできる
    • ここらへんはGoなど最近の言語と同じでテストツールが同梱されているので、Ballerina単体でテストが可能です

できないこと

  • ローカルで実行するコマンドラインツールなどの開発
    • Cloud上でAPIでリクエストされて動くもの作成することを想定しているため
  • APIハンドラのファイル分割
    • 1ファイルを読み込んで、runしたり、buildしたりすることが想定されているようなので、出来なさそうです。
    • もちろん共通処理をライブラリ化して、読み込むということはできます

おすすめ機能: ダイアログ

IDE(VSCodeもしくはIntelliJ IDEA)を使うと、公式プラグインで、IDE上に処理のダイアログ図を表示することができます。
このダイアログの面白いところは、コードを修正するとリアルタイムにダイアグラムに反映されるだけでなく、ダイアログを修正することでコードもリアルタイムに修正されます。

たとえば、ダイアログの面白い使い方として、考えられるのは、
アジャイルのスプリントレビューなどで、プログラマじゃない人たちにプログラムを見せて、処理上問題がないか判断してもらうことは困難だと思います。
ですが、ballerinaはダイアログでグラフィカルに表示されるので、それを見せながら説明することで、ビジネスロジックに問題がないかを確認することは、今までよりも用意になるのではないでしょうか?
さらに、簡単な修正であれば、ダイアログを少しいじるだけで修正できるので、その場で直して再度確認ということもできます。

作った機能は、ballerina run xxx.bal(作ったファイル) で実行することでサーバが立ち上がりすぐに確認することもできます。

diagram.png

インストール

現在、安定版(0.983.0)をMacにインストールするといろいろ正常に動かなかったりするようなので、通常のインストールとバージョン指定でインストールする方法を記載します

通常の手順

Homebrewもあるのですが、インストール時にうごくshellがHomebrewの不具合で正確に動かないものがあるらしいので、おすすめしません。
https://github.com/ballerina-platform/ballerina-lang/issues/12099

  1. 公式サイト( https://ballerina.io/downloads/ )にアクセスして、インストーラをダウンロードします。
  2. ダウンロードしたインストーラを実行します
  3. ballerina version で正常にバージョンが表示されたら完了です
  4. 以降VSCodeの設定です
    1. VSCodeを開きます
    2. 拡張機能で、ballerinaを検索すると公式のプラグインが検索できるので、それをインストールします
    3. VSCode再読込するように言われるので、再読込します
    4. VSCodeで基本設定 > 設定 > 拡張機能でballerinaの設定を確認します
    5. ballerina.homeが設定されていなかったら設定してください
ballerina.home
/Library/Ballerina/ballerina-(インストールしたバージョン)

安定版に異常があるとき

バージョン指定して、インストールする場合の手順になります。

  1. 公式サイト( https://ballerina.io/downloads/archived/ )にアクセスして、過去バージョンのインストーラをダウンロードします。
  2. ダウンロードしたインストーラを実行します
  3. ballerina version で正常にバージョンが表示されたら完了です
  4. 以降VSCodeの設定です
    1. 公式サイト( https://ballerina.io/downloads/archived/ )にアクセスして、先程インストールしたバージョンと同じバージョンのVSCodeプラグイン( ballerina-vscode-plugin-(インストールしたバージョン).vsix )をダウンロードします
    2. ダウンロードしたvsixをインストールします
    3. VSCodeを開きます
    4. VSCode再読込するように言われるので、再読込します
    5. VSCodeで基本設定 > 設定 > 拡張機能でballerinaの設定を確認します
    6. ballerina.homeが設定されていなかったら設定してください
vsixのインストール
code --install-extension ~/Downloads/ballerina-vscode-plugin-(インストールしたバージョン).vsix

VSCodeで意図的に古いバージョンのvsixを入れると、VSCode開いたあとで勝手にバージョンあげようとするんだけど、これはバグではないのかな、マイクロソフトさん?

ballerina.home
/Library/Ballerina/ballerina-(インストールしたバージョン)

Appendix

Qiitaで一部意訳してる記事を見つけたので、記載しておきます
https://qiita.com/shinshin86/items/e4361ff08737cac9533d

10
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?