Soumettre la recherche
Mettre en ligne
Elixirだ 第5回
•
3 j'aime
•
1,499 vues
Joe_noh
Suivre
社内Elixir勉強会 第5回の資料
Lire moins
Lire la suite
Internet
Signaler
Partager
Signaler
Partager
1 sur 38
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Rspec
Rspec
Yunosuke Taga
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Yu Nobuoka
Tdd
Tdd
Tsukasa Oishi
Elixirだ 第3回
Elixirだ 第3回
Joe_noh
Elixirだ 第4回
Elixirだ 第4回
Joe_noh
Elixirだ 第1回強化版 前半
Elixirだ 第1回強化版 前半
Joe_noh
Elixirだ 第6回
Elixirだ 第6回
Joe_noh
Elixirだ 第2回
Elixirだ 第2回
Joe_noh
Recommandé
Rspec
Rspec
Yunosuke Taga
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Yu Nobuoka
Tdd
Tdd
Tsukasa Oishi
Elixirだ 第3回
Elixirだ 第3回
Joe_noh
Elixirだ 第4回
Elixirだ 第4回
Joe_noh
Elixirだ 第1回強化版 前半
Elixirだ 第1回強化版 前半
Joe_noh
Elixirだ 第6回
Elixirだ 第6回
Joe_noh
Elixirだ 第2回
Elixirだ 第2回
Joe_noh
パフォーマンス改善のためにやったこと・やらなかったこと
パフォーマンス改善のためにやったこと・やらなかったこと
Joe_noh
Vue.jsのユニットテスト
Vue.jsのユニットテスト
Joe_noh
Vuexと入力フォーム
Vuexと入力フォーム
Joe_noh
カラーミーAPIドキュメントの今後
カラーミーAPIドキュメントの今後
Joe_noh
サイクルOJTイントロダクション
サイクルOJTイントロダクション
Joe_noh
お産ウィークイントロダクション
お産ウィークイントロダクション
Joe_noh
モバイルアプリ研修イントロダクション
モバイルアプリ研修イントロダクション
Joe_noh
Webオペレーション研修イントロダクション
Webオペレーション研修イントロダクション
Joe_noh
Web開発研修イントロダクション
Web開発研修イントロダクション
Joe_noh
リーンキャンバス
リーンキャンバス
Joe_noh
もっとgit
もっとgit
Joe_noh
できないことはPortで外注
できないことはPortで外注
Joe_noh
DBにseedするライブラリつくった
DBにseedするライブラリつくった
Joe_noh
やってみた -URL外形監視-
やってみた -URL外形監視-
Joe_noh
Elixirだ 第1回強化版 後半
Elixirだ 第1回強化版 後半
Joe_noh
Elixirだ 第1回 - 基礎だ -
Elixirだ 第1回 - 基礎だ -
Joe_noh
Declaimerっていうやつつくった(つくってる)
Declaimerっていうやつつくった(つくってる)
Joe_noh
いつかどこかで使えそうな英語
いつかどこかで使えそうな英語
Joe_noh
NUTハッカソン2014成果報告
NUTハッカソン2014成果報告
Joe_noh
@nukokusa_botを支える技術
@nukokusa_botを支える技術
Joe_noh
Contenu connexe
Plus de Joe_noh
パフォーマンス改善のためにやったこと・やらなかったこと
パフォーマンス改善のためにやったこと・やらなかったこと
Joe_noh
Vue.jsのユニットテスト
Vue.jsのユニットテスト
Joe_noh
Vuexと入力フォーム
Vuexと入力フォーム
Joe_noh
カラーミーAPIドキュメントの今後
カラーミーAPIドキュメントの今後
Joe_noh
サイクルOJTイントロダクション
サイクルOJTイントロダクション
Joe_noh
お産ウィークイントロダクション
お産ウィークイントロダクション
Joe_noh
モバイルアプリ研修イントロダクション
モバイルアプリ研修イントロダクション
Joe_noh
Webオペレーション研修イントロダクション
Webオペレーション研修イントロダクション
Joe_noh
Web開発研修イントロダクション
Web開発研修イントロダクション
Joe_noh
リーンキャンバス
リーンキャンバス
Joe_noh
もっとgit
もっとgit
Joe_noh
できないことはPortで外注
できないことはPortで外注
Joe_noh
DBにseedするライブラリつくった
DBにseedするライブラリつくった
Joe_noh
やってみた -URL外形監視-
やってみた -URL外形監視-
Joe_noh
Elixirだ 第1回強化版 後半
Elixirだ 第1回強化版 後半
Joe_noh
Elixirだ 第1回 - 基礎だ -
Elixirだ 第1回 - 基礎だ -
Joe_noh
Declaimerっていうやつつくった(つくってる)
Declaimerっていうやつつくった(つくってる)
Joe_noh
いつかどこかで使えそうな英語
いつかどこかで使えそうな英語
Joe_noh
NUTハッカソン2014成果報告
NUTハッカソン2014成果報告
Joe_noh
@nukokusa_botを支える技術
@nukokusa_botを支える技術
Joe_noh
Plus de Joe_noh
(20)
パフォーマンス改善のためにやったこと・やらなかったこと
パフォーマンス改善のためにやったこと・やらなかったこと
Vue.jsのユニットテスト
Vue.jsのユニットテスト
Vuexと入力フォーム
Vuexと入力フォーム
カラーミーAPIドキュメントの今後
カラーミーAPIドキュメントの今後
サイクルOJTイントロダクション
サイクルOJTイントロダクション
お産ウィークイントロダクション
お産ウィークイントロダクション
モバイルアプリ研修イントロダクション
モバイルアプリ研修イントロダクション
Webオペレーション研修イントロダクション
Webオペレーション研修イントロダクション
Web開発研修イントロダクション
Web開発研修イントロダクション
リーンキャンバス
リーンキャンバス
もっとgit
もっとgit
できないことはPortで外注
できないことはPortで外注
DBにseedするライブラリつくった
DBにseedするライブラリつくった
やってみた -URL外形監視-
やってみた -URL外形監視-
Elixirだ 第1回強化版 後半
Elixirだ 第1回強化版 後半
Elixirだ 第1回 - 基礎だ -
Elixirだ 第1回 - 基礎だ -
Declaimerっていうやつつくった(つくってる)
Declaimerっていうやつつくった(つくってる)
いつかどこかで使えそうな英語
いつかどこかで使えそうな英語
NUTハッカソン2014成果報告
NUTハッカソン2014成果報告
@nukokusa_botを支える技術
@nukokusa_botを支える技術
Elixirだ 第5回
1.
第5回 - あなたとMix
- GMO Pepabo, Inc. Joe Honzawa 2015/06/11 Elixir勉強会 Elixirだ
2.
前回やったこと > モニタとリンク > supervisor
3.
今回の内容 > Mix > ドキュメンテーション >
タスクを作ろう > Dialyzerで型チェック テストとか前にやったのはスキップ
4.
ゴール > ドキュメント書けるようになる > タスク作れるようになる >
Dialyzerは「へー」って感じで
5.
なぜ > ライブラリ公開するなら > みんなが使える形式で配布 >
ドキュメントは必須 > 関数の使い方や仕様 > 使いやすくしなきゃね マナーみたいなものですね
6.
Mixおさらい > Rubyにおけるbundlerとrake > 依存性解決 >
タスクランナー > mix new my_app > mix test > mix something.i.defined
7.
ドキュメンテーション
8.
の前に
9.
モジュール属性
10.
@なんちゃら defmodule M do @the_value
3 def fun, do: @the_value end
11.
モジュール属性 > 他言語での定数みたいに使う > Joe-noh/japanese_holiday >
コンパイル終了後、原則消える > 実行時にはアクセスできない > 当然、編集もできない
12.
予約されてる属性 > @doc > @moduledoc >
@shortdoc > @type > @spec > @behaviour > @external_resource など
13.
ドキュメンテーション
14.
さあ! $ cd fibonacci
15.
lib/fibonacci.ex defmodule Fibonacci do @moduledoc
""" フィボナッチなモジュールだよ * みんなも * 一緒に * フィボナッチ! """
16.
lib/fibonacci.ex @doc """ 次のフィボナッチ数を返す iex> Fibonacci.next 0 iex>
Fibonacci.next 1 """ def next do # 略 end
17.
ほいさ $ iex -S
mix iex(1)> h Fibonacci iex(2)> h Fibonacci.next
18.
ポイント > @moduledocでモジュールの説明 > @docで関数の説明 >
Markdown使える
19.
mix.exs defp deps do latest
= ">= 0.0.0" [ {:ex_doc, latest, only: :docs}, {:earmark, latest, only: :docs} ] end $ mix docs するために必要
20.
ほいさ $ mix deps.get $
mix deps.compile $ MIX_ENV=docs mix docs $ open doc/index.html
21.
hexdocsに公開 $ mix hex.user
register $ mix hex.publish $ mix hex.docs > https://hex.pm/docs/publish
22.
タスクを作ろう
23.
タスク $ mix phoenix.new $
mix phoenix.gen.html $ mix ecto.migrate > よくやることをまとめておく > プロジェクトの初期化や生成 > 運用に関わる作業
24.
目標 $ mix help : mix
escript.build # Builds … mix fib # フィボナッチ! mix help # Print … : fibタスクをつくる
25.
どこに書く $ mkdir -p
lib/mix/tasks $ touch lib/mix/tasks/fib.ex
26.
慣習 > lib/mix/tasks以下に書く > mix
foo なら > lib/mix/tasks/foo.ex > mix foo.bar なら > lib/mix/tasks/foo.bar.ex これちょっと注意
27.
fib.ex defmodule Mix.Tasks.Fib do use
Mix.Task def run([num]) do Application.start(:fibonacci) num = String.to_integer(num) 1..num |> Enum.map(fn _ -> Fibonacci.next end) |> Enum.each(&IO.puts/1) end end
28.
ポイント > use Mix.Task >
run/1を定義 > 引数はList > 文字列で渡ってくる > mix fib 3 なら引数は ["3"] > OptionParser 便利
29.
fibある? $ mix help
30.
fib.ex defmodule Mix.Tasks.Fib do use
Mix.Task @shortdoc "フィボナッチ!" def run([num]) do # 略 end end mix helpで表示するには@shortdocが必要!
31.
fib見えた? $ mix compile $
mix help
32.
Dialyzerで 型チェック
33.
mix.exs defp deps do latest
= ">= 0.0.0" [ {:ex_doc, latest, only: :docs}, {:earmark, latest, only: :docs}, {:dialyze, latest, only: :dev} ] end よしなにやってくれる便利ライブラリ
34.
lib/fibonacci.ex defmodule Fibonacci do #
中略 @spec next() :: integer | no_return def next do # 略 end end
35.
lib/fibonacci/server.ex defmodule Fibonacci.Server do @type
server :: pid | atom # 中略 @spec next(server) :: integer | no_return def next(pid) do # 略 end end
36.
発熱注意 $ mix deps.get $
mix deps.compile $ mix dialyze
37.
なんぞ > @specで関数の仕様を記述 > @typeで自分で型を定義 >
詳しくは公式を参照 > Kernel.Typespec
38.
今回やったこと > Mix > ドキュメンテーション >
タスクを作ろう > Dialyzerで型チェック
Télécharger maintenant