技術メモ

プログラミングとか電子工作とか

プログラミング

Phoenix入門 (第4章 Routing その2)

どうも、靖宗です。 前回途中で終わってるので、Routingの続きです。 まずはPath Helpers。 Path Helpers More on Path Helpers Nested Resources Scoped Routes scopeのネスト 同じパスのscope Path Helpers Path Helpersとはコントローラーを作成したら勝…

Phoenix入門 (第4章 Routing その1)

どうも、靖宗です。 前回ざっくりとしかやらなかったルーティング。ちょっとページが長いので数回に分けて記事にしたいと思います。 router.exを見てみる Examining Routes Resources Forward router.exを見てみる 前回も触れていますが、ルーティングはlib/…

Phoenix入門 (第3章 Adding Pages)

どうも、靖宗です。 今回は「Adding Pages」ということで、単純に訳してページを追加していく感じでしょう。 という事で基礎的なルーティング(どんなURLで何を表示するか)もおそらくこの章で触れることになるでしょう。 概要 動的ファイル 静的ファイル We…

Phoenix入門 (第2章 Up and Running)

どうも、靖宗です。 今回はPhoenixの起動など?いわゆるHello worldという認識です。 この章はPhoenixのインストールまでが終わっている想定です。 早速進めて行きましょう。 Up and Running Up and Running なにやらPhoenixのプロジェクトを開始するにはmix…

Phoenix入門 (第1章 概要、環境構築)

どうも、靖宗です。 前回まではElixir入門ということでやっていましたが、今回からはElixirで書かれているPhoenixを学習していきたいと思います。 まだ触ってないのでなんとも言えませんが、基本的にはElixirがざっくりと分かっている想定で記事を書いていき…

Elixir入門(Meta-programming編 第3章 Domain-specific languages)

どうも、靖宗です。 Meta-programming編は少ないもので3章構成です。 ただし、各々のテーマが裏に闇を感じます。本気で相手したら時間が無限に吸い取られて行く気がします・・・ 今回はDomain-specific languages。1章で終わるんでしょうか? Foreword Build…

Elixir入門(Meta-programming編 第2章 Macros)

どうも、靖宗です。 今回はMacrosということで、超時空要塞ではなくちょいちょいでてたifとかquoteとかの奴です。 Foreword Our first macro Macros hygiene The environment Private macros Write macros responsibly Foreword 大いなる力には大いなる責任…

Elixir入門(Meta-programming編 第1章 Quote and unquote)

どうも、靖宗です。 Mix and OTP編も終わりましたので、今回からはMeta-programming編となります。 おそらく詳細な内部実装などの話になってくるので、今まで謎だった挙動とかが明らかになると信じて進めて行きます。 (マクロなどもこの分野だそうです) こ…

Elixir入門(Mix and OTP編 第10章 Distributed tasks and configuration)

どうも、靖宗です。 Mix and OTP編もこれで終了? チュートリアルが終わっただけでまだなーんにもやってないんですが、基礎的な所は一通り目を通せた感じです。 まだMeta-programming編が残ってるので入門が終わりって訳じゃ無いんですが、とりあえず進めて…

Elixir入門(Mix and OTP編 第9章 Doctests, patterns and with)

どうも、靖宗です。 くどいようですが、今回も前回の引き続きです。 今回はDoctests, patterns and withということで、Doctestsはドキュメント関連かな?とは思いますが他はしりません。 早速進めて行きます。 Doctests with Running commands このチャプタ…

Elixir入門(Mix and OTP編 第8章 Task and gen_tcp)

どうも、靖宗です。 今回も前回の引き続きとなります。 今回は前回用意したKVServerを作って行くところでしょう。なかなか楽しそう・・・ Echo server Tasks Task supervisor Echo server まずは基本のエコーだけの機能のTCPサーバーを作成します。なんかリ…

Elixir入門(Mix and OTP編 第7章 Dependencies and umbrella projects)

どうも、靖宗です。 この章も引き続きMix and OTP編なので、通読が必要かもしれません。 Elixir入門は一度再編集したほうが分かりやすいし自分の為にもなるかもしれないなぁ。 External dependencies Internal dependencies Umbrella projects Dependencies …

Elixir入門(Mix and OTP編 第6章 ETS)

どうも、靖宗です。 今回はETS(Erlang Term Storage)。この章も前回からの引き続きとなります。 ETSというキーワードはちょいちょい出てきてたんですが実際なんなのかまだ分からないところ。Bucketの実装方法としてプロセスとETSの二種類があるよって事で…

Elixir入門(Mix and OTP編 第5章 Dynamic supervisors)

どうも、靖宗です。 お次のタイトルは「Dynamic supervisors」。 今回も前回からの引き続きです。 The bucket supervisor Supervision trees Shared state in tests Observer 忘れかけてましたが、第3章の最後に {:ok, pid} = KV.Bucket.start_link([]) # リ…

Elixir入門(Mix and OTP編 第4章 Supervisor and Application)

どうも、靖宗です。 前回に引き続き第4章。リンクとモニターどっちかで、今回はモニター使うんだからリンクしないようにしよう!みたいな流れになる気がします。 Our first supervisor Naming processes Understanding applications Starting applications T…

Elixir入門(Mix and OTP編 第3章 GenServer)

どうも、靖宗です。 今回はGenServerということですが、Mix and OTP編はおそらく通読する必要があると思います。 もし有り難いことにこのブログをご覧になってる方がいらっしゃったらMix and OTP編の最初から見ていただけると幸いです。 Our first GenServer…

Elixir入門(Mix and OTP編 第2章 Agent)

どうも、靖宗です。 地味に第n章の箇所を漢数字からアラビア数字に変更しました。いちいち変換するのめんどくさい・・・ The trouble with state Agents Test setup with ExUnit callbacks Other agent actions Client/Server in agents お次はAgent。たぶん…

Elixir入門(Mix and OTP編 第1章 Introduction to Mix)

どうも、靖宗です。 ようやくGETTING STARTEDが終わりましたが氷山の一角すら体感できてない感じです。 ささっとウェブのチュートリアルを終わらせてfukuoka.exの強い人の記事なんかを追いたいところです。 浮気心を押さえてMix and OTP編を進めて行きます。…

Elixir入門(おまけ Intelij IDEでElixirのプロジェクトを扱う Windows10編)

どうも、靖宗です。 Mix and OTP編に突入と言うことでIDEを導入していきたいと思います。 といってもVSCodeがデフォルト?てシンタックスに対応してたりするんでそれでもいい気がしますが、JetBrain教に入信してしまったので一応使える様にしておきたいので…

Elixir入門(第二十三章 Where to go next)

どうも、靖宗です。 Elixirの公式WebサイトにあるGETTING STARTEDの最終章、Where to go nextです。 記事にするほどでも無いかもしれませんが一応。 ここまできた輩はこれから何を勉強すれば良いのかとかそういう話だとおもいます。 Build your first Elixir…

Elixir入門(第二十二章 Erlang libraries)

どうも、靖宗です。 今回はErlang librariesとのことで、ErlangVM上で走ってるElixirならではといったところでしょうか。 ただ、ライブラリの紹介なんてのはドキュメントを見れば良いので、あまり深入りはせずサクッと終わらせます。 The binary module Form…

Elixir入門(第二十章 Typespecs and behaviours)

どうも、靖宗です。 ようやく20章、終わりが見えてきました。と思ったらそのしたにMIX AND OTPの文字が・・・ たぶんこっちが本編だよね( ´゚д゚`) めげずに進みます。 Types and specs Function specifications Defining custom types Static code analysis …

Elixir入門(第十九章 try, catch, and rescue)

どうも、靖宗です。 流石にこの章は例外処理でしょう。 でも、rescueってなんぞや( ´゚д゚`) Elixirには3つのエラー処理errors``throws``exitsがあるそうです。 順に追っていきます。 Errors Throws Exits After Else Variables scope Errors Errors(or excep…

Elixir入門(第十八章 Sigils)

どうも、靖宗です。 この章はSigil。まったく聞いたこともないので辞書で調べてみるとシジルまたはシギル(英: sigil、羅: sigillum)は主に西洋魔術で使われる図形、記号、紋章、線形である。。 とうとう魔術まで出てきました・・・ Regular expressions(…

Elixir入門(第十七章 Comprehensions)

どうも、靖宗です。 今回は「Comprehensions」。もう単語の意味もよく分かりません・・・(包容力?包含?コンプリヘンション?) Generators and filters(ジェネレータとフィルター) Bitstring generators The :into option どうやらComprehensionsはリス…

Elixir入門(第十六章 Protocols)

どうも、靖宗です。 今回は前回もなんか文中に出てきてたProtocols(プロトコル?)。 Elixirの多態性のメカニズムと書かれてますが、前回の構造体の柔軟性を広げたバージョンでしょうか? とりあえず、読み進めます。 Protocols and structs(プロトコルと…

Elixir入門(第十五章 Structs)

どうも、靖宗です。 今回はStructsということで構造体?C言語ではないしたぶんもっと違うなにか・・・ Defining structs(構造体の定義?) Accessing and updating structs(構造体の値の取得と更新) Structs are bare maps underneath Default values and…

Elixir入門(第十四章 Module attributes)

どうも、靖宗です。 今回はモジュールの属性?モジュールを組み立てていくときに必要な情報っぽいです。 注釈として "constants"として 一時的なストレージとして Module attributesというのはElixirで モジュールにユーザーかVMの為の注釈を付ける 定数とし…

Elixir入門(第十三章 alias, require, and import)

どうも、靖宗です。 今回は名前からするに外部ファイルの使い方とか名前空間とか? 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…

Elixir入門(第十二章 IOとファイルシステム)

どうも、靖宗です。 お次はIO and the file systemということで、ファイルIOなどでしょうか。 The IO module(IOモジュール) The File module(Fileモジュール) The Path module(Pathモジュール) Processes and group leaders iodata and chardata The I…