0831 node学園lt
-
Upload
kazuya-fukumoto -
Category
Internet
-
view
1.415 -
download
1
Transcript of 0831 node学園lt
NodeでmBaaSのSDKを 書いてみた
Kazuya Fukumoto
Kazuya Fukumoto • ニフティ株式会社
• 2年目(配属8ヶ月)
• GitHub : fuku2015
• Qiita : heppoko_dev
自己紹介
JavaScript初心者(2015/4時点)
• ニフティクラウド mobile backend JS SDK ver.2.0
• https://github.com/NIFTYCloud-mbaas/ncmb_js
書いたもの mbaas github
• SDK開発で用いた開発手法・環境
• GitHub活用、コードレビュー
• CI環境(自動ビルド・自動テスト、Coverage)
• OSS化
今日お話しする内容
そういう環境に新人が 放り込まれるとどうなるか
• スマホアプリ開発に必要なサーバサイドの機能を提供するクラウドサービス
(mBaaS)とは
RESTful APIで連携
Android, iOS, JavaScript, Unity SDKを提供
• 非OSS
• サーバ連携非対応
• 変なテスト
JavaScript SDK Before(1.0) After(2.0)
• OSS化
•サーバ連携
• CI環境整備
+
開発手法
・README 駆動開発 ・GitHub Flow
• インターフェース・使い方を先に決める
• http://deeeet.com/writing/2014/07/31/readme/
README 駆動開発
GitHub Flow
master
feature
checkout
Remote repository Developer
Reviewer
commit
Local repository
pull
push
p-r
merge comment
• CI環境:drone.io→Travis CI
• 自動ビルド:npm script
• スタブ:stubcell
• テストコード:mocha+chai
• Coverage計測: istanbul
開発環境
$ npm test だけで
クリーンビルド・自動テスト・Coverage計測
ビルド環境
test $npm test
push
API request response
stubcell
istanbul
result
Coverage files
result
コードサンプル
自動ビルド・テスト
Coverage計測
なんかイケてる! (小並感)
©鳥山 明
裏の目的
若手のスキルアップ
若手 is 誰?
若手 is 俺!
• 3人
• 相互レビュー
• スクラム開発
理想と現実
当初予定 実際
•気づいたら1人
•開発リーダーとひたすらラリー
•片っ端から書くべし
JavaScript初心者(再掲)
ルール追加
"test":
"nohup npm run stub:start & sleep 5
&& NODE_ENV=test mocha -R list test/**_test.js
&& npm run cov:80
&& npm run stub:stop“
,"cov:80": "npm run coverage 2>&1 | grep Lines | perl -nle 'my ($l, $c, $p, @d) = split(/[¥¥s%]+/); exit(($p > 80) == 0)'"
Coverage80%を切ると
強制的にテストが落ちる
テストが落ちる=レビューされない
レビューされない=マージされない
マージされない=進まない
俺たちは
テストを書くことを
http://matome.naver.jp/odai/2135499634331433101
※mocha部分入れると1万行書いた
この状態で 4ヶ月走らせます
完成したものがこちらです
• LICENSE・CONTRIBUTING追記
• バッチつける
• Travis CI
• coveralls
• code climate
• UMD対応
8/17 ver2.0.0-pre 公開
code climate –静的解析-
※結果が悪かったら消すつもりでした
• mocha+chaiを流用可能
monacaでテスト
• 工数:3人月強
• LOC:2000程度
• Coverage:92.5%
進捗状況
• monaca・ブラウザテストも粗方完了
•細かい修正・エンハンス中
• ドキュメント整備が完了し次第正式公開予定
• Node・JSの基本的なコードを調べずに書ける
• Git・GitHubを思い通りに扱える
• コードの質について考える習慣がついた
• 人のコードを読めるようになった
• CIの考え方・ツールの使い方を覚えた
できるようになったこと
まとめ
CI環境作って新人を放り込むと、 4ヶ月で品質を意識したコードを 書けるようになって出てくる
ね、簡単でしょ?
http://d.hatena.ne.jp/rikuo/20080401
• ニフティクラウド mobile backend JS SDK ver.2.0
• https://github.com/NIFTYCloud-mbaas/ncmb_js
というわけで
触ってみてください! p-r待ってます!
mbaas github
• mobile backend JSSDK 2.0-pre でクイックスタート(ブラウザ編) • http://qiita.com/heppoko_dev/items/2accde66add37c77db76
Qiita書きました qiita heppoko_dev
会社の宣伝
IoTはじめました
IoTやりたい方 CI環境に放り込まれたい方
We are hiring!