fukuoka.ex代表のpiacereです
今回もご覧いただいて、ありがとうございます
いつもと趣向違いですが、ウチのCEOが開発合宿中に行ったElixirチャレンジをお送りします
そうそう、CEOと私は、地味に、35年くらい前にプログラミングをスタートしたという共通点を持っています
その後、CEOはビジネスとマーケティングに進み、私はプログラミングとマーケティングに進みましたが、そんな2人が福岡で出会い、今は共に会社経営をしている訳です
それでは、CEOが開発合宿中でElixirに触れていくログをお楽しみくださいー
内容が、面白かったり、役に立ったら、「いいね」よろしくお願いします
CTOからの提案は、正直、気が重かった…しかし…
カラビナテクノロジー株式会社 でCEOをやっている福田です
私は普段、事業会社向けのITシステム導入・運用をお手伝いしつつ、エンジニアにとって最高の組織を作るべく邁進しています
私自身は、「BASIC」という言語で、35年前、プログラム開発を行っていましたが、今はすっかり、プログラミングそのものからは離れています
そんな私が、今回、エンジニア達と共に参加した開発合宿にて、35年ぶりにプログラミングに挑戦してみました
ウチのCTOから、「合宿でElixirの開発やってみませんか?」と提案されたときは、普段、どんな無理難題を出されても、馴染みの無いタスクをやるときも、「なるほどー」と前向きにクリアしていくところですが、正直、気が重かった(笑)
それも「Elixir」、先端の関数型言語への入門…行番号すら手入力するBASICと、あまりに違うのでは…
(ここが今回の合宿場所です)
しかし、実際にやってみると、Elixirによるプログラミングというものが、ただの「データ変換」であることや、その仕組みでWebアプリがいとも簡単に作れることを、僅かながら実感できました
さて、CTOから言われるがままに、「Excelから関数型言語マスター」を読むところからスタートします
まずは「事前準備:Elixirのインストール」から
私は、普段からWindowsを使っているので、インストーラをダウンロード、と
インストーラをダブルクリックで起動します
そのまま進めていきます
ん?Erlang?なんだこりゃ?
CTO「あー、そのまま進めてください。基本、特記とか無ければ、そのまま進めてOKです」
Erlangが何なのかよく分からないけど、言われたまま進めます
ひとまずインストール完了、さて次は、と
私「次は、”ソースコードからビルドする”をやれば良いですか?」
CTO「いいえ、そこはやらなくてOKです。さっきインストールした奴で完了してるので」
あー、なるほど、良く見たら、インストーラか、ソースコードか、Dockerかって書いてあった
続けて「Excelの『並べ替え』をElixirで書いてみる」
コマンドプロントを起動…えーと、Windowsメニュー右クリックで「検索」と…
あった
起動した
コマンドプロントの中で、「iex」コマンドを打ってみる
なんかElixirってのが出てきたから、これで良いのかな
私「これで合ってます?」
CTO「はい、OKです。その中で、Enum.sortのコードを実行してみてください」
ふむふむ、コレを打つのね
おぉ、数字が並べ替えされた
CTO「BASICだとFORとか書いて処理してたのが、Elixirだと、データの並びに対して、sortを掛けるだけです。ね?簡単でしょ?」
プログラミングって、こんなにサックリしてたっけ?
その後、フィルタを試し、第2回に進み、「複数列のデータ」、複数列データから「列の抽出」と試していくけど、特に詰まるところも無く、アッサリ済んでしまった
私「なんか、あんまりプログラミングしてる感じ、しないですねぇ」
CTO「そうです、そうです。ただデータ変換するだけの簡単なお仕事ですw」
なるほどね、Elixirでのプログラミングは、ただの「データ変換」なのか
おや?何やら休日なのに、急ぎ目のメールが届いている…
~ Coffee Break ~
私「スミマセン、けっこう進んだんで普通の仕事しても良いですか?」
CTO「仕事するのに許可もらうって斬新ですねw どーぞ」
~~ しばし、お仕事タイム ~~
CTO「そろそろ一段落です?」
私「はい、Phoenixのインストールから再開しますー」
※なお、「Phoenix」は、ElixirのWebフレームワークです
Phoenixのインストールから再開
Ctrl+cを2回押して、iexを抜ける、と
それから、書いてある通りに、コマンド入力
インストールはできたっぽい
次は、Phoenixプロジェクトの作成とのこと
よし、Phoenixサーバを起動…
私「これ、エラーですかねぇ?」
CTO「あー、PJ作った後に、フォルダ入ってないですね。この『cd sample』が抜けてますね」
私「あぁ、そういうことか」
私「おっ、なんかうまくいった感じですかね?」
CTO「ですね。んで、このcdってのは、フォルダ移動で、エクスプローラでフォルダ入るのと同じですね」
私「なるほどー」
コマンドでやると、こういう感じなんだなー
いよいよブラウザでWebページを見てみる
さて、Phoenixも起動したようなので、ブラウザに、http://localhost:4000
を入力すると…
私「できましたー」
…
…
…
と、まぁ、これは演出ですw
ElixirでWebアプリが動かせるようになりました
この後、第3回まで進み、PostgreSQLをインストールしたり(スタックビルダはインストールしなくて良いそうです)、VSCodeのインストールをしたり、色々やり、合宿最後の成果発表です
VSCodeでElixirのコードをいじった様が、こんな感じで…
Phoenixで作ったWebページに、自分の名前や年齢などの情報が表示される改造を追加してみました
その後、メンバー達の成果発表も聞きました
AngularやFlutterのテスト方法、GAE/GCE/GKEでElixirを動かし、Cloud SQLに繋ぐ方法、Vue.jsで既存プロダクトを置き換え、Jestでテストする方法など、内容はサッパリ分かりませんでしたが、メンバーはとても楽しそうに発表していたので、良い合宿でした
ElixirとPhoenixをやってみた印象は…
なんか「プログラミング」というよりは、「データの操作」をするうちに、自然とWebアプリが作れてしまう、といった感じで、最新の言語は、BASICとは全く違うものなんだなー、と思いました
そんな様子の私に、最後、CTOから、こんな話をされました
CTO「ElixirとPhoenixは、こんな感じでサクッとWebアプリ開発できるんですが、Java等、他言語だと、こう簡単にはいかないので、案件取ったり、見積作るときは、この感覚の3~5倍で作るようにしてくださいね」
私「あ、はい…」
そんなもんなんですね…うーん、まだまだ奥が深い
終わり
さて今回は、いつもと趣向を変えて、ウチのCEOが、Elixir+Phoenixで、Webアプリを作る様をご覧いただきました
楽しんでいただけましたか?
今回、CEOに実践してもらったElixir+Phoenixチュートリアルは、35年間、プログラミングしていなかった方でも入門できる内容ですので、どうぞあなたも下の画像をクリックして、チャレンジしてみてください
p.s.「いいね」よろしくお願いします
ページ左上の や のクリックを、どうぞよろしくお願いします
ここの数字が増えると、書き手としては「ウケている」という感覚が得られ、連載を更に進化させていくモチベーションになりますので、もっとElixirネタを見たいというあなた、私達と一緒に盛り上げてください!