SlideShare a Scribd company logo
1 of 35
新規事業でサイト立ち上げの
アーキテクトをやった話
株式会社ビズリーチ
SREチーム
清 大輔
自己紹介
• 新卒3年目
• 博士中退
• 脳波を機械学習で状態判定とか
• 趣味や研究でプログラム書いてました
• 基本的にC++
• 昔JJUGで別件の発表したりしてます
• Java8移行から始めた技術的負債との戦い(JJUG CCC 2015 Fall)
• ビズリーチサイトの開発についてJava6からJava8に移行した話
Bizreach Campus
• 今回関わったWebサービス
• OB/OG訪問のプラットホーム
• 学生とOB/OGのマッチング
• 2016年10月リリース
目次
• 概要
• 技術選定について
• 開発環境構築について
• 開発メンバーへの導入について
• 感想・まとめ
概要
背景
• 完全に新規でサイトを立ち上げる
• 所属していた部署がセントラル化したタイミングだったので、
アーキテクトとして派遣された形
構成について
• モノリシックで構成
• 一つのサイトを一つのプロダクトのみで動かす
• マイクロサービスだと時間と人的リソースが不足
• 学生側, 企業・OB側, Admin側の3つを想定
• 後に企業とOBで分離
自分の仕事
• エンジニアが開発できる体制の確立
• 技術選定
• 開発環境の構築
• 雛形の作成
• 導入・開発を軌道にのせる
※ インフラやデザイン周りは他の人が責任を持った状態
技術選定
選定条件
意識したこと
• メンバーのモチベーション
• 生産性
• 他、表側はデザイナーが関わることを考える必要あり
• 学生側, 企業・OB側
選定について
• こちらが提案し、メンバーがその中から選択・決定する
• サンプルを作成
• メリット・デメリットの提示
• メンバーに選択させることでモチベーションを確保
バックエンド - 使用言語
• 決定: Java8
• メンバー全員が経験あり
• 他の言語だとデメリットのほうが目立った
• 候補: Scala
デメリット: コンパイルが遅い, メンバーが未経験なので慣れるまでス
ピードが出ない
• 候補: Ruby
デメリット: メンバーが未経験 & 自分含めガッツリやった人がいない
バックエンド - FW, ライブラリ
これはむしろこちらがそうしたい、といった構成を提示
• Spring MVC
• Spring Boot
• Lombok
• etc
Spring
• メジャー・サブでプロジェクトが豊富
• 実装量を抑えることができる
• Spring Boot を利用することで導入が楽になる
• 今だと特に理由がない限りこれになる
Lombok
• ボイラープレートコードを解消するためのツール
• 自明だが省略できないお決まりのコード断片
• コードの記述量を減らすことができる
• デメリットとして、コンパイルに時間がかかる
• 既存プロジェクトで新しく導入する場合は正常に動作しない部
分が出てくる可能性があるらしいので、使うなら最初からのほ
うがよい
フロントエンドでの選定について
• 先にJSフレームワークを選定してからAltJS使うかどうかなどを
検討する形
• CSS関係はデザイナーの領域なのでそちらにおまかせ
• ちなみにSCSSを使ってます
JSフレームワーク, ライブラリ
• JQueryでゴリゴリ実装するのは避けたい
• 作用が見えにくい
• いくつかの候補から選択
• AngularJS
• Knockout.js
• React
AngularJS
• フルスタックフレームワークなのでこれさえ入れれば一通りや
りたいことができる
• 情報が多く、利用例もちらほら
• できることが多いので覚えることも多い
• 選定時はAngular2の正式版が出ていなくて不透明
Knockout.js
• MVVMフレームワーク
• 簡潔で比較的覚えることも少ないが、最低限の機能はある
• SPAにしたい場合は他のライブラリと組み合わせる必要がある
React
• 流行っていて、メンバーが使いたい欲が高かった
• ほぼJSなのでデザイナーが困る
• テンプレートファイルを分けるなど回避策を色々試行錯誤したが、諦
めた
• 他のFWと比べて敷居が高い
• SEO考えるとサーバーサイドレンダリングをしたほうが安全?
• ちょうどJS解析されるようになったくらいの時期
選定結果
• デザイナーが関わるところはKnockout.js(+ Thymeleaf)
• デザイナーにReactはきつい
• AngularJSはAngular2の動向が不明瞭だったので見送り
• デザイナーが関わらないところはReact
• 一度は触ってみたい、とのこと
Knockout.jsを使った構成
• SEOや構成コストを考えてMPAで構成
• 1つの画面に1つのJS
• 基本的に描画はサーバーサイドでできる部分はサーバーサイド
で行う
• 正直どちらに寄せても良かったので決めの問題
• JQueryについて
• 原則使わないようにする
• アニメーションなど、どうしても使わないといけないところだけ
Reactを使った構成
• SPAで構成
• React Router
• Redux
• JSXでプログラムを記述
• JQueryは原則禁止
• Adminなので凝った動きは必要ない
Java Script (AltJS)
• ES2015 or TypeScript
→ Reactを使うのでES2015を採用
• ES2015
• class構文などモダンな言語の機能が使えるようになっている
• ブラウザによって対応がまちまちなのでトランスパイラでES3に変換
• es-lintでコードの品質を担保
開発環境構築
ミドルウェアの用意
• `vagrant up`だけで開発時に用いるmysqlやredisなどの用意が
完了するようにする
• Bizreachサイトの開発環境のほぼコピー
• とりあえず動くものを作ることを優先
• dockerの検討は後回し
タスクランナーについて
• JSやCSSのビルドを行うタスクを記述する
• Gulpを採用
• Gruntに比べて可読性や記述性で有利
• gulpfile.babel.jsにするとES2015で記述できる
• JSのビルド部分はwebpackを採用
• 検証したところbrowserifyよりビルドが高速だった
• MPAのビルドに対応している
• 各ページ用のJSを食わせると、一つの共通JSと各ページ用のJSを出力する
• 共通JSに出力されるのは共通でimportされているJSファイル
タスクランナーの構成
• 大本に一つのpackage.json(大本のpom.xmlと同じ階層)
• ビルド用のスクリプトもそこに記述
• 一つのgulpfileでタスクを記述し、引数でプロジェクト名を指定
することで個別ビルドもできるようにする
• 各プロジェクトにてymlで設定を記述し、処理を分ける
• Knockout.js構成 or React構成
• 入力ファイルの指定、出力フォルダの指定
• etc
Knockout.jsの構成
• MPAなので成果物は全ページ共通のjsと各ページのjsとなる
• フィンガープリント周りはバックエンド側で
• 出力ファイル名に付与しなくても、Spring側でハッシュ値がファイル
名に追加されているように扱うことができる
• VersionResourceResolver
• /foo/bundle.js → <script src=“/foo/bundle-xxxxx.js”><script>
Reactの構成
• SPAなので成果物はindex.htmlと共通JSファイル
• 出力するjsファイルにはハッシュ値を付与
• bundle-xxxxx.js
• index.htmlにjsのファイル名を埋め込む必要がある
実運用について少しだけ
導入
• 導入手順やプロジェクト構成・画面の作り方などを資料にまと
めた上で共有・軽い説明
• 当然のようにいくつかトラブル
• node.jsがすでに入っていた人で消して入れ直したらうまく動かない
• gulpのwatchがうまくいく人と行かない人がいる問題
• 何もしていないけど突然動かなくなった
• etc
運用
問題や要望にはすぐ対応する
• デザイナー用にIDEを立ち上げなくても開発できるようなタス
ク・スクリプトを追加
• ライブラリの導入作業
• pom.xmlの調整, JavaConfigの記述など
• FWレイヤーな要件の実装 or レビュー
• 他、色々ありすぎて正直あまり細かいこと覚えていない
まとめ
まとめ・感想
• 色々なことの調査・検証でインプット・アウトプットがともに
多い期間だった
• プロダクトがどういった形に育っていくかを考えて構成を考え
るのは楽しいが大変で時間がかかる
• 実際にメンバーが手を動かし始めると、問題と相談と質問の対
応で自分の時間があまりない

More Related Content

Viewers also liked

覚えて帰ろうJavaデザインパターン
覚えて帰ろうJavaデザインパターン覚えて帰ろうJavaデザインパターン
覚えて帰ろうJavaデザインパターンdcubeio
 
はじめてのAws lambda
はじめてのAws lambdaはじめてのAws lambda
はじめてのAws lambdadcubeio
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDEdcubeio
 
サーバーサイドDartを試してみる
サーバーサイドDartを試してみるサーバーサイドDartを試してみる
サーバーサイドDartを試してみるSatoshi KOBAYASHI
 
ハイレベルメンバーによる共創実験 / UX & Service Sketch #26
ハイレベルメンバーによる共創実験 / UX & Service Sketch #26ハイレベルメンバーによる共創実験 / UX & Service Sketch #26
ハイレベルメンバーによる共創実験 / UX & Service Sketch #26Keita Takizawa
 
20161029 TVI Tokyowebmining Seminar for Share
20161029 TVI Tokyowebmining Seminar for Share20161029 TVI Tokyowebmining Seminar for Share
20161029 TVI Tokyowebmining Seminar for ShareYasushi Gunya
 
15分でわかった気になるdart
15分でわかった気になるdart15分でわかった気になるdart
15分でわかった気になるdartSatoshi KOBAYASHI
 
React NativeでTwitterクライアントを作ってみよう
React NativeでTwitterクライアントを作ってみようReact NativeでTwitterクライアントを作ってみよう
React NativeでTwitterクライアントを作ってみようdcubeio
 
Angular+Dart=より快適なSPA開発
Angular+Dart=より快適なSPA開発Angular+Dart=より快適なSPA開発
Angular+Dart=より快適なSPA開発Satoshi KOBAYASHI
 
DeNAにおける機械学習・深層学習活用
DeNAにおける機械学習・深層学習活用DeNAにおける機械学習・深層学習活用
DeNAにおける機械学習・深層学習活用Kazuki Fujikawa
 
今からでも大丈夫!Firebase入門
今からでも大丈夫!Firebase入門今からでも大丈夫!Firebase入門
今からでも大丈夫!Firebase入門Tomoki Koga
 
計量経済学と 機械学習の交差点入り口 (公開用)
計量経済学と 機械学習の交差点入り口 (公開用)計量経済学と 機械学習の交差点入り口 (公開用)
計量経済学と 機械学習の交差点入り口 (公開用)Shota Yasui
 
簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について
簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について
簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点についてdcubeio
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールdcubeio
 
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化dcubeio
 
オープニングトーク - 創設の思い・目的・進行方針  -データマイニング+WEB勉強会@東京
オープニングトーク - 創設の思い・目的・進行方針  -データマイニング+WEB勉強会@東京オープニングトーク - 創設の思い・目的・進行方針  -データマイニング+WEB勉強会@東京
オープニングトーク - 創設の思い・目的・進行方針  -データマイニング+WEB勉強会@東京Koichi Hamada
 
HR Tech x 機械学習 導入事例紹介
HR Tech x 機械学習 導入事例紹介HR Tech x 機械学習 導入事例紹介
HR Tech x 機械学習 導入事例紹介dcubeio
 
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶおっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶdcubeio
 

Viewers also liked (18)

覚えて帰ろうJavaデザインパターン
覚えて帰ろうJavaデザインパターン覚えて帰ろうJavaデザインパターン
覚えて帰ろうJavaデザインパターン
 
はじめてのAws lambda
はじめてのAws lambdaはじめてのAws lambda
はじめてのAws lambda
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
サーバーサイドDartを試してみる
サーバーサイドDartを試してみるサーバーサイドDartを試してみる
サーバーサイドDartを試してみる
 
ハイレベルメンバーによる共創実験 / UX & Service Sketch #26
ハイレベルメンバーによる共創実験 / UX & Service Sketch #26ハイレベルメンバーによる共創実験 / UX & Service Sketch #26
ハイレベルメンバーによる共創実験 / UX & Service Sketch #26
 
20161029 TVI Tokyowebmining Seminar for Share
20161029 TVI Tokyowebmining Seminar for Share20161029 TVI Tokyowebmining Seminar for Share
20161029 TVI Tokyowebmining Seminar for Share
 
15分でわかった気になるdart
15分でわかった気になるdart15分でわかった気になるdart
15分でわかった気になるdart
 
React NativeでTwitterクライアントを作ってみよう
React NativeでTwitterクライアントを作ってみようReact NativeでTwitterクライアントを作ってみよう
React NativeでTwitterクライアントを作ってみよう
 
Angular+Dart=より快適なSPA開発
Angular+Dart=より快適なSPA開発Angular+Dart=より快適なSPA開発
Angular+Dart=より快適なSPA開発
 
DeNAにおける機械学習・深層学習活用
DeNAにおける機械学習・深層学習活用DeNAにおける機械学習・深層学習活用
DeNAにおける機械学習・深層学習活用
 
今からでも大丈夫!Firebase入門
今からでも大丈夫!Firebase入門今からでも大丈夫!Firebase入門
今からでも大丈夫!Firebase入門
 
計量経済学と 機械学習の交差点入り口 (公開用)
計量経済学と 機械学習の交差点入り口 (公開用)計量経済学と 機械学習の交差点入り口 (公開用)
計量経済学と 機械学習の交差点入り口 (公開用)
 
簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について
簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について
簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
 
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
 
オープニングトーク - 創設の思い・目的・進行方針  -データマイニング+WEB勉強会@東京
オープニングトーク - 創設の思い・目的・進行方針  -データマイニング+WEB勉強会@東京オープニングトーク - 創設の思い・目的・進行方針  -データマイニング+WEB勉強会@東京
オープニングトーク - 創設の思い・目的・進行方針  -データマイニング+WEB勉強会@東京
 
HR Tech x 機械学習 導入事例紹介
HR Tech x 機械学習 導入事例紹介HR Tech x 機械学習 導入事例紹介
HR Tech x 機械学習 導入事例紹介
 
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶおっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶ
 

More from dcubeio

AWS Summit Tokyo 2019登壇資料「DevOpsの劇的改善!古いアーキテクチャから王道のマネージドサービスを活用しフルリプレイス! 」
AWS Summit Tokyo 2019登壇資料「DevOpsの劇的改善!古いアーキテクチャから王道のマネージドサービスを活用しフルリプレイス! 」AWS Summit Tokyo 2019登壇資料「DevOpsの劇的改善!古いアーキテクチャから王道のマネージドサービスを活用しフルリプレイス! 」
AWS Summit Tokyo 2019登壇資料「DevOpsの劇的改善!古いアーキテクチャから王道のマネージドサービスを活用しフルリプレイス! 」dcubeio
 
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料dcubeio
 
ビットコインとブロックチェーンを初めからていねいに(超基礎編)
ビットコインとブロックチェーンを初めからていねいに(超基礎編)ビットコインとブロックチェーンを初めからていねいに(超基礎編)
ビットコインとブロックチェーンを初めからていねいに(超基礎編)dcubeio
 
20171206 d3 health_tech発表資料
20171206 d3 health_tech発表資料20171206 d3 health_tech発表資料
20171206 d3 health_tech発表資料dcubeio
 
Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話dcubeio
 
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)dcubeio
 
BizReach x Marketo連携
BizReach x Marketo連携BizReach x Marketo連携
BizReach x Marketo連携dcubeio
 
Kinesis Firehoseを使ってみた
Kinesis Firehoseを使ってみたKinesis Firehoseを使ってみた
Kinesis Firehoseを使ってみたdcubeio
 
Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】dcubeio
 
春の脆弱性祭り 2017/06/13
春の脆弱性祭り 2017/06/13春の脆弱性祭り 2017/06/13
春の脆弱性祭り 2017/06/13dcubeio
 
DynamoDBを導入した話
DynamoDBを導入した話DynamoDBを導入した話
DynamoDBを導入した話dcubeio
 
Play2 scalaを2年やって学んだこと
Play2 scalaを2年やって学んだことPlay2 scalaを2年やって学んだこと
Play2 scalaを2年やって学んだことdcubeio
 
すごーい!APIドキュメントを更新するだけでAPIが自動テストできちゃう!たのしー!
すごーい!APIドキュメントを更新するだけでAPIが自動テストできちゃう!たのしー! すごーい!APIドキュメントを更新するだけでAPIが自動テストできちゃう!たのしー!
すごーい!APIドキュメントを更新するだけでAPIが自動テストできちゃう!たのしー! dcubeio
 
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料dcubeio
 
Bitcoin x Slack でマイクロペイメントを実現! 〜生活の必要上割り勘botを作るまで〜
Bitcoin x Slack でマイクロペイメントを実現! 〜生活の必要上割り勘botを作るまで〜Bitcoin x Slack でマイクロペイメントを実現! 〜生活の必要上割り勘botを作るまで〜
Bitcoin x Slack でマイクロペイメントを実現! 〜生活の必要上割り勘botを作るまで〜dcubeio
 
【freee】プロダクトマネージャーの仕事と魅力
【freee】プロダクトマネージャーの仕事と魅力【freee】プロダクトマネージャーの仕事と魅力
【freee】プロダクトマネージャーの仕事と魅力dcubeio
 
【ビズリーチ】プロダクトマネージャーの仕事と魅力
【ビズリーチ】プロダクトマネージャーの仕事と魅力【ビズリーチ】プロダクトマネージャーの仕事と魅力
【ビズリーチ】プロダクトマネージャーの仕事と魅力dcubeio
 
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botPython × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botdcubeio
 
Scalaマクロ入門 bizr20170217
Scalaマクロ入門 bizr20170217 Scalaマクロ入門 bizr20170217
Scalaマクロ入門 bizr20170217 dcubeio
 
【D3 公開用】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
【D3 公開用】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜 【D3 公開用】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
【D3 公開用】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜 dcubeio
 

More from dcubeio (20)

AWS Summit Tokyo 2019登壇資料「DevOpsの劇的改善!古いアーキテクチャから王道のマネージドサービスを活用しフルリプレイス! 」
AWS Summit Tokyo 2019登壇資料「DevOpsの劇的改善!古いアーキテクチャから王道のマネージドサービスを活用しフルリプレイス! 」AWS Summit Tokyo 2019登壇資料「DevOpsの劇的改善!古いアーキテクチャから王道のマネージドサービスを活用しフルリプレイス! 」
AWS Summit Tokyo 2019登壇資料「DevOpsの劇的改善!古いアーキテクチャから王道のマネージドサービスを活用しフルリプレイス! 」
 
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
 
ビットコインとブロックチェーンを初めからていねいに(超基礎編)
ビットコインとブロックチェーンを初めからていねいに(超基礎編)ビットコインとブロックチェーンを初めからていねいに(超基礎編)
ビットコインとブロックチェーンを初めからていねいに(超基礎編)
 
20171206 d3 health_tech発表資料
20171206 d3 health_tech発表資料20171206 d3 health_tech発表資料
20171206 d3 health_tech発表資料
 
Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話
 
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)
 
BizReach x Marketo連携
BizReach x Marketo連携BizReach x Marketo連携
BizReach x Marketo連携
 
Kinesis Firehoseを使ってみた
Kinesis Firehoseを使ってみたKinesis Firehoseを使ってみた
Kinesis Firehoseを使ってみた
 
Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】
 
春の脆弱性祭り 2017/06/13
春の脆弱性祭り 2017/06/13春の脆弱性祭り 2017/06/13
春の脆弱性祭り 2017/06/13
 
DynamoDBを導入した話
DynamoDBを導入した話DynamoDBを導入した話
DynamoDBを導入した話
 
Play2 scalaを2年やって学んだこと
Play2 scalaを2年やって学んだことPlay2 scalaを2年やって学んだこと
Play2 scalaを2年やって学んだこと
 
すごーい!APIドキュメントを更新するだけでAPIが自動テストできちゃう!たのしー!
すごーい!APIドキュメントを更新するだけでAPIが自動テストできちゃう!たのしー! すごーい!APIドキュメントを更新するだけでAPIが自動テストできちゃう!たのしー!
すごーい!APIドキュメントを更新するだけでAPIが自動テストできちゃう!たのしー!
 
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
 
Bitcoin x Slack でマイクロペイメントを実現! 〜生活の必要上割り勘botを作るまで〜
Bitcoin x Slack でマイクロペイメントを実現! 〜生活の必要上割り勘botを作るまで〜Bitcoin x Slack でマイクロペイメントを実現! 〜生活の必要上割り勘botを作るまで〜
Bitcoin x Slack でマイクロペイメントを実現! 〜生活の必要上割り勘botを作るまで〜
 
【freee】プロダクトマネージャーの仕事と魅力
【freee】プロダクトマネージャーの仕事と魅力【freee】プロダクトマネージャーの仕事と魅力
【freee】プロダクトマネージャーの仕事と魅力
 
【ビズリーチ】プロダクトマネージャーの仕事と魅力
【ビズリーチ】プロダクトマネージャーの仕事と魅力【ビズリーチ】プロダクトマネージャーの仕事と魅力
【ビズリーチ】プロダクトマネージャーの仕事と魅力
 
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botPython × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
 
Scalaマクロ入門 bizr20170217
Scalaマクロ入門 bizr20170217 Scalaマクロ入門 bizr20170217
Scalaマクロ入門 bizr20170217
 
【D3 公開用】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
【D3 公開用】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜 【D3 公開用】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
【D3 公開用】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
 

新規事業でサイト立ち上げのアーキテクトをやった話