Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...
はじめに 7月くらいから業務でElixirを書くようになり、見たことも書いたこともない状態からなんとか見よう見まねでひと通りのことは書けるようになってきました。 Elixirを書き始めて面食らった演算子や記法が多かったので、ここにまとめてみようと思います。なお筆者は7月以前主にrubyを書いていたのでrubyとの比較例が多いです。 なお、こちらのエントリに記載しているコンソール上での例はElixir 1.3.0で動作させています。 演算子編 パイプ演算子 iex(1)> sample = [1, 2, 3] [1, 2, 3] iex(2)> Enum.count(sample) 3 iex(3)> sample |> Enum.count 3 |> の左側に記述した変数が、右側の関数の第一引数として渡されます。 例えば、あるパラメータ params から A module で必要なデータ
ExUnit.start() defmodule AddTest do use ExUnit.Case test "add test" do assert 1+1==2 assert 1+2==2 end end $ elixir add_test.exs 1) test add test (AddTest) add_test.exs:4 Assertion with == failed code: 1 + 2 == 2 lhs: 3 rhs: 2 stacktrace: add_test.exs:6: (test) Finished in 0.03 seconds (0.03s on load, 0.00s on tests) 1 test, 1 failure Randomized with seed 375518 ExUnit.start() defmodule StringTest
Elixir はプロセス指向なだけあって、カジュアルに並列処理を使えます。 今回はこの並列処理を活用して、複数の勉強会サイトの WebAPI に対して一気にリクエストを投げる、いわゆるメタサーチ的な API を作ってみたいと思います。 Phoenix アプリケーションでの外部 API リクエストについてはコチラを参照してください。 事前準備: 各勉強会サイトの API 理解する ATND, Connpass, Zusaar, Doorkeeper のいずれも、アクセスキー無し(!)で利用できる WebAPI が用意されています。 大変ありがたいことに、これらの API については sharow さんが以下の記事にとても良くまとめてくださっていますので、こちらを参考にしたいと思います。 勉強会サイトのAPI比較 http://qiita.com/sharow/items/508bc876ff
Tokyu Ruby Kaigiは僕が初めて参加したプログラマーのイベントなので個人的な思い入れがあります. 2回目の参加の時は飛び入りでLTをさせてもらいました. 今回は事前にLTの登録をして, Elixir/Erlangについての話をしてきました! (LTのトリでした) Elixirについての話をした 言いたかったのは, Elixirのスゴイところとして紹介されていることの多くはErlangVM(BEAM)のおかげ “The Power of Erlang, the Joy of Ruby” - Dave Thomas Voyage GroupさんでErlangを書いてらっしゃる方から話を聞くことが出来たのが一番うれしかった. Erlangを使ってる人達の話をもっともっと聞きたいので, そういう会があったら教えてください.お願いします 学習においてはProgramming Elixir
Phoenix 1.0 – the framework for the modern web just landed Posted on August 28th, 2015 by Chris McCord After a year and a half of work, 2500 commits, and 30 releases, Phoenix 1.0 is here! With 1.0 in place, Phoenix is set to take on the world whether you’re building APIs, HTML5 applications, or network services for native devices. Written in Elixir, you get beautiful syntax, productive tooling and
View Source Typespecs reference Elixir comes with a notation for declaring types and specifications. This document is a reference into their uses and syntax. Elixir is a dynamically typed language, and as such, type specifications are never used by the compiler to optimize or modify code. Still, using type specifications is useful because: they provide documentation (for example, tools such as ExD
In a recent discussion I had around development topics in general, static typing came up, and it got me thinking about why I've never missed that, or even thought much about it, while working with Elixir (or Erlang for that matter).. UPDATE 2015-08-01: I've clarified and expanded the "Pattern matching" section, and added references to some recommended reading at the end.. Why static typing? One of
Reactive Manifesto の印象 正直 Reactive Manifesto を初めて読んだときは、Akka や Erlang についてよく知らなかったし「何か変わったことが書いてるか?」ぐらいの感じではあった。 しかしながら先日発表のあった Typesafe Reactive Platformで作るReactive System このスライドを見て、ようやく自分の中で具体例との対応付けができた。 Reactive System ・・・ Scala の Akka と Erlang, Elixir 引用するが、スライドでは「Reactive System の価値」として Reactive Manifesto にある Elastic / Resilient / Message-driven / Responsive を以下のように位置づけ整理している。 そして Scala 界隈で
※この記事はとても古くなっています。注意してください。 個人的なメモです。 Get Started を読みながらまとめました。 流し読みすれば雰囲気くらいはつかめるかもしれません。 匿名関数 add = fn a, b -> a + b end is_function add, 1 # false add.(1, 2) # 3 bool Elixirではfalseとnilだけがfalseとして扱われます.他の全てはtrueと評価されます. リスト と タプル リスト [1, true, 2] タプル {false, 1, "abc"} どんな型も入れられる。 リスト [ ] [1, 2, true, "abc"] ・連結したノードで、要素の一つ一つが次の要素のアドレスを指してる つまり list = [1|[2|[3|[]]]] → [1, 2, 3] ※ノードというよりコンスと呼ぶらしい
あの Dave Thomas が書いた『Programming Elixir』を買ったのでぼちぼち読んでいる。 Chapter 1. に Elixir の特徴を巧みに表現した文章があってカッとなったので、引用しておきたい。 Object orientation is not the only way to design code Functional Programming need not be complex or mathematical. The foundations of programming are not assignments, if statements, and loops. Concurrency does not need locks,semaphores, monitors, and the like. Processes are not necessaril
[翻訳] ElixirにおけるOTPの紹介 という記事が上がってた (いつも翻訳ありがとうございます) のでそれに触発されて勢いで書いてみる。 ちなみに今後発売される Web+DB PRESS Vol.88, 89 の連載では2回続けて Elixir の記事を書いているよ。 もとい Elixir 状態を扱うにはどうするのが定番か 軽量プロセスを使ったクライアント/サーバーのありがちな実装 それを GenServer を使うとどう書けるのか GenServer 使うとどんないいことがあるのか あたりを解説してみる。 Elixir のプロセスで状態を扱う Elixir で状態を扱いたい場合は軽量プロセスの仕組みを使って、プロセスの中に状態を閉じ込めて、そのプロセスとのメッセージパッシングで状態への操作を行うのが定石である。 その例として、例えば key + value を保存できるプロセスを作
Ken Mazaikaさんの2015年1月31日付のブログ記事、Why I’m betting on Elixir And why you should too, unless you want to become a maintenance programmer.の翻訳です。 [翻訳] Elixir - 次に来る大物Web言語もそうでしたがなんかRailsのプログラマさんたちがやたらアツく語ってるんですね、Elixirを。 メンテナンスプログラマになりたくなければ1、なんてタイトルからして挑発的です。私の3つ前の仕事はまさにそういう保守系でしたけど。 あんまりアツいんで皆さんとアツさを共有したくて翻訳しました。 なおQiitaのCentOS + Erlang + Elixir + PhoenixのDockerイメージで今日から始めるElixir on Phoenix入門の追記のところでも
ここ最近、 [翻訳] Elixir - 次に来る大物Web言語 - Qiita とか 超高速なJSON APIをElixirフレームワークのPhoenixでビルドしてテストしよう | POSTD を読んで気になっていたので、勉強していた。 前提: 自分はシングルページアプリケーションに特化したフロントエンドエンジニアであり、サーバサイドのプロダクション運用にはそこまで強くない。あとこれはここ2日の勉強した日記でもあり誤解や勘違いも多々あると思う。 リアルタイムウェブアプリケーションのためのサーバー Railsの次の時代、リアルタイムウェブの為のウェブフレームワークがあるとしたら、次のような特長をもつと思う。 HTTP, HTTP/2. WebSocket等のプロトコル対応と抽象化 JSON APIに特化 認証系 キャッシュ管理 Viewに関心がない リアルタイムウェブは、その言葉をどう定義
Lau Taarnskovさんの2015年4月19日付のブログ記事、Elixir - The next big language for the webの翻訳です。 ElixirはErlangのVM上で走る、Rubyにちょっと似た(というのも作者(José Valim)がRuby on Railsのcoreチームメンバーなので)関数型言語です。 2012年に登場していてQiitaでもAdvent Calendarなどが既にあるようですがまだあまり知られていないですね。ElixirとPhoenix Frameworkを組み合わせたものがマイクロ秒のオーダーで反応が帰る爆速だそう(ホントかな~)で興味を持ちました。 しかしほんの10年前ぐらいの話がもう遥かな昔話に聞こえますね…。 (追記:実際にプログラムを書いてみました → Elixirで試しに何か書いてみる(その1) Elixirで試しに何
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く