-
Notifications
You must be signed in to change notification settings - Fork 6
Phoenix Tutorial Index
#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