Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Masaru Hoshino
2,237 views
YAPC::Asia2015
Internet
◦
Read more
2
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 43
2
/ 43
3
/ 43
4
/ 43
5
/ 43
6
/ 43
7
/ 43
8
/ 43
9
/ 43
10
/ 43
11
/ 43
12
/ 43
13
/ 43
14
/ 43
15
/ 43
16
/ 43
17
/ 43
18
/ 43
19
/ 43
20
/ 43
21
/ 43
22
/ 43
23
/ 43
24
/ 43
25
/ 43
26
/ 43
27
/ 43
28
/ 43
29
/ 43
30
/ 43
31
/ 43
32
/ 43
33
/ 43
34
/ 43
35
/ 43
36
/ 43
37
/ 43
38
/ 43
39
/ 43
40
/ 43
41
/ 43
42
/ 43
43
/ 43
More Related Content
PDF
20101211 gunma.web#3 LanguaGegenerationLoss
by
ivoryworks .
PDF
mod_perlプログラマーがYAPCで語るレガシー開発論
by
鉄次 尾形
PDF
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
by
Yusuke Kon
PDF
Laravel4で運用するサービス,そしてlaravel5へ
by
Nʎ Nkogues
PPTX
NAO Workshop #1
by
Takuji Kawata
PDF
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
by
Y Watanabe
PDF
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
by
Rakuten Group, Inc.
PDF
History of TreasureData Support
by
Toru Takahashi
20101211 gunma.web#3 LanguaGegenerationLoss
by
ivoryworks .
mod_perlプログラマーがYAPCで語るレガシー開発論
by
鉄次 尾形
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
by
Yusuke Kon
Laravel4で運用するサービス,そしてlaravel5へ
by
Nʎ Nkogues
NAO Workshop #1
by
Takuji Kawata
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
by
Y Watanabe
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
by
Rakuten Group, Inc.
History of TreasureData Support
by
Toru Takahashi
What's hot
PDF
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
by
Keisuke Utsumi
PPTX
すごいタスク管理(仮)
by
Kakigi Katuyuki
PDF
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
by
Shou Takenaka
PPTX
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
by
Taichi Watanabe
PPTX
Benchmarkspec
by
Yuichiro Shibata
PPTX
NAO/Pepper 開発環境 について
by
Takuji Kawata
PDF
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
by
Yuuki Fukuda
PDF
既存Objective-CプロジェクトをSwiftに移行した時ハマったこと
by
apuruni
PDF
Pyconjp2016 pyftplib
by
Shinya Okano
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
by
Keisuke Utsumi
すごいタスク管理(仮)
by
Kakigi Katuyuki
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
by
Shou Takenaka
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
by
Taichi Watanabe
Benchmarkspec
by
Yuichiro Shibata
NAO/Pepper 開発環境 について
by
Takuji Kawata
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
by
Yuuki Fukuda
既存Objective-CプロジェクトをSwiftに移行した時ハマったこと
by
apuruni
Pyconjp2016 pyftplib
by
Shinya Okano
Similar to YAPC::Asia2015
PDF
新標準PSRに学ぶきれいなPHP
by
Yusuke Ando
PDF
The master plan ofscaling a web application
by
Yusuke Wada
PDF
Perl入学式をやってみた! - YAPC::Asia 2012
by
Takayuki Fukumoto
PDF
yapcasia2012 op
by
941 Kushii
PDF
「モダンPerl入門」の入門
by
Songhee Han
PDF
Roppongi pm-when-camel-was-pink
by
近藤 嘉雪
PDF
「ほげエンジニア」の定義について #operationcasual
by
SATOSHI TAGOMORI
PDF
Fukuokapm20140920 uzulla talk
by
Junichi Ishida
PDF
私とOSS活動とPerl
by
Shunsuke Maeda
PPTX
PerlでJCL,基幹バッチをダウンサイジング
by
minemaz
PDF
YAPC::Asia Tokyo 2013 ランチセッション
by
Kuninobu SaSaki
KEY
20年越しで Perl 4 to 5 した話
by
outerinside
PDF
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
by
keroyonn
PDF
Backlogでの Perlのつかいかた
by
Ryuzo Yamamoto
新標準PSRに学ぶきれいなPHP
by
Yusuke Ando
The master plan ofscaling a web application
by
Yusuke Wada
Perl入学式をやってみた! - YAPC::Asia 2012
by
Takayuki Fukumoto
yapcasia2012 op
by
941 Kushii
「モダンPerl入門」の入門
by
Songhee Han
Roppongi pm-when-camel-was-pink
by
近藤 嘉雪
「ほげエンジニア」の定義について #operationcasual
by
SATOSHI TAGOMORI
Fukuokapm20140920 uzulla talk
by
Junichi Ishida
私とOSS活動とPerl
by
Shunsuke Maeda
PerlでJCL,基幹バッチをダウンサイジング
by
minemaz
YAPC::Asia Tokyo 2013 ランチセッション
by
Kuninobu SaSaki
20年越しで Perl 4 to 5 した話
by
outerinside
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
by
keroyonn
Backlogでの Perlのつかいかた
by
Ryuzo Yamamoto
YAPC::Asia2015
1.
Perlがメインじゃない 現場でもPerlを使う (AdTech現場編) masartz@VOYAGE GROUP YAPC::Asia 2015
08/22
2.
自己紹介 • masartz • http://search.cpan.org/ masartz/ •
https://github.com/ masartz • VOYAGE GROUP adingo -> fluct
3.
先ほどのセッションに続き確認ですが、 こちらでお間違いではないですか?
4.
結論 • 言語が変わっても求められる事は変わらない • 言語に関わらずできること/しなければならない ことはある •
無駄な部分はなるべくなくしていこう • そのために自分の持っている技術を使い、また その技術の幅を広げよう
5.
前提 • What s
SSP? • What s fluct? • How Architecture Works?
6.
What s SSP メディア (媒体) SSP Adnetwork or DSP 広告主
7.
What s fluct
8.
本日のお品書き 1. Perlの現場でやってた事を PHPの現場でもやった話 2. PHPの現場で書いたものを Perlにバックポートした話 3.
Rubyの現場で暫定対応をPerlでやった話 4. まとめ
9.
Perlの現場でやってた事を PHPの現場でもやった話
10.
共通している課題 • 「こうしたい」、「こうなったら良い」に対して 現状がそれを阻む制約を抱えている • 何らかの線引きをしないと、制約は加速していく
11.
「現状○○なんだけど、いずれxxしたい」 という時のアプローチ http://techlog.voyagegroup.com/entry/ 2015/05/01/150606
12.
何をしたか?どうなったか? • 媒体社様向けの管理画面用リポジトリにおいて、 PSR-2に沿う事をコードレビュー時に目視確認 と手動修正によって行っていた • 既存ファイルを全て修正して、php-cs-fixerが使 える状況を作った •
開発時に機械的にPSR-2に沿えるようになった
13.
Perlの現場では? • 古いライブラリで、社内のガイドラインに沿ってない ファイルがたくさんあった • Test::CodingStyle(
https://github.com/mixi-inc/p5-Test- CodingStyle )という仕組みを作り、既存ファイルを blacklistに入れて分別するようにした • 新規分は必ずガイドラインに沿えるようになった • http://www.slideshare.net/masartz/ yapc2013-26481517/21
14.
PHP環境 Perl環境 課題 コードレビュー時に 毎回発生する確認&修正コスト 増え続けるライブラリの メンテナンスコスト 現状 PSR-2に則っていないファイル群 (550) 社内ガイドラインに沿ってない ファイル群(10,000) 対応 既存全てのファイルに php-cs-fixerを適用した Testツールを作って、既存 ファイルはblacklist扱いにした 結果 make
php-cs-fixer test running
15.
この話のまとめ • 対象リポジトリ配下全てがPSR-2に沿った • 対応リリース過程で障害に繋がったケースはなし •
大切な事は、明瞭な規約に沿う事にコードを 統一できたことではない • 人がやるべきではない作業を機械にやらせるよ うにした
16.
PHPの現場で書いたものを Perlにバックポートした話
17.
共通していること • 開発者がcrontabをうっかり書きミスること 例)19時00分にだけ動いてほしい場合 誤: *
19 * * * php hoge.php 正 : 0 19 * * * php hoge.php • cron.txt っぽいファイルで設定を管理している • crontabの解析用のライブラリが既にあることに よって少ない工数で、テストが書ける
18.
・http://masartz.hatenablog.jp/entry/ 2015/08/04/203331 ・http://www.slideshare.net/masartz/lt- open-45508527
19.
何をしたか?どうなったか? • crontabの設定をうっかりミスってしまい、 障害が起きてしまった • 書きミスがちょっとだけ防げるdoctest (or
Test::Base)っぽいテストを書いた • テストが落ちることで、うっかりミスに気づけ るようになり、簡単な再発防止策となった
20.
* 19 *
* * php hoge.php ###prev 2014-12-31 19:00:00 ###next 2015-01-01 19:00:00 これだと、テスト落ちる
21.
0 19 *
* * php hoge.php ###prev 2014-12-31 19:00:00 ###next 2015-01-01 19:00:00 これだと、テスト通る
22.
Perl版は? • Test::Parse::Crontab::Simple • http://search.cpan.org/ masartz/Test-Parse- Crontab-Simple-0.01/
23.
10 19 *
* * perl hoge.pl ###sample 2014-12-31 19:20:00 これだと、テスト落ちる
24.
*/10 19 *
* * perl hoge.pl ###sample 2014-12-31 19:20:00 これだと、テスト通る
25.
PHP環境 Perl環境 課題 開発者がcrontabをうっかり書きミスる 現状
Cron Expressionがある Parse::Crontabがある 対応 Cron Expression を用いたテストファイル Test::Parse::Crontab::Simple 結果 うっかりミスに少しだけ気づきやすくなった
26.
何故Perlに移植したか? • PSGI,Plack,plenv,Carton etc… •
近年のPerlの成長は他言語からの流入が大きい • 他言語で得た知見をPerlに還元するため
27.
ここで半分ちょっと越えたくらい
28.
Rubyの現場で暫定対応を Perlでやった話
29.
Which situation? メディア (媒体) SSP Adnetwork or DSP 広告主
30.
Adnetworkからfluctへの入稿
31.
何をしたか?どうなったか? • 入稿するJavascriptタグを多重登録してしまう オペレーションミスがしばしば起こっていた • 重複検知のための要件定義をPerlで行い、 定常運用版をRubyで書いた •
重複が発生した場合、アラートメールが届き、 重複を解消できるようになった
32.
Which situation?
33.
既存分の修正 既存分抽出及び 定常バッチ用 スクリプト作成&修正 (Ruby) 要件定義& 既存分の精査 オペレーションG エンジニア 警告発生時の 修正フロー開始 定常バッチ化 リリース 要件が曖昧で、 見積もりにくい クリティカルパス メンテナンス
34.
この案件のキモ • 要件定義をできるだけ早めて、早く次のフェーズ に進むこと • 一旦現状をクリーンにしてから、異常があった 場合のみメールが発砲されるようにすること •
現状を鑑みて、冗長体制かつ、少ないメンテナ ンスコストで運用できるようにすること
35.
既存分の修正 既存分抽出及び 定常バッチ用 スクリプト作成&修正 (Ruby) 要件定義& 既存分の精査 オペレーションG エンジニア 警告発生時の 修正フロー開始 定常バッチ化 リリース
36.
既存分の修正 既存分抽出 スクリプト作成&修正 (Perl) 要件定義& 既存分の精査 オペレーションG エンジニア 定常バッチ化開発 (Ruby) 警告発生時の 修正フロー開始 定常バッチ化 リリース
37.
この話のまとめ • 現状、通知メールが来ると「おっ?」って 思える運用フローになっている • リリース後稼働しているRuby版は冗長な メンテナンス体制が取れている •
案件の性質を理解し、より良い手段を取ること が大事であるということ
38.
全体のまとめ • 言語が変わっても求められる事は変わらない • 言語に関わらずできること/しなければならない ことはある •
無駄な部分はなるべくなくしていこう • そのために自分の持っている技術を使い、また その技術の幅を広げよう
39.
告知タイム
40.
http://voyagegroup.com/crew/recruit/
43.
Thanks YAPC::Asia!
Download