プログラミング言語Elixirの北九州コミュニティ「kokura.ex」についてお話します！

この記事は、[「fukuoka.ex Elixir／Phoenix Advent Calendar 2019」](https://qiita.com/advent-calendar/2019/fukuokaex/)18日目の記事です。
きのうは @masatam81 さんの[「Elixirで大規模データを扱う場合のメモリ管理」](https://qiita.com/masatam81/private/058f18d6716a4868ffdc)でした。

# はじめに

[ __kokura.ex__ ](https://fukuokaex.connpass.com/event/161540/)管理人のim_miolabと申します。
Qiitaアドベントカレンダーの季節まっただ中ですね。
そんなお祭り的な雰囲気のなか、記事を書いてみました！


## こんな記事です

__Elixir__コミュニティ「__kokura.ex__」の取りくみ事例を中心に、2019年のふりかえりをかねてメモ的につづるポエムです。

Elixirは、__開発しやすく、大量データの取り扱いに威力を発揮し、プログラム入門者でも勉強しやすい__というお話も交えて、つらつら書いていきます。

（もし記事中おかしな箇所等あったら、そっと教えていただけると幸いです！）

## 自分は何者か？

北九州に住んでる人間です。かるめに自分のことを説明しますと、

- 2019年にWeb/ITエンジニアへ転生しました。2019年12月時点で業務において書くことが多い言語はPython。
- 転生前は、電気設計エンジニアを長らくやってました。（ジャンルは強電）
- 話は前後しますが、2019年5月から、いろんなWeb/IT勉強会に参加しはじめました。その流れの中で、福岡のElixirコミュニティ[__fukuoka.ex__](https://fukuokaex.connpass.com) のもくもく会に参加するようになりました。
- そうこうしてるうち、気がついたら__kokura.exの管理人__になってました。

というわけで、Elixirを書く時間がだんだんと増えてきたので、うれしい限りです！

## Elixirとは？

- __膨大なアクセスやデータの高速処理__
- __高い開発効率と育成容易__

を両立できるプログラミング言語です。
とりわけ、__データを変換__することに主眼がおかれています。

導入事例としては、

- __大量アクセスのあるWeb・APIサーバ構築__
- __ビッグデータ分析／AI・機械学習向けデータ加工__
- __IoT連携__

などが挙げられます。

### Elixirの構文 (Hello world)

ちなみに、Elixirの構文で定番の`Hello World`を書くとすると、たとえば以下のように記述することができます。

```Elixir:hello_world.exs
defmodule HelloWorld do
  def hello_world do
    IO.puts "Hello world and Elixir!"
  end
end

HelloWorld.hello_world
```

Elixirインストール済みのPCで、お手元のターミナルやプロンプトから`elixir hello_world.exs`と入力すると、

```bash:bash
$ elixir hello_world.exs

Hello world and Elixir!
```

このように`Hello world`が出力されます。

もしくは、ElixirのREPLである`iex`から、以下のようにして出力することもできます。

```bash:bash
$ iex

iex()> IO.puts "Hello world and Elixir!"
Hello world and Elixir!
:ok
```

詳細や解説は本記事では割愛しますが、こんな感じです。

他にも、`.exs`ファイルから`.ex`ファイルにコンパイルして実行...などのやり方もあります。

また、ここでは詳しく触れませんが、__パイプライン演算子__`|>`をつかって、`データや要素 |> 処理 |> 処理をうけた結果を処理`...のように、__自然な流れでコードを書くことができる__点も、Elixirの特徴です。

# kokura.exとは？

__kokura.ex__は、福岡の人気Elixirコミュニティ__fukuoka.ex__から2019年にブランチし、北九州小倉で活動をしている__新生Elixirコミュニティ__です。

2019年10月からは、月1ペースで勉強会を開催しています。

そのほか小倉（北九州）では、

  - 2019年9月、[__ElixirConf® JP 2019__](https://fukuokaex.connpass.com/event/138846/) 開催
  - 2019年11月、実践プログラマーを養成するElixir専門学校 [__Elixir |> College__](https://elixir-college.connpass.com/event/149835/) 開校

と__Elixir気運__が高まってきており、これからのさらなる盛りあがりが期待されます！

## kokura.exでは、どんな活動やってるの？

2019年秋～冬時点でのメインコンテンツは、各参加者PC持込みによる__もくもく会__形式の勉強会です。
はじめましての方や、プログラミング未経験の方、おれはつよつよだぜ！って方、業務でElixirされてる方、といった方々がいらっしゃいます。

入門者の方には、ハンズオン形式のお題をご用意しており、環境構築のお手つだいもしています。

・[__Excelから関数型言語マスター1回目：データ行の”並べ替え”と”絞り込み”__](https://qiita.com/piacerex/items/6714e1440e3f25fb46a1) 
　→入門者の方におすすめです。

・[__LiveViewでSPA開発①: Elixirのみでフロントのリアルタイム入力／反映するSPAを実現（APIとJavaScriptは書いていない）__](https://qiita.com/piacerex/items/3f8ee18c9443d63955bf) 
　→ElixirのWebアプリケーションフレームワーク__Phoenix__の、「__サーバーサイドの記述だけでフロント処理を動的生成できる__」強力なモジュール [__LiveView__](https://dockyard.com/blog/2018/12/12/phoenix-liveview-interactive-real-time-apps-no-need-to-write-javascript/) を体験したい方はゼヒゼヒ。

・[__テスト駆動開発を、Elixirでゆるふわにやってみる （テスト自動化つき）__](https://qiita.com/im_miolab/items/cde950c8e45727cd3f61)
　→Elixirでのテスト駆動開発をゆるふわに始めてみたい方は、こちらもどうぞ！

さいごの3つ目はオマケで自分の記事です^^;
Elixirはテストがすごく書きやすい！というのが自分の印象です。

このほかにも__Vue.jsとの連携__や__機械学習__など、いっぱいお題ありますので、ご自身の興味あるトピックに取り組まれるとよいかと思います！

### リモートでイベント参加

その他、__kokura.ex__のおおきな特徴は、会場参加のみならず、__リモート参加にも対応している__点です。
福岡以外にお住まいでオンラインからご参加される方もおおいです！

具体的なご参加方法は、

- エンジニアにおなじみのチャットツール __slack__<br>
 （質問やソースコード載せたり、成果物を共有したりなど）
- オンラインミーティングツール __Zoom__<br>
 （会場とリモートとがリアルタイムに動画でつながります）
- つぶやきたい人ご用達の __Twitter__<br>
 （モチベup！にも意外と一役かいます）

を駆使し、会場参加者とリモート参加者の方々が、リアルタイムに楽しくもくもく＆ワイワイできる場となっています。
上記ツールが未経験 or 不慣れな方にはフォローしますし、じっさいに手を動かして「slackやZoomといったツールを使いつつElixirリモート開発を実体験する場」としてご参加されてみるのも、けっこう良い経験になるのかもしれません！

### kokura.exが目指すところ

- __これから先端技術をやりたい方__
- __最新のプログラミングを学びたい方__
- __未来に向けてWebやITに強くなりたい方__

など、__技術への興味レベルが高い方__や、__プログラミングに関心が高い方__のご参加を歓迎します。

Elixirにはそのポテンシャルがあると考えて自分は行動していますし、またコミュニティ運営管理者として、

- __Elixir／Phoenixにふれる機会__
- __実際のアプリケーション開発に役立つノウハウ__を共有しあい研鑽できる場
- __プログラミングの楽しさ__にふれ、没頭できるひととき

の提供にたずさわれていることを嬉しく思っています。

# おわりに

以上、kokura.exのお話を書いてみました。

Elixirや勉強会にご興味もたれたら、

- お近くにお住まい方 → ぜひ一緒にやりましょう！
- 距離的に直接参加がむずかしい方 → リモートでのご参加お待ちしています！

2020年は、kokura.exでは「もくもく会」のほかにも、「ハンズオン」や「ミートアップ」イベントの開催も考えています。
イベントの開催情報や参加申込は、「connpass」やハッシュタグ「#kokuraex」で探してみられてください！

#### ps.

[__Elixir Advent Calendar 2019__](https://qiita.com/advent-calendar/2019/elixir) もありますので、こちらもぜひご覧ください。
自分も12/4の投稿枠で参加してますので、よろしかったらどうぞ！

- [テスト駆動開発を、Elixirでゆるふわにやってみる （テスト自動化つき）](https://qiita.com/im_miolab/items/cde950c8e45727cd3f61/)

---

明日の[「fukuoka.ex Elixir／Phoenix Advent Calendar 2019」](https://qiita.com/advent-calendar/2019/fukuokaex)19日目の記事は、@NeunKrain さんです。お楽しみに！