NodeでmBaaSのSDKを
書いてみた
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
comme...
• CI環境:drone.io→Travis CI
• 自動ビルド:npm script
• スタブ:stubcell
• テストコード:mocha+chai
• Coverage計測: istanbul
開発環境
$ npm test だけで...
ビルド環境
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 st...
テストが落ちる=レビューされ
ない
レビューされない=マージされ
ない
マージされない=進まない
俺
た
ち
は
テ
ス
ト
を
書
く
こ
と
を
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 ...
• mobile backend JSSDK 2.0-pre でクイック
スタート(ブラウザ編)
• http://qiita.com/heppoko_dev/items/2accde66add37c77db76
Qiita書きました qiit...
会社の宣伝
IoTはじめました
IoTやりたい方
CI環境に放り込まれたい方
We are hiring!
Upcoming SlideShare
Loading in...5
×

0831 node学園lt

68

Published on

8/31 Node学園 17時限目の発表資料です。

Published in: Internet
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
68
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • README駆動、GitHub Flow
    自動ビルド、自動テスト、Coverage
    OSS公開、ブラウザテスト
  • 0831 node学園lt

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

      Clipping is a handy way to collect important slides you want to go back to later.

    ×