#author("2020-07-06T12:43:38+00:00","default:admin","admin") #author("2020-12-29T11:39:20+00:00","default:admin","admin") [[Elixir:https://elixir-lang.jp]] -[[Elixir入門:https://dev.to/gumi/elixir-01--2585]] -[[Elixir School:https://elixirschool.com/ja/]] -[[Phoenix GUIDES:https://hexdocs.pm/phoenix/overview.html]] -[[最速で知る! ElixirプログラミングとErlang/OTPの始め方【第二言語としてのElixir】:https://employment.en-japan.com/engineerhub/entry/2017/06/12/110000]] -[[挑戦! Elixirによる並行・分散アプリケーションの作り方【第二言語としてのElixir】:https://employment.en-japan.com/engineerhub/entry/2017/06/19/110000]] -[[並列処理に関数型…でも学習コストは高くない!? Web開発者のためのElixirのススメ【デブサミ2019】:https://codezine.jp/article/detail/11431]] -[[今 Erlang を選択すべきなのか:https://medium.com/@voluntas/%E4%BB%8A-erlang-%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%99%E3%81%B9%E3%81%8D%E3%81%AA%E3%81%AE%E3%81%8B-c04293468f5e]] -[[「Elixir Conf Japan 2017」全セッションレポート ~ 日本での活用事例が増えているElixir/Erlang:https://codezine.jp/article/detail/10071]] -[[生みの親が語るElixirのこれまでとこれから ―「ElixirConfJapan 2017」参加レポート:http://gihyo.jp/news/report/2017/04/1001]] -[[次世代プログラミング言語ElixirとElmでCRUD:https://qiita.com/ababup1192/items/e751cd33314c80b93e77]] -[[Elixir から Elm の流れで、いよいよオブジェクト指向に対する懐疑心が無視できないレベルに達した2017年冬。:https://ubiteku.oinker.me/2017/12/02/skepticism-about-oo/]] -[[プログラミングElixir:https://tatsu-zine.com/books/programming-elixir-ja]] -[[【Ruby エンジニア必見】Ruby エンジニアが次に学ぶべき Elixir 技術の最新トレンドを解説!:https://press.forkwell.com/entry/2018/05/09/125349]] -[[日本で Erlang/OTP や Elixir を利用している会社一覧:https://github.com/voluntas/japanese-erlang-elixir-companies]] -[[RISC-V on FPGA と Elixir で究極のマルチコアシステムを構築しよう!:https://qiita.com/zacky1972/items/05a1f4b340721605bfed]] -[[Elixir試飲録 (1) – 今、プログラミング言語を選ぶということ: Scala, Go, Elixir:https://ubiteku.oinker.me/2015/12/22/elixir%E8%A9%A6%E9%A3%B2-1-%E4%BB%8A%E3%80%81%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%E3%82%92%E9%81%B8%E3%81%B6%E3%81%A8%E3%81%84%E3%81%86%E3%81%93/]] -[[Elixir試飲録 (2) – カルチャーショックに戸惑う: 並行指向プログラミング:https://ubiteku.oinker.me/2015/12/22/elixir%E8%A9%A6%E9%A3%B2-2-%E3%82%AB%E3%83%AB%E3%83%81%E3%83%A3%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%83%E3%82%AF%E3%81%AB%E6%88%B8%E6%83%91%E3%81%86-%E4%B8%A6%E8%A1%8C%E6%8C%87%E5%90%91%E3%83%97/]] -[[Elixir試飲録 (3) – マルチコア危機によるパラダイムシフト: オブジェクト指向から並行指向へ:https://ubiteku.oinker.me/2016/01/13/elixir%E8%A9%A6%E9%A3%B2%E9%8C%B2-3-%E3%83%9E%E3%83%AB%E3%83%81%E3%82%B3%E3%82%A2%E5%8D%B1%E6%A9%9F%E3%81%AB%E3%82%88%E3%82%8B%E3%83%91%E3%83%A9%E3%83%80%E3%82%A4%E3%83%A0%E3%82%B7%E3%83%95/]] -[[Elixir試飲録 (4) – オブジェクト指向と関数型の違い:https://ubiteku.oinker.me/2016/01/14/elixir%E8%A9%A6%E9%A3%B2%E9%8C%B2-4-%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%81%A8%E9%96%A2%E6%95%B0%E5%9E%8B%E3%81%AE%E9%81%95%E3%81%84/]] -[[Elixir試飲録 (5) – Elixir/Phoenixのホットデプロイ完全自動化(2016年1月版):https://ubiteku.oinker.me/2016/02/08/elixir-phoenix-auto-hot-deploy/]] -[[Elixir試飲録 (6) – exrm で hot upgrade すると static assets のパスが古いバージョンのまま更新されない問題への対処:https://ubiteku.oinker.me/2016/02/15/hot-deployment-static-assets/]] -[[Elixir試飲録 (7) – Erlangの軽量プロセスはどのように実現されているのか?:https://ubiteku.oinker.me/2016/08/09/how-do-erlang-microprocesses-work-internally/]] -[[Elixir/Phoenix と Elm による関数型 Web 開発環境の構築:https://ubiteku.oinker.me/2016/11/28/elixir-phoenix-and-elm/]] -[[Kubernetes で実現する Phoenix/Elm アプリのホットデプロイ自動化完全詳解(2016年12月版):https://ubiteku.oinker.me/2016/12/05/kubernetes-elixir-phoenix-elm-auto-hot-deploy/]] -[[2017年にElixirを仕事で使った振り返り:https://shufo.dev/my-elixir-status-of-the-last-year/]] -[[Elixir を使うようになった経緯 〜電力システム制御の現場から〜:https://qiita.com/kikuyuta/items/96c3f91a850e9274b0e9]] -[[はじめてなElixir(0):https://qiita.com/kikuyuta/items/3c1798d15508040ccaaf]] -[[大規模ゲーム開発で存在感を高めるErlang/Elixir ─ Nintendo Switch™とロマサガRSの事例から:https://employment.en-japan.com/engineerhub/entry/2019/08/01/103000]] --[[ロマサガRS における Elixir サーバー開発実践 ~生産性を上げてゲームの面白さに注力~:https://speakerdeck.com/elixirfest/romasakars-niokeru-elixir-sahakai-fa-shi-jian-sheng-chan-xing-woshang-ketekemufalsemian-bai-sanizhu-li]] -[[Erlang/OTP と ejabberd を活用した Nintendo Switch(TM)向け プッシュ通知システム「NPNS」の開発事例:https://speakerdeck.com/elixirfest/otp-to-ejabberd-wohuo-yong-sita-nintendo-switch-tm-xiang-ke-hutusiyutong-zhi-sisutemu-npns-false-kai-fa-shi-li]] -[[秒間10万メッセージをさばけ! リアルタイム対戦バトルゲームを支える負荷試験の挑戦【Developers Boost】:https://codezine.jp/article/detail/11320]] -[[Elixirを思い出す時の資料:https://blog.masu-mi.me/post/2019/11/15/ref-for-remembering-elixir/]] -[[【メモ】私が愛する Elixir/Erlang の楽しさと辛さ:https://taku-exs.hatenablog.com/entry/2019/07/15/223025]] -[[ElixirとRustをつなぐRustlerを使った事例紹介:https://qiita.com/zacky1972/items/ed87b91dbe7deb8747af]] -[[大学でElixirを教えた話:https://qiita.com/zacky1972/items/0c2869f9f39f7bb917a5]] *概要 [#gd87c03a] -Elixirは、José Valim氏によって開発されているプログラミング言語 -ErlangのVM上で動作し、Erlangのモジュールを利用できる -ErlangのVM上で動作することから、Elixirには次のような特徴が備わっている --耐障害性 --高可用性 --分散アプリケーションの構築のしやすさ -Erlangでは「プロセス間のメッセージパッシング」というErlang独自の概念をうまく使うことで、びっくりするくらいあっさりとこれらの特徴を実現している **Erlang VM [#yf06c295] -[[theBeamBook:https://github.com/happi/theBeamBook]] -[[The Erlang BEAM Virtual Machine Specification:http://www.cs-lab.org/historical_beam_instruction_set.html]] --[[日本語訳付き:https://gist.github.com/oskimura/5a80512eb559c29c9063]] -[[BEAMバイトコード・インサイド 〜 30年の歴史を誇るBEAMを超えるには:https://zeam-vm.github.io/zeam-fukuoka.ex-20170223/#/]] -[[Hastega / micro Elixir / ZEAM の実装戦略〜 Erlang VM からの円滑な移行を見据えて:https://qiita.com/zacky1972/items/73bd91489fd5e08bbf16]] -[[Hastega: Elixirプログラミングにおける超並列化を実現するためのGPGPU活用手法:https://zeam-vm.github.io/GPU-SWoPP-2018-pr/#/]] **メッセージパッシング [#d2afc726] -[[並行性 - Elixir School:https://elixirschool.com/ja/lessons/advanced/concurrency/]] -[[Elixirで遠隔PCに侵入#1風「プロセス生成、メッセージパッシング」:https://qiita.com/piacerex/items/96398166f72fc2d921e9]] -[[スレッドとメッセージパッシング:https://qiita.com/hharu/items/91d667a70f934e6bf7c2]] **マクロ [#r198a23b] **プロトコル [#l076c01e] *Elixirならではプログラムの書き方 [#l2ad0143] -Elixirではたくさんの小さな関数を書く -ガード節とパターンマッチを駆使して、できる限り制御構文を使わないように書く *ツール [#m79bd8ee] **iex [#x20cde6f] -ソースファイルのコンパイル iex> c "<ソースファイルのパス>" -モジュールを含むソースコードの再コンパイル iex> r <モジュール名> -プロジェクトのテスト実行 iex -S mix **mix [#qf871561] -[[Mix - Elixir School:https://elixirschool.com/ja/lessons/basics/mix/]] -[[Elixir初心者がmix使う時に最低限必要そうなコマンド自分まとめ:https://qiita.com/nishiuchikazuma/items/be911dd1d202c1227d19]] -新規プロジェクト作成 mix new <プロジェクト名> -新規プロジェクト作成(スーパーバイザーツリー付き) mix new <プロジェクト名> --sup -依存関係の解消(解決) mix deps.get -実行ファイル生成 mix escript.build **hex [#bd5c8125] **asdf [#xbf4ed12] *ライブラリ [#fd807a2b] -[[Documentation - elixir:https://elixir-lang.org/docs.html]] *コミュニティ [#geb45889] -[[fukuoka.ex:https://fukuokaex.connpass.com/]] *求人 [#w3895477] -[[『Elixir』を使ったIoTサービスの自社フレームワーク開発エンジニア:https://hrmos.co/pages/access-company/jobs/0000056]]