Developers開発の実験等々、クイックサーブのメンバーが好き好きに書き込んでいく場所です。一応READMEにあるので、頑張ればローカルでも動作させられる(多分)Zaimアカウント及びZaimAPIを利用するためのトークンが必要だったり敷居は高い。初っ端から機能というより特徴の話だが、本アプリはSPA(っぽい何か)でありながら、URLを変更しながら画面遷移を行える。そのため、ブラウザの「戻る」「進む」も利用可能であり、URLを直接指定して特定のリソースにアクセスすることもできる。AngularJSのオプションモジュールである、ng-routeを用いることで、それを簡単に実装できた。画面遷移が非常に早い。これだけでMEANで開発してよかったと思えるレベル。飼育に関する簡易的なブログっぽいものを投稿することができる。ブログは通常のCRUDの他、カレンダーを表示して記事を一覧することができる。体重管理機能デグーの体重を時系列で管理することができる。便宜上、我が家のデグー2匹(パズー、メイ)に特化しており、それぞれ日付に対する体重を記録することができる。時系列に記録した体重を元に、折れ線グラフをリアルタイムで描画することができる。クラウド家計簿サービスであるZaim及び入力した家計簿記録を取得するZaimAPIを用いて実装している。日頃から入力している家計簿データを元に、月ごとの支出額の一覧及び特定月の支払内容を閲覧できる。アップロードして管理することができる。写真には、タイトル及び1つ以上のタグを付与することができ、それらで検索することができる。写真アップロード時にオリジナルと別にサムネイルを生成し、写真一覧画面にはサムネイルが表示され、クリックすることでオリジナルサイズを確認できるようにアンっている。所感MEANという、MもEもAもNもほぼ使ったこと無い状態から、1つずつ勉強しながらなんとか実用性も多少あるWebアプリを作ることができた。SPAを1から作るのは初めての経験だったので、従来型のWebアプリとの違いを感じながら楽しく開発することができた。以下、主な所感を列挙するMongoDBはJavaScriptライクに読み書きを行え、スキーマに依存せずにデータを管理できるので手軽で楽しいAngularJSは双方向データバインディングが一番強いと思ったが、フルスタックのMVCであればAngularJSでなくても良いかなとは思う。Nodeを使えばだいたいのことは対応するNodeモジュールがあって、サーバサイドを一通りJavaScriptで書ける。Expressについては、今回はRestfulなAPIサーバとしてしか使わなかったので触り程度しかわからなかったSPAはクライアントの待機時間が極端に短くなるのでストレス無く利用できることを強く実感クライアントサイドの負担を増やし、サーバサイドの負担を減らす新しい分散システムだと感じたSPAでも画面遷移ごとにURLを変化させたほうが絶対便利だと思ったサーバサイドはRestfulなAPIに特化させるように実装したほうが分担が明確で良いJavaScriptはBabelを導入して、全てES6で記述した。最新仕様のJavaScriptは書きやすい。ESLintを導入してコーディング規約を強制した。一応LESSも導入したが特に使いこなせてないテスト(ユニット,E2E)を書きたかったが、その余裕がなかった。そのうち書きたいとにかく新しい技術/ツールで溢れた開発で楽しい1ヶ月半だった次はTypeScript及びAngular2に手を付けてみたい。Angular2のほうが良さげであれば、本アプリを移植することも検討する。コメントをキャンセルメールアドレスが公開されることはありません。