2019-02-01から1ヶ月間の記事一覧
どうも、靖宗です。 前回途中で終わってるので、Routingの続きです。 まずはPath Helpers。 Path Helpers More on Path Helpers Nested Resources Scoped Routes scopeのネスト 同じパスのscope Path Helpers Path Helpersとはコントローラーを作成したら勝…
どうも、靖宗です。 前回ざっくりとしかやらなかったルーティング。ちょっとページが長いので数回に分けて記事にしたいと思います。 router.exを見てみる Examining Routes Resources Forward router.exを見てみる 前回も触れていますが、ルーティングはlib/…
どうも、靖宗です。 今回は「Adding Pages」ということで、単純に訳してページを追加していく感じでしょう。 という事で基礎的なルーティング(どんなURLで何を表示するか)もおそらくこの章で触れることになるでしょう。 概要 動的ファイル 静的ファイル We…
どうも、靖宗です。 今回はPhoenixの起動など?いわゆるHello worldという認識です。 この章はPhoenixのインストールまでが終わっている想定です。 早速進めて行きましょう。 Up and Running Up and Running なにやらPhoenixのプロジェクトを開始するにはmix…
どうも、靖宗です。 前回まではElixir入門ということでやっていましたが、今回からはElixirで書かれているPhoenixを学習していきたいと思います。 まだ触ってないのでなんとも言えませんが、基本的にはElixirがざっくりと分かっている想定で記事を書いていき…
どうも、靖宗です。 Meta-programming編は少ないもので3章構成です。 ただし、各々のテーマが裏に闇を感じます。本気で相手したら時間が無限に吸い取られて行く気がします・・・ 今回はDomain-specific languages。1章で終わるんでしょうか? Foreword Build…
どうも、靖宗です。 今回はMacrosということで、超時空要塞ではなくちょいちょいでてたifとかquoteとかの奴です。 Foreword Our first macro Macros hygiene The environment Private macros Write macros responsibly Foreword 大いなる力には大いなる責任…
どうも、靖宗です。 Mix and OTP編も終わりましたので、今回からはMeta-programming編となります。 おそらく詳細な内部実装などの話になってくるので、今まで謎だった挙動とかが明らかになると信じて進めて行きます。 (マクロなどもこの分野だそうです) こ…
どうも、靖宗です。 Mix and OTP編もこれで終了? チュートリアルが終わっただけでまだなーんにもやってないんですが、基礎的な所は一通り目を通せた感じです。 まだMeta-programming編が残ってるので入門が終わりって訳じゃ無いんですが、とりあえず進めて…
どうも、靖宗です。 くどいようですが、今回も前回の引き続きです。 今回はDoctests, patterns and withということで、Doctestsはドキュメント関連かな?とは思いますが他はしりません。 早速進めて行きます。 Doctests with Running commands このチャプタ…
どうも、靖宗です。 今回も前回の引き続きとなります。 今回は前回用意したKVServerを作って行くところでしょう。なかなか楽しそう・・・ Echo server Tasks Task supervisor Echo server まずは基本のエコーだけの機能のTCPサーバーを作成します。なんかリ…
どうも、靖宗です。 この章も引き続きMix and OTP編なので、通読が必要かもしれません。 Elixir入門は一度再編集したほうが分かりやすいし自分の為にもなるかもしれないなぁ。 External dependencies Internal dependencies Umbrella projects Dependencies …
どうも、靖宗です。 今回はETS(Erlang Term Storage)。この章も前回からの引き続きとなります。 ETSというキーワードはちょいちょい出てきてたんですが実際なんなのかまだ分からないところ。Bucketの実装方法としてプロセスとETSの二種類があるよって事で…
どうも、靖宗です。 お次のタイトルは「Dynamic supervisors」。 今回も前回からの引き続きです。 The bucket supervisor Supervision trees Shared state in tests Observer 忘れかけてましたが、第3章の最後に {:ok, pid} = KV.Bucket.start_link([]) # リ…
どうも、靖宗です。 前回に引き続き第4章。リンクとモニターどっちかで、今回はモニター使うんだからリンクしないようにしよう!みたいな流れになる気がします。 Our first supervisor Naming processes Understanding applications Starting applications T…
どうも、靖宗です。 今回はGenServerということですが、Mix and OTP編はおそらく通読する必要があると思います。 もし有り難いことにこのブログをご覧になってる方がいらっしゃったらMix and OTP編の最初から見ていただけると幸いです。 Our first GenServer…
どうも、靖宗です。 地味に第n章の箇所を漢数字からアラビア数字に変更しました。いちいち変換するのめんどくさい・・・ The trouble with state Agents Test setup with ExUnit callbacks Other agent actions Client/Server in agents お次はAgent。たぶん…
どうも、靖宗です。 ようやくGETTING STARTEDが終わりましたが氷山の一角すら体感できてない感じです。 ささっとウェブのチュートリアルを終わらせてfukuoka.exの強い人の記事なんかを追いたいところです。 浮気心を押さえてMix and OTP編を進めて行きます。…
どうも、靖宗です。 Mix and OTP編に突入と言うことでIDEを導入していきたいと思います。 といってもVSCodeがデフォルト?てシンタックスに対応してたりするんでそれでもいい気がしますが、JetBrain教に入信してしまったので一応使える様にしておきたいので…
どうも、靖宗です。 Elixirの公式WebサイトにあるGETTING STARTEDの最終章、Where to go nextです。 記事にするほどでも無いかもしれませんが一応。 ここまできた輩はこれから何を勉強すれば良いのかとかそういう話だとおもいます。 Build your first Elixir…
どうも、靖宗です。 今回はErlang librariesとのことで、ErlangVM上で走ってるElixirならではといったところでしょうか。 ただ、ライブラリの紹介なんてのはドキュメントを見れば良いので、あまり深入りはせずサクッと終わらせます。 The binary module Form…
どうも、靖宗です。 残すところあと数個、今回はDebuggingです。 IO.inspect/2 IEx.pry/0 and IEx.break!/2 Debugger IO.inspect/2 デバッグに使用されるIO.inspect/2という関数があるようです。 とりあえずサンプルで分かる! iex(5)> (1..10) \ ...(5)> |>…
どうも、靖宗です。 ようやく20章、終わりが見えてきました。と思ったらそのしたにMIX AND OTPの文字が・・・ たぶんこっちが本編だよね( ´゚д゚`) めげずに進みます。 Types and specs Function specifications Defining custom types Static code analysis …
どうも、靖宗です。 流石にこの章は例外処理でしょう。 でも、rescueってなんぞや( ´゚д゚`) Elixirには3つのエラー処理errors``throws``exitsがあるそうです。 順に追っていきます。 Errors Throws Exits After Else Variables scope Errors Errors(or excep…
どうも、靖宗です。 この章はSigil。まったく聞いたこともないので辞書で調べてみるとシジルまたはシギル(英: sigil、羅: sigillum)は主に西洋魔術で使われる図形、記号、紋章、線形である。。 とうとう魔術まで出てきました・・・ Regular expressions(…
どうも、靖宗です。 今回は「Comprehensions」。もう単語の意味もよく分かりません・・・(包容力?包含?コンプリヘンション?) Generators and filters(ジェネレータとフィルター) Bitstring generators The :into option どうやらComprehensionsはリス…
どうも、靖宗です。 今回は前回もなんか文中に出てきてたProtocols(プロトコル?)。 Elixirの多態性のメカニズムと書かれてますが、前回の構造体の柔軟性を広げたバージョンでしょうか? とりあえず、読み進めます。 Protocols and structs(プロトコルと…
どうも、靖宗です。 今回はStructsということで構造体?C言語ではないしたぶんもっと違うなにか・・・ Defining structs(構造体の定義?) Accessing and updating structs(構造体の値の取得と更新) Structs are bare maps underneath Default values and…
どうも、靖宗です。 今回はモジュールの属性?モジュールを組み立てていくときに必要な情報っぽいです。 注釈として "constants"として 一時的なストレージとして Module attributesというのはElixirで モジュールにユーザーかVMの為の注釈を付ける 定数とし…
どうも、靖宗です。 今回は名前からするに外部ファイルの使い方とか名前空間とか? alias require import use Understanding Aliases Module nesting Multi alias/import/require/use # Alias the module so it can be called as Bar instead of Foo.Bar ali…