Skip to content

Phoenix Tutorial Index

darui@apprentice edited this page Aug 26, 2015 · 1 revision

#Caution!! ####~ 記事を改修中 ~

####変更内容 ####・記事の分割(理由:情報が多い、記事長い) ####・Markdownでの表示へ修正(理由:見辛い) ####・説明の追加/修正(理由:分かり辛い)

####以上、ご迷惑をお掛けします。m(_ _)m

#Goal Ruby on Rails TutorialをPhoenix-Frameworkで実施する。

#Dev-Environment OS: Windows8.1
Erlang: Eshell V6.4, OTP-Version 17.5
Elixir: v1.0.4
Phoenix Framework: v0.13.1
PostgreSQL: postgres (PostgreSQL) 9.4.4
Safetybox: v0.1.2
Scrivener: v0.11.0

####Caution: リリースバージョンが変わればアップグレードする予定です。
予めご了承下さい。m(_ _)m

#Wait a minute Ruby on Rails Tutorial作者様、日本語訳を実施して下さった訳者様方に感謝を捧げます。

Ruby on Rails TutorialをPhoenix-Frameworkでやっていく連載ものです。

内容は、Phoenix-Frameworkの初心者、入門者レベルです。
基本、アプリケーション作成部分を主眼に置き実施していきます。
なので、Elixirの記法であったり、TDD / BDD部分は端折ります。

いきなりですが、Rails Tutorialの1章の部分は飛ばします。
Gitは使いますが、herokuは使いません。

ソースコード一式はGithubへアップしています。
また、各章毎にプロジェクト名でブランチが存在しています。
Github: darui00kara/phoenix_tutorial (master)

ロードマップは以下のリンク先です。
参考: Roadmap

#Index Rails Tutorial for Phoenix
|> 環境構築(一章相当部分)
|> Let’s play a phoenix!(二章相当部分)
|> 基本的なところ(三章相当部分)
|> Elixirの記法や機能(四章相当部分)
|> レイアウトを作ろう~(五章相当部分)
|> ユーザモデルの作成(六章相当部分)
|> ユーザ登録(七章相当部分)
|> サインイン/サインアウト(八章相当部分)
|> ユーザーの更新・表示・削除(九章相当部分)
|> ユーザーのマイクロポスト(第十章相当部分)
|> ユーザーをフォローする(第十一章相当部分)
|> Refactoring

##環境構築(一章相当部分) Phoenix-Frameworkの簡単な説明。
参考: Phoenix-Frameworkの簡単なまとめ

環境構築について。
以前、Elixir+Phoenix環境を構築した記事があるのでそちらを参照して下さい。

Git
|> Githubへの登録
|> msysGitのインストール
|> GithubへSSH鍵を登録
|> ローカルからGithubのリポジトリへ接続

Elixir
|> Elixirが熱い!?知らないけどとりあえずインストールする
|> ElixirにmixでPhoenixを混ぜ混ぜしてやる!!
|> Phoenixが欲しいって言うからNode.jsをインスコするよ!!
|> 今更ハイライト!?SublimeText3でElixirをハイライトする!!
|> Upgrade phoenix.new of mix archive

##デモアプリを作ろう!!(二章相当部分) 特になし

##基本的なところ(三章相当部分) 特になし

##Elixirの記法や機能(四章相当部分) Elixirの記法や機能について知りたい方へ。
先駆者の方がいらっしゃいます。なので、そちらを参照すべし!
参考: Qiita - Elixir 基礎文法最速マスター

@niku氏、参考にさせて頂きました。

##レイアウトを作ろう~(五章相当部分) 寄り道: PhoenixからBootstrap3を使う!+今更CSS入門!?

##ユーザモデルの作成(六章相当部分) ここでは、PhoenixのGuideにあるEcto Modelsの機能を紹介すると共に、
ユーザモデルにパスワード(カラム)の追加を行う。

詳細・・・
モデルモジュールの自動生成、マイグレーション、
再マイグレーション(カラム追加)、Validation(検証)、virtualオプションを実施する。

各機能
|> シンプルなsafetybox(暗号化ライブラリ)を使う
|> PhoenixとEctoのコマンドまとめ
|> EctoModelsの機能を使う
|> Ecto.ChangesetのValidate関数を使う
|> Ectoを使って再マイグレーションする
|> Ectoのvirtualオプションを検証する
|> Ectoで1対多の関係性を検証する

##ユーザ登録(七章相当部分) この章ではユーザを登録し表示できるようにする。

詳細・・・(モデル以外の自動生成は利用しないで実施する)
ユーザを表示、gravatar画像、ユーザを登録、
ユーザ登録失敗、ユーザ登録成功、flashを利用を実施する。

各機能
|> ユーザを画面に表示する
|> Use a Gravatar image
|> User registration

##サインイン/サインアウト(八章相当部分) この章ではサインインとサインアウトの機能を実装する。

詳細・・・
サインイン、サインアウト、セッション、認証、ページ制限。

各機能
|> Create login form
|> Add the session to the login
|> Processing after the sign-in

##ユーザーの更新・表示・削除(九章相当部分) この章ではユーザの更新・表示・削除を実装する。
またそれに伴って、参照できるページを制限する認可とアクセス制御、ユーザの一覧に対するページネーションを実装します。

認可とアクセス制御、ページネーションは厄介ですね・・・意外とガッツリしてる。
すんなり終わらせてはくれなさそうです(笑)

各機能
|> PhoenixのPlugについて分かったこと
|> Phoenixでもページネーションがしたい!!(その1)
|> Phoenixでもページネーションがしたい!!(その2)
|> Updating users
|> Authorization
|> All Users (implements pagination)
|> Delete user

##ユーザーのマイクロポスト(第十章相当部分) この章では、ユーザと紐づくマイクロポストの実装を行う。
Micropostモデルの作成から始まり、マイクロポストの表示、作成、削除を実装する。

各機能
|> Create Micropost model
|> Microposts List (with pagination)
|> Operation of Micropost

##ユーザーをフォローする(第十一章相当部分) この章では、ユーザのフォロー機能を実装する。

各機能
|> many to many (Part 1)
|> many to many (Part 2)
|> Relationship Model
|> Web interface for the user who follows
|> Micropost of following users

##Refactoring 第十一章終了時点では、ソースコードが汚いので修正をします。
後に、記事へ反映後、削除する予定です。

Refactoring
|> Pagination refactoring
|> View refactoring
|> Templates refactoring

#Speaking to oneself 何故、Ruby on Rails Tutorialをやるのか?

理由は三つ・・・

  • Web開発における知識が習得できる
  • Phoenix-Frameworkのチュートリアルがない (公式のGuideくらい?)
  • ElixirはRubyライク、Phoenix-FrameworkはRailsライクなので変換が比較的容易

上記の三点に合致し、Rails Tutorialはちょうど良い教材になるため。

#Bibliography Ruby on Rails Tutorial

Clone this wiki locally