はじめに
今回の投稿では全体の作業の流れと、それぞれの作業でどんなことをやるかの作業詳細について解説します。本来その1でやる内容なのですが、計画不足ですみません。
全体の流れ
全体の流れへ下記の通りです、なお既に仕様は確定しているものと仮定します。
- staticのセットアップ(済み)
- appのセットアップ(済み)
- HTMLのルーティング(済み)
- ページ仮作成
- appのモデル作成(済み)
- テストデータ作成(済み)
- APIのルーティング
- APIの仮組み
- staticのモデル作成
- セッションと認証管理の設定
- ページ作成
ページ仮作成を飛ばしてしまっていました、次回のその8ではViewの実装をやろうと思います。
staticのセットアップ
staticのセットアップではwebpack-dev-server
などをインストールし、クライアントサイドのJavaScriptのコーディングがスムースになるようにします。
-
webpack_dev_server
,nodemon
,gulp
のインストール -
gulpfile.js
の追加 -
webpack.config.js
の追加 -
package.json
の編集 - HTML5 Boilerplate からファイルをコピー
-
src/entry.js
の追加 - .gitignore の追加
appのセットアップ
appのセットアップではexpress
などのインストールとサーバ起動のスクリプト追加などにより、開発が開始できるようにします。
-
express
,proxy-middleware
,serve-static
,morgan
,jade
のインストール - 開発用に
nodemon
のインストール -
index.js
の追加 -
bin/www
の追加 -
package.json
の編集 -
routes/pages.js
の追加 -
views/layouts/default.jade
の追加 -
views/pages/anonymous-home.jade
の追加
HTMLのルーティング
HTMLのルーティングでは次の作業であるページ仮作成で作成されるページをどのURLに配置するを設定します。
-
index.js
の編集 -
routes/projects.js
などの追加 -
views/projects/admin-list.jade
などの追加 -
views/layouts/2-column/admin.jade
などの追加
ページ仮作成
ページ作成ではモックアップを作成します。何かとモックアップを作ると、どんなものが必要なのかが見えてくるので便利だなーと、自分は忘れっぽいので重宝しています。
-
views/projects/admin-list.jade
などの編集
appのモデル作成
データベースに格納されるデータを設計します。
-
sequelize
,sqlite3
,mysql
をインストール - 開発用に
sequelize-cli
をインストール -
sequelize init
でmodels/index.js
を追加 -
models/project.js
などの追加 -
data
ディレクトリの作成
テストデータ作成
テストデータがあった方が動作確認が楽なのでテストデータを作成します。
-
test/fixture/index.js
の追加 -
test/fixture/projects.js
などの追加 -
bin/sync
の追加
APIのルーティング
次の作業のAPIの仮組みで作成するAPIをどのURLに配置するかを設定します。
-
index.js
の編集 -
routes/projects.js
などの編集
APIの仮組み
リソースに対するGET, POST, PUT, DELETEなど基本的なREST APIを実装します。
-
routes/projects.js
などの編集
staticのモデル作成
フォームではValidationが必要になることが多いですが、これをクライアントサイド側だけでやりたいので、staticのモデルを作成します。
-
static/src/models/project.js
などの追加 -
static/src/entry.js
の編集
セッションと認証管理の設定
ユーザのIDがないと保存できないテーブルなどもありますので、この段階でセッションを設定し、認証管理を行えるようにします。
-
express-session
,connect-redis
のインストール -
app/index.js
の編集
ページ作成
個々のページを実装していきます、だいたいが下記の繰り返しです。
- Viewの編集
- APIの追加と変更
- Routerの追加・編集
- Componentの作成
Componentとはクライアントサイドで使用するパーツのことを指しています。HTMLのWeb Componentと概念が近く、私が勝手にそう呼んでいます。
おわりに
これまで無計画に進めてしまって読みづらい記事になってしまって恐縮ですが、これからはもう少し計画的に記事を書いていこうと思います。
次回は飛ばしてしまった作業である「ページ仮作成」についてご紹介します。