Elm について (はじめに) Elm は JavaScript にコンパイルできる関数型プログラミング言語です。 ウェブサイトやウェブアプリケーションを作るツールという面では React のようなプロジェクトだと言えます。 Elm はシンプルであること、簡単に使えること、高品質であることを大切にしています。 このガイドは以下のことを目指します。 Elm によるプログラミングの基礎を身に着けてもらうこと The Elm Architecture を使ってインタラクティブなアプリケーションを作る方法をお見せすること あらゆる言語で使える法則やパターンを重視すること 最終的にはあなたには Elm を使って素晴らしいウェブアプリをただ作れるようになるだけでなく、Elm をうまく使えるようになるための核となるアイディアやパターンを理解してもらえればと思います。 Elm に対して様子見の立場である方
型エイリアス 型注釈は時として長ったらしくなってしまうものです。例えば、フィールドがいくつもあるレコードを使っているような場合に実際に困ったことになります。主にこのような問題を解決するために、型エイリアスが存在します。型エイリアスとはある型につけた短い別名のことです。例えば、Userという型エイリアスを以下のように作成したりします。 type alias User = { name : String , age : Int } 毎度レコード型の内容を全部ズラーッと書かなくても、単にUserとだけ書けば良いのです。これを活用すれば、読みやすい型注釈を書けます。 -- WITH ALIAS isOldEnoughToVote : User -> Bool isOldEnoughToVote user = user.age >= 18 -- WITHOUT ALIAS isOldEnoughTo
後学のために自分の考えていることをまとめてみる。 考えられるパターン これまでの経験から以下4つのパターンがある。 ローカルStateでprop-drillingする ローカルStateかつイベント経由でデータ交換をする グローバルStoreとローカルStateを併用する グローバルStoreのみを使用する 1. ローカルStateでprop-drillingする propとしてコンポーネント間のデータをやりとりする手法。 ほぼすべてのUIコンポーネントを親からデータを受け取りDOMを出力するだけの純粋な関数として表現できるため、全体の設計自体はシンプルになる。手間は多いが魔法は少ない。 コンポーネントの粒度が小さいアプリケーションの場合にはいわゆるバケツリレーと揶揄されるデータの受け渡しが頻発し、これに嫌悪感を持つエンジニアもいる。 2. ローカルStateかつイベント経由でデータ交換を
先日Connpassにて、関数型プログラミングなんもわからん。を考えようと言うイベントを開かせていただきました。 関数型プログラミングがわからない! と言う方達の疑問に対して、普段関数型プログラミング言語を使っているわかる人たちが回答をして行くと言うスタイルのイベントでした。関数型プログラミング言語と一口に行っても、Elm, Scala, Haskell, Clojure, Elixir, F#と様々な言語があり(これは今回参加した人たちの使っている言語で、関数型プログラミング言語の一部にしか過ぎません)何が正解かなどはわからない中での意見の集約といった形のため参考程度にご覧ください。結果イベントとしては様々な視点からの意見が聞けて満足という声が多かったです。私自身知らないことがたくさん知れて勉強になり楽しかったです。 イベントの内容は、Figma上で開けるFigJamファイルとして、公開
In our team at Rakuten, we have been using Elm1 in production for almost two years now. This post is about our story, the lessons we learned, and our likes and dislikes. This post is quite long so if you prefer to see an overview, feel free to jump to the index. Everything started in the Berlin branch of Rakuten during the summer of 2017. We were maintaining a medium-size single-page application w
View Source Phoenix.Channel behaviour (Phoenix v1.7.12) Defines a Phoenix Channel. Channels provide a means for bidirectional communication from clients that integrate with the Phoenix.PubSub layer for soft-realtime functionality. For a conceptual overview, see the Channels guide. Topics & Callbacks Every time you join a channel, you need to choose which particular topic you want to listen to. The
■ Phoenix Channelをテーマにした過去記事 Phoenix Channelとelm-phoenixについて -Qiita Phoenix Channelで作る最先端Webアプリ - Reactチャット編 - Qiita Phoenix Channelで作る最先端Webアプリ - topic-subtopic編 - Qiita 東京電力電力供給状況監視 - Phoenix Channel - Qiita 今回はPhoenix channelやElmプログラムの練習として、以下のAPIを利用して、リアルタイムに東京電力の電力供給状況を監視するシステムを作ってみました。phoenixのchannel機能を利用して、Elixir Applicationで定期的に取得した電力供給状況を、Elmクライアントにpushしていくシステムです。Elmクライアントではlineグラフ表示で、リアル
Elixir関連リンク(外部) elixir school Elixir Documentation Phoenix Documentation Phoenix: An Introduction to Elixir's Web Framework Awesome Elixir - A curated list of awesome Elixir and Erlang packages and resources Choosing Elixir over Rust and Golang Awesome Elixir Elixir生誕10周年をお祝いするコラム一覧:Elixirの最近を知らない or ブランクある方も "Elixirの現在" に追いつける LiveView and JavaScript *** Phoenix Beginner's Guide - Phoenix LiveVie
■ Phoenix Channelをテーマにした過去記事 Phoenix Channelとelm-phoenixについて -Qiita Phoenix Channelで作る最先端Webアプリ - Reactチャット編 - Qiita Phoenix Channelで作る最先端Webアプリ - topic-subtopic編 - Qiita 東京電力電力供給状況監視 - Phoenix Channel - Qiita phoenixはelixirのキラーアプリケーションで、channelはphoenixのキラー機能であると言われています。そこで今回はchannelを試してみることにしました。channelはwebsocketのラッピングで、Webアプリの新しい通信の枠組みを提供するものと言えます。効率の悪いコネクションレスのhttpの代わり、という位置づけです。ここでは、技術的な理論ではなく
<blockquote class="hatena-bookmark-comment"><a class="comment-info" href="https://b.hatena.ne.jp/entry/310513455/comment/uehaj" data-user-id="uehaj" data-entry-url="https://b.hatena.ne.jp/entry/s/ubiteku.oinker.me/2016/11/28/elixir-phoenix-and-elm/" data-original-href="https://ubiteku.oinker.me/2016/11/28/elixir-phoenix-and-elm/" data-entry-favicon="https://cdn-ak2.favicon.st-hatena.com/64?url=htt
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く