Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
クラウドサービスを活用した 開発環境 mzp / ocaml-nagoya 1 2015-05-23 ΦʔϓϯιʔεΧϯϑΝϨϯεNagoya 2015
Slide 2
Slide 2 text
アジェンダ • 転職したら開発環境が社内サーバ中心からクラウド サービス中心へと大きく変化した • どう変化したかについて話します • 紹介するサービスは主にGithub, Slack, Qiita:teamな どです 2
Slide 3
Slide 3 text
自己紹介 • Twitter: @mzp • 所属: ocaml-nagoya • 関数型言語OCamlの勉強会(最近、活動してない…) • 今日は開発環境の話をします 3
Slide 4
Slide 4 text
OSS活動 4 • メンテナンス コントリビュート 公開 • AquaSKK • rubocop • autodoc • MsgPack • FlicksKK • AsakusaSatellite • rubotyプラグイン などなど
Slide 5
Slide 5 text
経歴 • 社内SE → スタートアップ 5
Slide 6
Slide 6 text
今日の話 • どのような環境で開発をしているか • その前に、いくつか質問させてください 6
Slide 7
Slide 7 text
Q. 業務として開発にか かわっていますか? 7
Slide 8
Slide 8 text
Q. どのような分野ですか? (組込/Web/ゲーム/その他) 8
Slide 9
Slide 9 text
Q. クラウドサービス使っ ていますか? 9
Slide 10
Slide 10 text
前職の開発環境 • コミュニケーションは口頭、もしくはメール • Excelで作られたスケジュール表や課題管理表 • 開発に必要な各種サーバは社内にある • (余談)スーツ着用 10
Slide 11
Slide 11 text
どう変化したか • 「ソフトウェアを作る」という作業自体は変わっていない • ただし、その開発に使うツールなどは大きく変化した 11 社内サーバ クラウドサービス OSS 前職 現職
Slide 12
Slide 12 text
注意事項 • 個人の意見であり、所属する企業・団体の意見を代表す るものではありません。 • 特定の企業、製品を推奨する、もしくは批難する意図も ありません。 • 今回の発表は開発者視点で解説したものとなります。 実 際に導入するにあたっては、それ以外にも様々な視点か ら検討する必要がありますが、今回は省略しています。 12
Slide 13
Slide 13 text
ソースコード管理 13
Slide 14
Slide 14 text
社内サーバを利用した場合 • バージョン管理: Subversion • 課題管理: Redmine / Trac / Excel • (余談: Microsoft VSSを使ってるプロジェクトもあった) 14
Slide 15
Slide 15 text
社内サーバを利用した場合 主な運用方法 • 全員がtrunkにコミットする • 一人づつ別のブランチにコミットする ⇒ コードレビューがやりにくい 15
Slide 16
Slide 16 text
Github ソースコード管理サービス • Gitレポジトリのホスティング • Wiki • 課題管理 16
Slide 17
Slide 17 text
Gitの特徴 • 分散バージョン管理 • ブランチの作成、マージが高速 • コマンドが豊富 17
Slide 18
Slide 18 text
プルリクエスト • Githubの特徴の1つ • 「とあるブランチから、別のブランチへのマージを依頼 するための仕組み」 • ちょっとわかりにくいので例で見ていきましょう 18
Slide 19
Slide 19 text
1. 不具合がでた ある日、対応しないといけない不具合が発生しました 19
Slide 20
Slide 20 text
2. がんばって直す がんばりましょう 20
Slide 21
Slide 21 text
3. プルリクエストを作る 1.今回作業用のブランチを作る 2.修正内容をコミットする 3.Githubにpushする 4.Github上でプルリクエストを作成する 21
Slide 22
Slide 22 text
プルリクエストの例 22 タイトル 内容説明 変更内容(diff) コメントできる
Slide 23
Slide 23 text
4. レビューを受ける • 他の人にレビューしてもらう • 問題なければmasterブランチにマージされる 23
Slide 24
Slide 24 text
プルリクエストの利点 • 作業の単位が明確になる • 必ずレビューがはさまる • レビュー支援機能が充実している • (他のサービスと連携しやすい) 24
Slide 25
Slide 25 text
OSSでのGithubの利用 1.バグを踏む 2.がんばって直す 3.レポジトリをコピーする(forkする) 4.プルリクエストを作成する 5.レビューを受ける ⇒ マージされる / 拒否される 25
Slide 26
Slide 26 text
プルリクエストの利点(2) • コミット権がなくてもバージョン管理できる • 普段と同じ作業でOSSに参加できる • publicレポジトリなら無料で利用可能 26
Slide 27
Slide 27 text
類似サービス クラウド • Bitbucket • Gitlab.com 社内サーバ • Github Enterprise • Githubクローンたち(Gitlab, Gitbucket, ...) 27
Slide 28
Slide 28 text
コミュニケーション 28
Slide 29
Slide 29 text
社内サーバを利用した場合 • メール: 簡単なコミュニケーションには使いづらい • 電話: 複数人では会話できない ⇒ 「標準化されている」のは大きな利点 ⇒ 置き換えるのは無理なので補完するサービスの紹介 29
Slide 30
Slide 30 text
コミュニケーション チャットツール 30
Slide 31
Slide 31 text
Slack 31
Slide 32
Slide 32 text
それ以外の機能 • 1対1でメッセージを送りあうこともできる • 絵文字も使える • iPhoneアプリもあるので様々な環境で使える • IRC Gatewayもある 32
Slide 33
Slide 33 text
IRC gateway 33
Slide 34
Slide 34 text
メールと比較した利点 • 短い文書でも気軽に送信できる • 多数の人に同時にメッセージを送れる • あとから検索できる • 各メッセージにリンクを貼れる 34
Slide 35
Slide 35 text
類似サービス クラウドサービス • HipChat • ChatWorks • idobata 社内サーバ •Let’s Chat •AsakusaSatellite 35
Slide 36
Slide 36 text
コミュニケーション ビデオ会議 36
Slide 37
Slide 37 text
Google Hangout 37
Slide 38
Slide 38 text
特徴 • ブラウザだけで参加できる • URLを共有さえすれば誰でも参加できる • 特定の人しか参加できない設定も可能 • (バッテリーの消費が激しい) 38
Slide 39
Slide 39 text
使い方の例 1.出社したので GoogleHangout を使って朝会をする 2.朝会がおわったので作業をはじめます。質問はSlackで する 3.今日は打ち合せの日です。 再びHangoutで打ち合せを する (社内用Hangoutとは別) 39
Slide 40
Slide 40 text
別解: Sqwiggle 40
Slide 41
Slide 41 text
文書管理 41
Slide 42
Slide 42 text
対象とする文書の種類 • TODO • 日報 • ノウハウ • 議事録 • 外部から受けとった文書(APIドキュメントなど) 42
Slide 43
Slide 43 text
社内サーバを利用した場合 • Excelで作る • 作ったのは共有フォルダに置いたり、LotusNotesに置 いたり。 43
Slide 44
Slide 44 text
文書管理 TODO 44
Slide 45
Slide 45 text
Trello カードを作り、リスト間を動かしてく 45
Slide 46
Slide 46 text
リストの例 • やるかどうか検討する • やることに決めた • やっている • 連絡まち • レビュー待ち • 完了 46
Slide 47
Slide 47 text
ホワイトボード + ポストイットの イメージ 47
Slide 48
Slide 48 text
文書管理 日報、ノウハウ 48
Slide 49
Slide 49 text
Qiita • プレインテキストだけで記 述できる(Markdown) • 記事にタグ付けや全文検 索ができる • デスクトップアプリもある • ITエンジニア向けに特化 49
Slide 50
Slide 50 text
Qiita:team • Qiitaの特徴をほぼそのまま供える • 特定のメンバーしか閲覧、投稿できない • 文書テンプレートを設定できる 50
Slide 51
Slide 51 text
Qiita:teamの例 日報 51
Slide 52
Slide 52 text
Qiita:teamの例 ノウハウ 52
Slide 53
Slide 53 text
その他の特徴 • 今後の展望、ビジョン • 開発環境の構築手順 • 飲み会の出欠 • などなど 53
Slide 54
Slide 54 text
類似サービス Esa.io (\( ⁰⊖⁰)/) 54
Slide 55
Slide 55 text
文書管理 議事録、受け入れ文書 55
Slide 56
Slide 56 text
GoogleDrive • 文書、スプレッドシート、プレゼンテーションが作れる • 設定によって他の人と共有可能 • 複数人で同時編集可能 56
Slide 57
Slide 57 text
GoogleDriveでの管理方法 議事録 • 一部はQiita:teamに書かれる • 他社と共有する場合や、全員で同時に編集する場合 はGoogleDrive 受け入れ文書 • そのままGoogleDriveにアップロードする 57
Slide 58
Slide 58 text
その他 58
Slide 59
Slide 59 text
複数のサービスを利用する問題点 • 更新通知の方法が統一されていない • 操作方法が統一されていない • 連携していない ⇒ 中間をつなぐ仕組みが必要。 59
Slide 60
Slide 60 text
bot • チャット上で動く自動応答プログラム • 定期処理をしたり、特定の語句に反応して処理をしたり • フレームワークがいくつかあり、簡単に作れる 60
Slide 61
Slide 61 text
botの例 • 各サービスの更新通知 • 認証付きURLからの内容引用 • 今日の当番の確認 • CIとGithubを組合せたデプロイ • 各種リマインダ 61
Slide 62
Slide 62 text
その他紹介していないサービス • CircleCI: CIサービス • Bugsnag: エラー管理サービス • Mixpanel: ユーザの動向調査 62
Slide 63
Slide 63 text
まとめ • 各種サービスを活用することで、ソフトウェア開発を効 率化できる • Github/Slack/Qiita:teamあたりが便利 63
Slide 64
Slide 64 text
さらに先に 64
Slide 65
Slide 65 text
AWS スポットインスタンス • ローカルではなくクラウド上で開発環境を構築する • Amazonのインフラをオークション形式で借りる • 0.01ドル/Hくらい • バッテリー消費が少ない!! • ネットワーク速度も速い!!! 65
Slide 66
Slide 66 text
VRターミナル • 顔の向き等をトラッキングす るヘッドマウントディスプレイ • ざっくり言うと仮想世界に入り こめる 66
Slide 67
Slide 67 text
VRターミナル 67