プログラミング
どうも、靖宗です。 実は個人的に一番知りたかった項目で、Channelに関してです。 この章も少々長くなりそうなので2記事に分割予定です。 Channels The Moving Parts Overview Endpoint Socket Handlers Channel Routes Channels Topics Messages PubSub Cli…
どうも、靖宗です。 今回はTemplatesということでテンプレートに関して深掘りしていきます。 大体Viewsで知りたいことは知った感もあるのですが、念のためにチェックしておきます。 Templates Examples hello_phoenix_web.ex Displaying Lists Render templa…
どうも、靖宗です。 いつもはシリーズ物ばかり書いてますがたまには単発記事も書きたいです。 技術”メモ”なので、好きに書けばええやんって言われそうですが(笑) Systemモジュール find_executable("コマンド") cmd("コマンド", 引数, オプション) プログ…
どうも、靖宗です。 前回のViewsの続きです。 The ErrorView Rendering JSON The ErrorView PhoenixにはErrorViewというビューが生成されています。Controllersの2つめの記事で保留にしたやつです。 ファイルはlib/hello_phoenix_web/views/error_view.exが…
どうも、靖宗です。 今回はViewsということで、実際にレンダリング処理など一番クライアント側に近い処理の話でしょうか。 とりあえず進めて行きます。 Rendering Templates More About Views A Word About Layouts PhoenixのViewの役割はなんと言ってもレン…
どうも、靖宗です。 Controllersの続きです。今回で終われるかな? Redirection Action Fallback Halting the Plug Pipeline Redirection Phoenix上でのリダイレクトの方法のようです。 アイテムを作成した後に表示画面にリダイレクトしたいときなんかに使え…
どうも、靖宗です。 Controllersの続きです。また記事3個になりそうです。 Rendering テキスト JSON HTML(テンプレートファイル無し) render/3関数 Sending responses directly Assigning Layouts Overriding Rendering Formats Setting the Content Type …
どうも、靖宗です。 今回はControllersということで、コントローラの話です。 ルーティングのところで一通りは把握している所ですが、少々深掘りしていきましょう。 Actions Gathering Data Flash Messages 今のところ、Phoenixの作業は mix phx.new project…
どうも、靖宗です。 今回はEndpointということでPlugのところでもちょっとやったところです。 全てのリクエストはまずEndpointに渡されて、その後にルーティング処理に入ります。 Endpoint Contents Using SSL SSL in Development Force SSL HSTS そもそもPh…
どうも、靖宗です。 お次はPlug。というかPhoenixの説明でPlugPlug言われてたので先にこの章からやれば良かった。 今まで結構でてきてるところから分かるとおり、PlugはPhoenixのコアな部分です。PhoenixのHTTPレイヤーなどを担当しているっぽいのでもうちょ…
どうも、靖宗です。 Plugの説明の記事を挟みましたが、引きつづぎRoutingの章を進めて行きます。 Pipelines The Endpoint Plugs The :browser and :api Pipelines 例 scope無しのパイプライン 複数のパイプライン Creating New Pipelines Channel Routes Pip…
どうも、靖宗です。 あまりにもPlugPlug言われるのでPlugのドキュメントを一通り読んでおきます。 hexdocs.pm Plugとは Hello world The Plug.Conn struct Plug.Router Supervised handlers Testing plugs Plugとは Webアプリケーション間の構成可能なモジュ…
どうも、靖宗です。 前回途中で終わってるので、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編を進めて行きます。…