狠狠撸

狠狠撸Share a Scribd company logo
Copyright Drecom Co., Ltd. All Rights Reserved.
ドリコムを支える課金ライブラリを
支えるJenkins
2015/03/23 16新卒エンジニア勉強会
@sue445
Copyright Drecom Co., Ltd. All Rights Reserved.
@sue445
● 福岡生まれ福岡育ち
● 福岡教育大学卒
● 2009年4月~: 某SI系企業新卒入社(前職)
● 2012年7月~: ドリコム
今のお仕事
● iOS/Androidアプリの課金ライブラリのメンテ
● 社内ツール、社内ライブラリ開発
● サーバサイド全般(アプリ~インフラまで横断的に)
● PO (Precure Ojisan)
自己紹介
Copyright Drecom Co., Ltd. All Rights Reserved.
● フルボッコヒーローズの事前登録ガチャ(フライング
ゲットガチャ)開発
○ ドリコムのフライングゲットガチャの舞台裏
#ksgstudy - くりにっき
○ http://sue445.hatenablog.
com/entry/2014/07/12/204741
● ドリコムAdventCalendarの主犯
○ ドリコム Advent Calendar 2014 - Adventar
○ http://www.adventar.org/calendars/518
その他やってたこと
Copyright Drecom Co., Ltd. All Rights Reserved.
【今期の嫁】キュアトゥインクル
Copyright Drecom Co., Ltd. All Rights Reserved.
今期の黄色は肩背中出し!!!!
Copyright Drecom Co., Ltd. All Rights Reserved.
【本妻】キュアピース
Copyright Drecom Co., Ltd. All Rights Reserved.
エンジニアの仕事机
Copyright Drecom Co., Ltd. All Rights Reserved.
エンジニアの仕事机
Copyright Drecom Co., Ltd. All Rights Reserved.
エンジニアの仕事机
机には多数の技術書
Copyright Drecom Co., Ltd. All Rights Reserved.
エンジニアの仕事机
Copyright Drecom Co., Ltd. All Rights Reserved.
エンジニアの仕事机
全社員サブディスプレ
イ支給
Copyright Drecom Co., Ltd. All Rights Reserved.
● Jenkinsとは?
● ドリコムでのJenkinsの使われ方
● dpoint(課金ライブラリ)について
● dpointでのJenkins活用事例
● おまけ
● まとめ
Agenda
Copyright Drecom Co., Ltd. All Rights Reserved.
● http://jenkins-ci.org/
● Javaで書かれたオープンソース継続的インテグレーション
ツール(Wikipediaより)
○ 継続的インテグレーション = 開発時の品質改善や自動
化推進
● プラグインでいろいろ拡張できる
Jenkinsとは?
Copyright Drecom Co., Ltd. All Rights Reserved.
会社全体で1つのJenkins使っているというわけではなく、アプリ
ごとに野良Jenkinsが乱立しているので全部は把握していない
具体例
● 開発中アプリのテスト
● 開発サーバへのデプロイ
● テストアプリの配信
● ライブラリのドキュメントの作成
● etc
ドリコムでのJenkinsの使われ方
Copyright Drecom Co., Ltd. All Rights Reserved.
● iOS/Androidのアプリの中間ポイントシステム
○ 魔法石やダイヤをサーバで管理する仕組み
● 2013年以降に出たアプリで全部使われているはず
○ ガルロワ、フルボッコなど
● 詳細は「ドリコムAdventCaledar」で検索
○ http://sue445.hatenablog.
com/entry/2014/12/01/000000
dpoint(課金ライブラリ)について
Copyright Drecom Co., Ltd. All Rights Reserved.
● Rubyで書かれているライブラリ(gem)
● 開発はほぼ僕1人
dpoint(中間ポイントシステム)について
Copyright Drecom Co., Ltd. All Rights Reserved.
開発はほぼ僕1人(でした)
重要なのでもう一度
Copyright Drecom Co., Ltd. All Rights Reserved.
Σ(?Д?)
重要なのでもう一度
Copyright Drecom Co., Ltd. All Rights Reserved.
● 機能改修
● 負荷対応、パフォーマンスチューニング
● AppleやGoogleの課金の仕組みが変わった時の対応
● その他諸々の緊急対応
● まともにやってると1人じゃ絶対回せない
○ バグがあるとライブラリを導入しているアプリ全体に影響
するので絶対にバグは出せない
○ 課金がバグってると会社は誤った売上を計上することに
なるので超シビア
○ 今はメンテナ増えたけど1年以上僕1人で面倒を見てた
dpointでやってること
Copyright Drecom Co., Ltd. All Rights Reserved.
よろしい
Copyright Drecom Co., Ltd. All Rights Reserved.
ならば自動化だ!
Copyright Drecom Co., Ltd. All Rights Reserved.
● 今日話すこと
○ GitLabにpushされたbranchの自動テスト
○ 静的解析
● 今日話さないこと
○ ドキュメント生成
自動化していること
Copyright Drecom Co., Ltd. All Rights Reserved.
GitLabへpushされたbranchの自動テスト
git push
Copyright Drecom Co., Ltd. All Rights Reserved.
GitLabへpushされたbranchの自動テスト
POST
webhook
Copyright Drecom Co., Ltd. All Rights Reserved.
GitLabへpushされたbranchの自動テスト
テスト
Copyright Drecom Co., Ltd. All Rights Reserved.
GitLabへpushされたbranchの自動テスト
結果をチャット
通知
Copyright Drecom Co., Ltd. All Rights Reserved.
テスト結果の通知
Copyright Drecom Co., Ltd. All Rights Reserved.
開発スタイルはほぼgit flow
Copyright Drecom Co., Ltd. All Rights Reserved.
master/develop/MRをそれぞれテスト
master branch
develop branch
topic branch
(MergeRequest /
PullRequest)
Copyright Drecom Co., Ltd. All Rights Reserved.
● MergeRequest, PullRequest (topic branch)
○ コードレビューの単位で常にテストを行い、テストが通っ
たものだけをdevelopにmergeする
● develop branch
○ 開発中のメインブランチを常にテストすることでどこでバ
グが混入したのかをいち早く検知できる
● master branch
○ masterはいつでもリリースできる状態のものなので、常
にテストは通っている
○ 全てのテストが通ったものだけしかリリースしない
Jenkinsで自動テストを行う粒度
Copyright Drecom Co., Ltd. All Rights Reserved.
MRには?????による温かみのあるテスト結果
Copyright Drecom Co., Ltd. All Rights Reserved.
テストケースは約900個... (約3分)
Copyright Drecom Co., Ltd. All Rights Reserved.
x 27パターン = 計24000ケース
Copyright Drecom Co., Ltd. All Rights Reserved.
x 27パターン = 計24000ケース
丸1つが900個のテ
ストケース
Copyright Drecom Co., Ltd. All Rights Reserved.
● Rubyの各バージョン
○ 2.0系, 2.1系, 2.2系
● Ruby on Railsの各バージョン
○ 4.0系, 4.1系, 4.2系
● 特定のmigrarionを適用するか(indexの有無)
○ 大人の事情で。。。
● activerecord-turntableの利用有無
○ データベースの分割ライブラリ
○ https://github.com/drecom/activerecord-turntable
● 運用上今のところありえない組み合わせを除去
● 3 x 3 x 2 x 2 - 9 = 27
内訳
Copyright Drecom Co., Ltd. All Rights Reserved.
考えられる全ての組み合わせ
はテストすべき
Copyright Drecom Co., Ltd. All Rights Reserved.
それがプロとしての当たり前
Copyright Drecom Co., Ltd. All Rights Reserved.
3分 x 27パターン = 81分
だがしかし
Copyright Drecom Co., Ltd. All Rights Reserved.
(;?Д`)
Copyright Drecom Co., Ltd. All Rights Reserved.
速くするにはどうした
らいいか?
Copyright Drecom Co., Ltd. All Rights Reserved.
マシンを増やせばい
い
【結論】
Copyright Drecom Co., Ltd. All Rights Reserved.
言い換えると
Copyright Drecom Co., Ltd. All Rights Reserved.
レベルを上げて物理
で殴ればいい
Copyright Drecom Co., Ltd. All Rights Reserved.
Master
master
Copyright Drecom Co., Ltd. All Rights Reserved.
Master + Slave x 8
master
slave
Copyright Drecom Co., Ltd. All Rights Reserved.
マシン9台でCPU 17コア
master
slave
趣味で社内ツールをいくつか立て
ているのでそのサーバにJenkins
のSlaveを相乗りしている
Copyright Drecom Co., Ltd. All Rights Reserved.
17並列で81分 ->11分
Copyright Drecom Co., Ltd. All Rights Reserved.
● http://openstack.jp/
● クラウド上でサーバのインスタンスを作るための環境
○ 平たく説明するとAWSの社内版(みたいなもの)
● 弊社では開発用途や社内ツールくらいなら自由にインスタンス
が立てられる
● 自分の場合JenkinsのSlaveも必要に応じて増減している
○ itamae + Serverspecで テスト駆動インフラやってみた
#shibuyarb - くりにっき
○ http://sue445.hatenablog.
com/entry/2015/03/19/001919
OpenStack
Copyright Drecom Co., Ltd. All Rights Reserved.
pronto + rubocopでコーディング規約違反を検知し、ボットが自
動で指摘
● https://github.com/mmozuras/pronto
● https://github.com/bbatsov/rubocop
● メリット
○ MergeRequestやPullRequestが作られたら勝手に動く
ので忘れない
○ 人間によるコードレビューの工数削減
○ 人間が言うと角が立つけどボットに言わせると角が立た
ない
静的解析
Copyright Drecom Co., Ltd. All Rights Reserved.
行単位で教えてくれる
Copyright Drecom Co., Ltd. All Rights Reserved.
問題なければLGTM
LGTM = Look good to me (大丈夫そう)
Copyright Drecom Co., Ltd. All Rights Reserved.
● 弊社では毎週主要エンジニアで集まるMTGがあって、「今週
のgem」のコーナーでgemリリースのアナウンスはしてる
● それとは別に速報的な位置づけでgemのリリース通知も自
動化した
【おまけ】gemリリース通知の自動化
Copyright Drecom Co., Ltd. All Rights Reserved.
【おまけ】gemリリース通知の自動化
git push --tags
rake drecom:release
gem push
社内gemサーバ
Copyright Drecom Co., Ltd. All Rights Reserved.
【おまけ】gemリリース通知の自動化
社内gemサーバ
POST webhook
Copyright Drecom Co., Ltd. All Rights Reserved.
【おまけ】gemリリース通知の自動化
結果をチャット
通知
社内gemサーバ
Copyright Drecom Co., Ltd. All Rights Reserved.
?????による温かみのあるアナウンス
Copyright Drecom Co., Ltd. All Rights Reserved.
● rake drecom:releaseは社内gem(drecom_gem)の機能
○ 社内gemサーバへのリリースを簡易化してる
○ 社内gemが間違えて社外のrubygems.orgに公開され
るのを防止する機能もある
○ 【詳細】RubyKaigi2014で発表した - mitaku.log
http://mitaku.github.io/blog/2014/09/22/rubykaigi-
2014-speech/
● fluentdっていうとbigdataやログの集約ってイメージがある
けど、webhookを受けることができるしチャット通知のプラグ
インが豊富なのでこういう風にカジュアルな通知にも利用で
きる
詳しいこと
Copyright Drecom Co., Ltd. All Rights Reserved.
● 機械がやるべき仕事
○ スクリプトを1回書けばずっと使いまわせる
○ 単調な作業
○ 時間がかかる作業
● 人間がやるべき仕事
○ 人間の目で見ないと判断できないもの
■ デザイン崩れなど
○ 1回しか行わない作業
機械がやるべき作業と人間がやるべき作業の切り分けが大切
全部が全部自動化はできない
Copyright Drecom Co., Ltd. All Rights Reserved.
● 機械に任せられることで人間は楽をできる
● 1人でたくさんの仕事をこなせるようになるので、レバレッジを
効かせることができる
● 一度自動化したものは誰でも使えるようになる
● 結果的に自分が楽になればみんなが楽になる
まとめ(自動化のすすめ)

More Related Content

What's hot (20)

GitHub APIとfreshで遊ぼう
GitHub APIとfreshで遊ぼうGitHub APIとfreshで遊ぼう
GitHub APIとfreshで遊ぼう
虎の穴 開発室
?
【とらのあなラボ Tech Day #3】新規システムにおける技術選定?GoとgRPCを採用した話?
【とらのあなラボ Tech Day #3】新規システムにおける技術選定?GoとgRPCを採用した話?	【とらのあなラボ Tech Day #3】新規システムにおける技術選定?GoとgRPCを採用した話?
【とらのあなラボ Tech Day #3】新規システムにおける技術選定?GoとgRPCを採用した話?
虎の穴 開発室
?
Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3
Naotoshi Seo
?
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 ?アップストリームファーストを目指して?
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 ?アップストリームファーストを目指して?CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 ?アップストリームファーストを目指して?
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 ?アップストリームファーストを目指して?
Drecom Co., Ltd.
?
Kotlinて?はし?める Webアプリケーション入門
Kotlinて?はし?める Webアプリケーション入門Kotlinて?はし?める Webアプリケーション入門
Kotlinて?はし?める Webアプリケーション入門
虎の穴 開発室
?
搁耻产测の会社で笔测迟丑辞苍颈蝉迟补が3ヶ月生き延びた话
搁耻产测の会社で笔测迟丑辞苍颈蝉迟补が3ヶ月生き延びた话搁耻产测の会社で笔测迟丑辞苍颈蝉迟补が3ヶ月生き延びた话
搁耻产测の会社で笔测迟丑辞苍颈蝉迟补が3ヶ月生き延びた话
Tokoroten Nakayama
?
2018/1/30 顿箩补苍驳辞勉强会
2018/1/30 顿箩补苍驳辞勉强会2018/1/30 顿箩补苍驳辞勉强会
2018/1/30 顿箩补苍驳辞勉强会
虎の穴 開発室
?
こんな辛いテストはいやた?
こんな辛いテストはいやた? こんな辛いテストはいやた?
こんな辛いテストはいやた?
Takuya Mikami
?
通贩开発部の西田さん「通贩开発マネジメントの5ルール」
通贩开発部の西田さん「通贩开発マネジメントの5ルール」通贩开発部の西田さん「通贩开発マネジメントの5ルール」
通贩开発部の西田さん「通贩开発マネジメントの5ルール」
虎の穴 開発室
?
【とらラホ?LT】go言語て?のweb apiの作り方3選
【とらラホ?LT】go言語て?のweb apiの作り方3選【とらラホ?LT】go言語て?のweb apiの作り方3選
【とらラホ?LT】go言語て?のweb apiの作り方3選
虎の穴 開発室
?
位置情报を常に取得するのはつらいよ
位置情报を常に取得するのはつらいよ位置情报を常に取得するのはつらいよ
位置情报を常に取得するのはつらいよ
Drecom Co., Ltd.
?
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
Masahito Zembutsu
?
【20211202冲迟辞谤补苍辞补苍补.诲别苍辞#3】诲别苍辞で贵贵滨
【20211202冲迟辞谤补苍辞补苍补.诲别苍辞#3】诲别苍辞で贵贵滨【20211202冲迟辞谤补苍辞补苍补.诲别苍辞#3】诲别苍辞で贵贵滨
【20211202冲迟辞谤补苍辞补苍补.诲别苍辞#3】诲别苍辞で贵贵滨
虎の穴 開発室
?
オタク×狈辞诲别.箩蝉勉强会
オタク×狈辞诲别.箩蝉勉强会オタク×狈辞诲别.箩蝉勉强会
オタク×狈辞诲别.箩蝉勉强会
虎の穴 開発室
?
颁#で速度を极めるいろは
颁#で速度を极めるいろは颁#で速度を极めるいろは
颁#で速度を极めるいろは
Core Concept Technologies
?
【20220120 toranoana.deno#4】denoて?ffiの続き
【20220120 toranoana.deno#4】denoて?ffiの続き【20220120 toranoana.deno#4】denoて?ffiの続き
【20220120 toranoana.deno#4】denoて?ffiの続き
虎の穴 開発室
?
2018/2/20 Kotlin勉強会
2018/2/20 Kotlin勉強会2018/2/20 Kotlin勉強会
2018/2/20 Kotlin勉強会
虎の穴 開発室
?
hooks riverpod + state notifier + freezed て?のト?メイン駆動設計
hooks riverpod + state notifier + freezed て?のト?メイン駆動設計hooks riverpod + state notifier + freezed て?のト?メイン駆動設計
hooks riverpod + state notifier + freezed て?のト?メイン駆動設計
Shinnosuke Tokuda
?
Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486
Tsunenori Oohara
?
RUNNING Smalltalk - 実践Smalltalk
RUNNING Smalltalk - 実践SmalltalkRUNNING Smalltalk - 実践Smalltalk
RUNNING Smalltalk - 実践Smalltalk
Sho Yoshida
?
【とらのあなラボ Tech Day #3】新規システムにおける技術選定?GoとgRPCを採用した話?
【とらのあなラボ Tech Day #3】新規システムにおける技術選定?GoとgRPCを採用した話?	【とらのあなラボ Tech Day #3】新規システムにおける技術選定?GoとgRPCを採用した話?
【とらのあなラボ Tech Day #3】新規システムにおける技術選定?GoとgRPCを採用した話?
虎の穴 開発室
?
Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3
Naotoshi Seo
?
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 ?アップストリームファーストを目指して?
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 ?アップストリームファーストを目指して?CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 ?アップストリームファーストを目指して?
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 ?アップストリームファーストを目指して?
Drecom Co., Ltd.
?
Kotlinて?はし?める Webアプリケーション入門
Kotlinて?はし?める Webアプリケーション入門Kotlinて?はし?める Webアプリケーション入門
Kotlinて?はし?める Webアプリケーション入門
虎の穴 開発室
?
搁耻产测の会社で笔测迟丑辞苍颈蝉迟补が3ヶ月生き延びた话
搁耻产测の会社で笔测迟丑辞苍颈蝉迟补が3ヶ月生き延びた话搁耻产测の会社で笔测迟丑辞苍颈蝉迟补が3ヶ月生き延びた话
搁耻产测の会社で笔测迟丑辞苍颈蝉迟补が3ヶ月生き延びた话
Tokoroten Nakayama
?
2018/1/30 顿箩补苍驳辞勉强会
2018/1/30 顿箩补苍驳辞勉强会2018/1/30 顿箩补苍驳辞勉强会
2018/1/30 顿箩补苍驳辞勉强会
虎の穴 開発室
?
こんな辛いテストはいやた?
こんな辛いテストはいやた? こんな辛いテストはいやた?
こんな辛いテストはいやた?
Takuya Mikami
?
通贩开発部の西田さん「通贩开発マネジメントの5ルール」
通贩开発部の西田さん「通贩开発マネジメントの5ルール」通贩开発部の西田さん「通贩开発マネジメントの5ルール」
通贩开発部の西田さん「通贩开発マネジメントの5ルール」
虎の穴 開発室
?
【とらラホ?LT】go言語て?のweb apiの作り方3選
【とらラホ?LT】go言語て?のweb apiの作り方3選【とらラホ?LT】go言語て?のweb apiの作り方3選
【とらラホ?LT】go言語て?のweb apiの作り方3選
虎の穴 開発室
?
位置情报を常に取得するのはつらいよ
位置情报を常に取得するのはつらいよ位置情报を常に取得するのはつらいよ
位置情报を常に取得するのはつらいよ
Drecom Co., Ltd.
?
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
Masahito Zembutsu
?
【20211202冲迟辞谤补苍辞补苍补.诲别苍辞#3】诲别苍辞で贵贵滨
【20211202冲迟辞谤补苍辞补苍补.诲别苍辞#3】诲别苍辞で贵贵滨【20211202冲迟辞谤补苍辞补苍补.诲别苍辞#3】诲别苍辞で贵贵滨
【20211202冲迟辞谤补苍辞补苍补.诲别苍辞#3】诲别苍辞で贵贵滨
虎の穴 開発室
?
オタク×狈辞诲别.箩蝉勉强会
オタク×狈辞诲别.箩蝉勉强会オタク×狈辞诲别.箩蝉勉强会
オタク×狈辞诲别.箩蝉勉强会
虎の穴 開発室
?
【20220120 toranoana.deno#4】denoて?ffiの続き
【20220120 toranoana.deno#4】denoて?ffiの続き【20220120 toranoana.deno#4】denoて?ffiの続き
【20220120 toranoana.deno#4】denoて?ffiの続き
虎の穴 開発室
?
hooks riverpod + state notifier + freezed て?のト?メイン駆動設計
hooks riverpod + state notifier + freezed て?のト?メイン駆動設計hooks riverpod + state notifier + freezed て?のト?メイン駆動設計
hooks riverpod + state notifier + freezed て?のト?メイン駆動設計
Shinnosuke Tokuda
?
Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486
Tsunenori Oohara
?
RUNNING Smalltalk - 実践Smalltalk
RUNNING Smalltalk - 実践SmalltalkRUNNING Smalltalk - 実践Smalltalk
RUNNING Smalltalk - 実践Smalltalk
Sho Yoshida
?

Similar to ドリコムを支える课金ライブラリを支える闯别苍办颈苍蝉 (20)

ドリコム闯别苍办颈苍蝉勉强会资料
ドリコム闯别苍办颈苍蝉勉强会资料ドリコム闯别苍办颈苍蝉勉强会资料
ドリコム闯别苍办颈苍蝉勉强会资料
Go Sueyoshi (a.k.a sue445)
?
「础搁翱奥」お披露目(実用编)
「础搁翱奥」お披露目(実用编)「础搁翱奥」お披露目(実用编)
「础搁翱奥」お披露目(実用编)
Drecom Co., Ltd.
?
リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介
リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介
リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介
Shinichiro Yoshida
?
プライベートクラウド作ってみました
プライベートクラウド作ってみましたプライベートクラウド作ってみました
プライベートクラウド作ってみました
Koji Hasebe
?
摆颁贰顿贰颁2014闭モバイルゲームにおける社内基盘开発と“実録”
摆颁贰顿贰颁2014闭モバイルゲームにおける社内基盘开発と“実録”摆颁贰顿贰颁2014闭モバイルゲームにおける社内基盘开発と“実録”
摆颁贰顿贰颁2014闭モバイルゲームにおける社内基盘开発と“実録”
Drecom Co., Ltd.
?
搁笔础って何、どんなことできるの
搁笔础って何、どんなことできるの搁笔础って何、どんなことできるの
搁笔础って何、どんなことできるの
株式会社オプト 仙台ラボラトリ
?
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~
ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~
Daisuke Futatsumori
?
オブジェクトストレージを使ってイメージビューアを作ってみる
オブジェクトストレージを使ってイメージビューアを作ってみるオブジェクトストレージを使ってイメージビューアを作ってみる
オブジェクトストレージを使ってイメージビューアを作ってみる
Hironobu Saitoh
?
NHNグループ合同勉強会 ライブドア片野
NHNグループ合同勉強会 ライブドア片野NHNグループ合同勉強会 ライブドア片野
NHNグループ合同勉強会 ライブドア片野
livedoor
?
ト?リコムのInfrastructure as code
ト?リコムのInfrastructure as codeト?リコムのInfrastructure as code
ト?リコムのInfrastructure as code
Yosuke Hiraishi
?
鲍苍颈迟测开発て?週イチ呑み会を支える技术
鲍苍颈迟测开発て?週イチ呑み会を支える技术鲍苍颈迟测开発て?週イチ呑み会を支える技术
鲍苍颈迟测开発て?週イチ呑み会を支える技术
kazuya noshiro
?
ニコニコを支える Erlang / Elixir
ニコニコを支える Erlang / Elixirニコニコを支える Erlang / Elixir
ニコニコを支える Erlang / Elixir
kojingharang
?
罢痴会议をオープンソースで実现!搁贰顿5によるストリーミング配信讲座
罢痴会议をオープンソースで実现!搁贰顿5によるストリーミング配信讲座罢痴会议をオープンソースで実现!搁贰顿5によるストリーミング配信讲座
罢痴会议をオープンソースで実现!搁贰顿5によるストリーミング配信讲座
Shinichiro Yoshida
?
革新的ブラウザゲームを支えるプラットフォーム技术
革新的ブラウザゲームを支えるプラットフォーム技术革新的ブラウザゲームを支えるプラットフォーム技术
革新的ブラウザゲームを支えるプラットフォーム技术
Toru Yamaguchi
?
Dangerて?pull requestレヒ?ューの指摘事項を減らす
Dangerて?pull requestレヒ?ューの指摘事項を減らすDangerて?pull requestレヒ?ューの指摘事項を減らす
Dangerて?pull requestレヒ?ューの指摘事項を減らす
Shunsuke Maeda
?
Perl で作るメディアストリーミングサーバー
Perl で作るメディアストリーミングサーバーPerl で作るメディアストリーミングサーバー
Perl で作るメディアストリーミングサーバー
Hideo Kimura
?
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechcon
DeNA
?
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
Koichiro Sumi
?
贵贵搁碍を支える奥别产アプリケーションフレームワークの技术
贵贵搁碍を支える奥别产アプリケーションフレームワークの技术贵贵搁碍を支える奥别产アプリケーションフレームワークの技术
贵贵搁碍を支える奥别产アプリケーションフレームワークの技术
dena_study
?
20170622 Heroku Meetup #17 スタートアッフ?のインフラ選ひ? 高丸翔英 How to choose infrastracture...
20170622 Heroku Meetup #17 スタートアッフ?のインフラ選ひ? 高丸翔英 How to choose infrastracture...20170622 Heroku Meetup #17 スタートアッフ?のインフラ選ひ? 高丸翔英 How to choose infrastracture...
20170622 Heroku Meetup #17 スタートアッフ?のインフラ選ひ? 高丸翔英 How to choose infrastracture...
Shoei Takamaru
?
「础搁翱奥」お披露目(実用编)
「础搁翱奥」お披露目(実用编)「础搁翱奥」お披露目(実用编)
「础搁翱奥」お披露目(実用编)
Drecom Co., Ltd.
?
リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介
リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介
リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介
Shinichiro Yoshida
?
プライベートクラウド作ってみました
プライベートクラウド作ってみましたプライベートクラウド作ってみました
プライベートクラウド作ってみました
Koji Hasebe
?
摆颁贰顿贰颁2014闭モバイルゲームにおける社内基盘开発と“実録”
摆颁贰顿贰颁2014闭モバイルゲームにおける社内基盘开発と“実録”摆颁贰顿贰颁2014闭モバイルゲームにおける社内基盘开発と“実録”
摆颁贰顿贰颁2014闭モバイルゲームにおける社内基盘开発と“実録”
Drecom Co., Ltd.
?
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~
ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~
Daisuke Futatsumori
?
オブジェクトストレージを使ってイメージビューアを作ってみる
オブジェクトストレージを使ってイメージビューアを作ってみるオブジェクトストレージを使ってイメージビューアを作ってみる
オブジェクトストレージを使ってイメージビューアを作ってみる
Hironobu Saitoh
?
NHNグループ合同勉強会 ライブドア片野
NHNグループ合同勉強会 ライブドア片野NHNグループ合同勉強会 ライブドア片野
NHNグループ合同勉強会 ライブドア片野
livedoor
?
ト?リコムのInfrastructure as code
ト?リコムのInfrastructure as codeト?リコムのInfrastructure as code
ト?リコムのInfrastructure as code
Yosuke Hiraishi
?
鲍苍颈迟测开発て?週イチ呑み会を支える技术
鲍苍颈迟测开発て?週イチ呑み会を支える技术鲍苍颈迟测开発て?週イチ呑み会を支える技术
鲍苍颈迟测开発て?週イチ呑み会を支える技术
kazuya noshiro
?
ニコニコを支える Erlang / Elixir
ニコニコを支える Erlang / Elixirニコニコを支える Erlang / Elixir
ニコニコを支える Erlang / Elixir
kojingharang
?
罢痴会议をオープンソースで実现!搁贰顿5によるストリーミング配信讲座
罢痴会议をオープンソースで実现!搁贰顿5によるストリーミング配信讲座罢痴会议をオープンソースで実现!搁贰顿5によるストリーミング配信讲座
罢痴会议をオープンソースで実现!搁贰顿5によるストリーミング配信讲座
Shinichiro Yoshida
?
革新的ブラウザゲームを支えるプラットフォーム技术
革新的ブラウザゲームを支えるプラットフォーム技术革新的ブラウザゲームを支えるプラットフォーム技术
革新的ブラウザゲームを支えるプラットフォーム技术
Toru Yamaguchi
?
Dangerて?pull requestレヒ?ューの指摘事項を減らす
Dangerて?pull requestレヒ?ューの指摘事項を減らすDangerて?pull requestレヒ?ューの指摘事項を減らす
Dangerて?pull requestレヒ?ューの指摘事項を減らす
Shunsuke Maeda
?
Perl で作るメディアストリーミングサーバー
Perl で作るメディアストリーミングサーバーPerl で作るメディアストリーミングサーバー
Perl で作るメディアストリーミングサーバー
Hideo Kimura
?
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechcon
DeNA
?
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
Koichiro Sumi
?
贵贵搁碍を支える奥别产アプリケーションフレームワークの技术
贵贵搁碍を支える奥别产アプリケーションフレームワークの技术贵贵搁碍を支える奥别产アプリケーションフレームワークの技术
贵贵搁碍を支える奥别产アプリケーションフレームワークの技术
dena_study
?
20170622 Heroku Meetup #17 スタートアッフ?のインフラ選ひ? 高丸翔英 How to choose infrastracture...
20170622 Heroku Meetup #17 スタートアッフ?のインフラ選ひ? 高丸翔英 How to choose infrastracture...20170622 Heroku Meetup #17 スタートアッフ?のインフラ選ひ? 高丸翔英 How to choose infrastracture...
20170622 Heroku Meetup #17 スタートアッフ?のインフラ選ひ? 高丸翔英 How to choose infrastracture...
Shoei Takamaru
?

More from Go Sueyoshi (a.k.a sue445) (18)

gemの複数バージョンカジュアルテスト #shibuyarb
gemの複数バージョンカジュアルテスト #shibuyarbgemの複数バージョンカジュアルテスト #shibuyarb
gemの複数バージョンカジュアルテスト #shibuyarb
Go Sueyoshi (a.k.a sue445)
?
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartup
プリキュアのRuby実装の紹介 (2015 ver)  #MeguroStartupプリキュアのRuby実装の紹介 (2015 ver)  #MeguroStartup
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartup
Go Sueyoshi (a.k.a sue445)
?
社内テストファースト勉强会
社内テストファースト勉强会社内テストファースト勉强会
社内テストファースト勉强会
Go Sueyoshi (a.k.a sue445)
?
プリキュアのRuby実装の紹介 #tqrk08
プリキュアのRuby実装の紹介 #tqrk08プリキュアのRuby実装の紹介 #tqrk08
プリキュアのRuby実装の紹介 #tqrk08
Go Sueyoshi (a.k.a sue445)
?
Paraductをエクストリームリリースします #428rk01
Paraductをエクストリームリリースします #428rk01Paraductをエクストリームリリースします #428rk01
Paraductをエクストリームリリースします #428rk01
Go Sueyoshi (a.k.a sue445)
?
GemoireというYARDホスティングアプリを作った #shibuyarb
GemoireというYARDホスティングアプリを作った #shibuyarbGemoireというYARDホスティングアプリを作った #shibuyarb
GemoireというYARDホスティングアプリを作った #shibuyarb
Go Sueyoshi (a.k.a sue445)
?
骋颈迟丑耻产エコシステムを活用したイマドキの趣味开発
骋颈迟丑耻产エコシステムを活用したイマドキの趣味开発骋颈迟丑耻产エコシステムを活用したイマドキの趣味开発
骋颈迟丑耻产エコシステムを活用したイマドキの趣味开発
Go Sueyoshi (a.k.a sue445)
?
プリキュアのRuby実装の紹介 #RubyHiroba
プリキュアのRuby実装の紹介 #RubyHirobaプリキュアのRuby実装の紹介 #RubyHiroba
プリキュアのRuby実装の紹介 #RubyHiroba
Go Sueyoshi (a.k.a sue445)
?
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hack
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hackプリキュアハッカソン2 参加者アンケート集計結果 #cure_hack
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hack
Go Sueyoshi (a.k.a sue445)
?
Rubyでプリキュアを作った #cure_advent #shibuyarb
Rubyでプリキュアを作った #cure_advent #shibuyarbRubyでプリキュアを作った #cure_advent #shibuyarb
Rubyでプリキュアを作った #cure_advent #shibuyarb
Go Sueyoshi (a.k.a sue445)
?
JavaScript TDD紹介 #agilesamurai
JavaScript TDD紹介 #agilesamuraiJavaScript TDD紹介 #agilesamurai
JavaScript TDD紹介 #agilesamurai
Go Sueyoshi (a.k.a sue445)
?
First step of Rails Contribute? #shibuyarb
First step of Rails Contribute? #shibuyarbFirst step of Rails Contribute? #shibuyarb
First step of Rails Contribute? #shibuyarb
Go Sueyoshi (a.k.a sue445)
?
勉強会を始めるまで #java_ja
勉強会を始めるまで #java_ja勉強会を始めるまで #java_ja
勉強会を始めるまで #java_ja
Go Sueyoshi (a.k.a sue445)
?
アニメ実况実践入门
アニメ実况実践入门アニメ実况実践入门
アニメ実况実践入门
Go Sueyoshi (a.k.a sue445)
?
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hackSue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
Go Sueyoshi (a.k.a sue445)
?
AZusaar!でのappengine活用事例 #ajn19
AZusaar!でのappengine活用事例 #ajn19AZusaar!でのappengine活用事例 #ajn19
AZusaar!でのappengine活用事例 #ajn19
Go Sueyoshi (a.k.a sue445)
?
补辫辫别苍驳颈苍别活用事例资料蔼罢顿顿叠颁札幌2.1
补辫辫别苍驳颈苍别活用事例资料蔼罢顿顿叠颁札幌2.1补辫辫别苍驳颈苍别活用事例资料蔼罢顿顿叠颁札幌2.1
补辫辫别苍驳颈苍别活用事例资料蔼罢顿顿叠颁札幌2.1
Go Sueyoshi (a.k.a sue445)
?
gemの複数バージョンカジュアルテスト #shibuyarb
gemの複数バージョンカジュアルテスト #shibuyarbgemの複数バージョンカジュアルテスト #shibuyarb
gemの複数バージョンカジュアルテスト #shibuyarb
Go Sueyoshi (a.k.a sue445)
?
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartup
プリキュアのRuby実装の紹介 (2015 ver)  #MeguroStartupプリキュアのRuby実装の紹介 (2015 ver)  #MeguroStartup
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartup
Go Sueyoshi (a.k.a sue445)
?
Paraductをエクストリームリリースします #428rk01
Paraductをエクストリームリリースします #428rk01Paraductをエクストリームリリースします #428rk01
Paraductをエクストリームリリースします #428rk01
Go Sueyoshi (a.k.a sue445)
?
GemoireというYARDホスティングアプリを作った #shibuyarb
GemoireというYARDホスティングアプリを作った #shibuyarbGemoireというYARDホスティングアプリを作った #shibuyarb
GemoireというYARDホスティングアプリを作った #shibuyarb
Go Sueyoshi (a.k.a sue445)
?
骋颈迟丑耻产エコシステムを活用したイマドキの趣味开発
骋颈迟丑耻产エコシステムを活用したイマドキの趣味开発骋颈迟丑耻产エコシステムを活用したイマドキの趣味开発
骋颈迟丑耻产エコシステムを活用したイマドキの趣味开発
Go Sueyoshi (a.k.a sue445)
?
プリキュアのRuby実装の紹介 #RubyHiroba
プリキュアのRuby実装の紹介 #RubyHirobaプリキュアのRuby実装の紹介 #RubyHiroba
プリキュアのRuby実装の紹介 #RubyHiroba
Go Sueyoshi (a.k.a sue445)
?
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hack
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hackプリキュアハッカソン2 参加者アンケート集計結果 #cure_hack
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hack
Go Sueyoshi (a.k.a sue445)
?
Rubyでプリキュアを作った #cure_advent #shibuyarb
Rubyでプリキュアを作った #cure_advent #shibuyarbRubyでプリキュアを作った #cure_advent #shibuyarb
Rubyでプリキュアを作った #cure_advent #shibuyarb
Go Sueyoshi (a.k.a sue445)
?
补辫辫别苍驳颈苍别活用事例资料蔼罢顿顿叠颁札幌2.1
补辫辫别苍驳颈苍别活用事例资料蔼罢顿顿叠颁札幌2.1补辫辫别苍驳颈苍别活用事例资料蔼罢顿顿叠颁札幌2.1
补辫辫别苍驳颈苍别活用事例资料蔼罢顿顿叠颁札幌2.1
Go Sueyoshi (a.k.a sue445)
?

Recently uploaded (13)

第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ssuserfcafd1
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
?
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
?
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
?
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
?
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
ビットコインテストネットでの送金体験付きビットコイン?ブロックチェーン勉强会资料
ビットコインテストネットでの送金体験付きビットコイン?ブロックチェーン勉强会资料ビットコインテストネットでの送金体験付きビットコイン?ブロックチェーン勉强会资料
ビットコインテストネットでの送金体験付きビットコイン?ブロックチェーン勉强会资料
周 小渕
?
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ssuserfcafd1
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
?
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
?
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
?
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
?
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
ビットコインテストネットでの送金体験付きビットコイン?ブロックチェーン勉强会资料
ビットコインテストネットでの送金体験付きビットコイン?ブロックチェーン勉强会资料ビットコインテストネットでの送金体験付きビットコイン?ブロックチェーン勉强会资料
ビットコインテストネットでの送金体験付きビットコイン?ブロックチェーン勉强会资料
周 小渕
?

ドリコムを支える课金ライブラリを支える闯别苍办颈苍蝉

  • 1. Copyright Drecom Co., Ltd. All Rights Reserved. ドリコムを支える課金ライブラリを 支えるJenkins 2015/03/23 16新卒エンジニア勉強会 @sue445
  • 2. Copyright Drecom Co., Ltd. All Rights Reserved. @sue445 ● 福岡生まれ福岡育ち ● 福岡教育大学卒 ● 2009年4月~: 某SI系企業新卒入社(前職) ● 2012年7月~: ドリコム 今のお仕事 ● iOS/Androidアプリの課金ライブラリのメンテ ● 社内ツール、社内ライブラリ開発 ● サーバサイド全般(アプリ~インフラまで横断的に) ● PO (Precure Ojisan) 自己紹介
  • 3. Copyright Drecom Co., Ltd. All Rights Reserved. ● フルボッコヒーローズの事前登録ガチャ(フライング ゲットガチャ)開発 ○ ドリコムのフライングゲットガチャの舞台裏 #ksgstudy - くりにっき ○ http://sue445.hatenablog. com/entry/2014/07/12/204741 ● ドリコムAdventCalendarの主犯 ○ ドリコム Advent Calendar 2014 - Adventar ○ http://www.adventar.org/calendars/518 その他やってたこと
  • 4. Copyright Drecom Co., Ltd. All Rights Reserved. 【今期の嫁】キュアトゥインクル
  • 5. Copyright Drecom Co., Ltd. All Rights Reserved. 今期の黄色は肩背中出し!!!!
  • 6. Copyright Drecom Co., Ltd. All Rights Reserved. 【本妻】キュアピース
  • 7. Copyright Drecom Co., Ltd. All Rights Reserved. エンジニアの仕事机
  • 8. Copyright Drecom Co., Ltd. All Rights Reserved. エンジニアの仕事机
  • 9. Copyright Drecom Co., Ltd. All Rights Reserved. エンジニアの仕事机 机には多数の技術書
  • 10. Copyright Drecom Co., Ltd. All Rights Reserved. エンジニアの仕事机
  • 11. Copyright Drecom Co., Ltd. All Rights Reserved. エンジニアの仕事机 全社員サブディスプレ イ支給
  • 12. Copyright Drecom Co., Ltd. All Rights Reserved. ● Jenkinsとは? ● ドリコムでのJenkinsの使われ方 ● dpoint(課金ライブラリ)について ● dpointでのJenkins活用事例 ● おまけ ● まとめ Agenda
  • 13. Copyright Drecom Co., Ltd. All Rights Reserved. ● http://jenkins-ci.org/ ● Javaで書かれたオープンソース継続的インテグレーション ツール(Wikipediaより) ○ 継続的インテグレーション = 開発時の品質改善や自動 化推進 ● プラグインでいろいろ拡張できる Jenkinsとは?
  • 14. Copyright Drecom Co., Ltd. All Rights Reserved. 会社全体で1つのJenkins使っているというわけではなく、アプリ ごとに野良Jenkinsが乱立しているので全部は把握していない 具体例 ● 開発中アプリのテスト ● 開発サーバへのデプロイ ● テストアプリの配信 ● ライブラリのドキュメントの作成 ● etc ドリコムでのJenkinsの使われ方
  • 15. Copyright Drecom Co., Ltd. All Rights Reserved. ● iOS/Androidのアプリの中間ポイントシステム ○ 魔法石やダイヤをサーバで管理する仕組み ● 2013年以降に出たアプリで全部使われているはず ○ ガルロワ、フルボッコなど ● 詳細は「ドリコムAdventCaledar」で検索 ○ http://sue445.hatenablog. com/entry/2014/12/01/000000 dpoint(課金ライブラリ)について
  • 16. Copyright Drecom Co., Ltd. All Rights Reserved. ● Rubyで書かれているライブラリ(gem) ● 開発はほぼ僕1人 dpoint(中間ポイントシステム)について
  • 17. Copyright Drecom Co., Ltd. All Rights Reserved. 開発はほぼ僕1人(でした) 重要なのでもう一度
  • 18. Copyright Drecom Co., Ltd. All Rights Reserved. Σ(?Д?) 重要なのでもう一度
  • 19. Copyright Drecom Co., Ltd. All Rights Reserved. ● 機能改修 ● 負荷対応、パフォーマンスチューニング ● AppleやGoogleの課金の仕組みが変わった時の対応 ● その他諸々の緊急対応 ● まともにやってると1人じゃ絶対回せない ○ バグがあるとライブラリを導入しているアプリ全体に影響 するので絶対にバグは出せない ○ 課金がバグってると会社は誤った売上を計上することに なるので超シビア ○ 今はメンテナ増えたけど1年以上僕1人で面倒を見てた dpointでやってること
  • 20. Copyright Drecom Co., Ltd. All Rights Reserved. よろしい
  • 21. Copyright Drecom Co., Ltd. All Rights Reserved. ならば自動化だ!
  • 22. Copyright Drecom Co., Ltd. All Rights Reserved. ● 今日話すこと ○ GitLabにpushされたbranchの自動テスト ○ 静的解析 ● 今日話さないこと ○ ドキュメント生成 自動化していること
  • 23. Copyright Drecom Co., Ltd. All Rights Reserved. GitLabへpushされたbranchの自動テスト git push
  • 24. Copyright Drecom Co., Ltd. All Rights Reserved. GitLabへpushされたbranchの自動テスト POST webhook
  • 25. Copyright Drecom Co., Ltd. All Rights Reserved. GitLabへpushされたbranchの自動テスト テスト
  • 26. Copyright Drecom Co., Ltd. All Rights Reserved. GitLabへpushされたbranchの自動テスト 結果をチャット 通知
  • 27. Copyright Drecom Co., Ltd. All Rights Reserved. テスト結果の通知
  • 28. Copyright Drecom Co., Ltd. All Rights Reserved. 開発スタイルはほぼgit flow
  • 29. Copyright Drecom Co., Ltd. All Rights Reserved. master/develop/MRをそれぞれテスト master branch develop branch topic branch (MergeRequest / PullRequest)
  • 30. Copyright Drecom Co., Ltd. All Rights Reserved. ● MergeRequest, PullRequest (topic branch) ○ コードレビューの単位で常にテストを行い、テストが通っ たものだけをdevelopにmergeする ● develop branch ○ 開発中のメインブランチを常にテストすることでどこでバ グが混入したのかをいち早く検知できる ● master branch ○ masterはいつでもリリースできる状態のものなので、常 にテストは通っている ○ 全てのテストが通ったものだけしかリリースしない Jenkinsで自動テストを行う粒度
  • 31. Copyright Drecom Co., Ltd. All Rights Reserved. MRには?????による温かみのあるテスト結果
  • 32. Copyright Drecom Co., Ltd. All Rights Reserved. テストケースは約900個... (約3分)
  • 33. Copyright Drecom Co., Ltd. All Rights Reserved. x 27パターン = 計24000ケース
  • 34. Copyright Drecom Co., Ltd. All Rights Reserved. x 27パターン = 計24000ケース 丸1つが900個のテ ストケース
  • 35. Copyright Drecom Co., Ltd. All Rights Reserved. ● Rubyの各バージョン ○ 2.0系, 2.1系, 2.2系 ● Ruby on Railsの各バージョン ○ 4.0系, 4.1系, 4.2系 ● 特定のmigrarionを適用するか(indexの有無) ○ 大人の事情で。。。 ● activerecord-turntableの利用有無 ○ データベースの分割ライブラリ ○ https://github.com/drecom/activerecord-turntable ● 運用上今のところありえない組み合わせを除去 ● 3 x 3 x 2 x 2 - 9 = 27 内訳
  • 36. Copyright Drecom Co., Ltd. All Rights Reserved. 考えられる全ての組み合わせ はテストすべき
  • 37. Copyright Drecom Co., Ltd. All Rights Reserved. それがプロとしての当たり前
  • 38. Copyright Drecom Co., Ltd. All Rights Reserved. 3分 x 27パターン = 81分 だがしかし
  • 39. Copyright Drecom Co., Ltd. All Rights Reserved. (;?Д`)
  • 40. Copyright Drecom Co., Ltd. All Rights Reserved. 速くするにはどうした らいいか?
  • 41. Copyright Drecom Co., Ltd. All Rights Reserved. マシンを増やせばい い 【結論】
  • 42. Copyright Drecom Co., Ltd. All Rights Reserved. 言い換えると
  • 43. Copyright Drecom Co., Ltd. All Rights Reserved. レベルを上げて物理 で殴ればいい
  • 44. Copyright Drecom Co., Ltd. All Rights Reserved. Master master
  • 45. Copyright Drecom Co., Ltd. All Rights Reserved. Master + Slave x 8 master slave
  • 46. Copyright Drecom Co., Ltd. All Rights Reserved. マシン9台でCPU 17コア master slave 趣味で社内ツールをいくつか立て ているのでそのサーバにJenkins のSlaveを相乗りしている
  • 47. Copyright Drecom Co., Ltd. All Rights Reserved. 17並列で81分 ->11分
  • 48. Copyright Drecom Co., Ltd. All Rights Reserved. ● http://openstack.jp/ ● クラウド上でサーバのインスタンスを作るための環境 ○ 平たく説明するとAWSの社内版(みたいなもの) ● 弊社では開発用途や社内ツールくらいなら自由にインスタンス が立てられる ● 自分の場合JenkinsのSlaveも必要に応じて増減している ○ itamae + Serverspecで テスト駆動インフラやってみた #shibuyarb - くりにっき ○ http://sue445.hatenablog. com/entry/2015/03/19/001919 OpenStack
  • 49. Copyright Drecom Co., Ltd. All Rights Reserved. pronto + rubocopでコーディング規約違反を検知し、ボットが自 動で指摘 ● https://github.com/mmozuras/pronto ● https://github.com/bbatsov/rubocop ● メリット ○ MergeRequestやPullRequestが作られたら勝手に動く ので忘れない ○ 人間によるコードレビューの工数削減 ○ 人間が言うと角が立つけどボットに言わせると角が立た ない 静的解析
  • 50. Copyright Drecom Co., Ltd. All Rights Reserved. 行単位で教えてくれる
  • 51. Copyright Drecom Co., Ltd. All Rights Reserved. 問題なければLGTM LGTM = Look good to me (大丈夫そう)
  • 52. Copyright Drecom Co., Ltd. All Rights Reserved. ● 弊社では毎週主要エンジニアで集まるMTGがあって、「今週 のgem」のコーナーでgemリリースのアナウンスはしてる ● それとは別に速報的な位置づけでgemのリリース通知も自 動化した 【おまけ】gemリリース通知の自動化
  • 53. Copyright Drecom Co., Ltd. All Rights Reserved. 【おまけ】gemリリース通知の自動化 git push --tags rake drecom:release gem push 社内gemサーバ
  • 54. Copyright Drecom Co., Ltd. All Rights Reserved. 【おまけ】gemリリース通知の自動化 社内gemサーバ POST webhook
  • 55. Copyright Drecom Co., Ltd. All Rights Reserved. 【おまけ】gemリリース通知の自動化 結果をチャット 通知 社内gemサーバ
  • 56. Copyright Drecom Co., Ltd. All Rights Reserved. ?????による温かみのあるアナウンス
  • 57. Copyright Drecom Co., Ltd. All Rights Reserved. ● rake drecom:releaseは社内gem(drecom_gem)の機能 ○ 社内gemサーバへのリリースを簡易化してる ○ 社内gemが間違えて社外のrubygems.orgに公開され るのを防止する機能もある ○ 【詳細】RubyKaigi2014で発表した - mitaku.log http://mitaku.github.io/blog/2014/09/22/rubykaigi- 2014-speech/ ● fluentdっていうとbigdataやログの集約ってイメージがある けど、webhookを受けることができるしチャット通知のプラグ インが豊富なのでこういう風にカジュアルな通知にも利用で きる 詳しいこと
  • 58. Copyright Drecom Co., Ltd. All Rights Reserved. ● 機械がやるべき仕事 ○ スクリプトを1回書けばずっと使いまわせる ○ 単調な作業 ○ 時間がかかる作業 ● 人間がやるべき仕事 ○ 人間の目で見ないと判断できないもの ■ デザイン崩れなど ○ 1回しか行わない作業 機械がやるべき作業と人間がやるべき作業の切り分けが大切 全部が全部自動化はできない
  • 59. Copyright Drecom Co., Ltd. All Rights Reserved. ● 機械に任せられることで人間は楽をできる ● 1人でたくさんの仕事をこなせるようになるので、レバレッジを 効かせることができる ● 一度自動化したものは誰でも使えるようになる ● 結果的に自分が楽になればみんなが楽になる まとめ(自動化のすすめ)