Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
レガシーな開発現場にUTを入れてCIを導入した話
Search
Leko
November 16, 2016
Technology
6.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
レガシーな開発現場にUTを入れてCIを導入した話
Web Tech Tokyo #2 CI会
Leko
November 16, 2016
Transcript
13 slides
レガシーな開発現場にUTを 入れてCIを導入した話 井上 真吾
24歳、鎌倉住まい ブログ: http://leko.jp Twitter: @L_e_k_o Github: Leko 会社:Hamee株式会社 QAIT リーダー
入社2年半、小田原、目黒勤務 品質向上と自動化を追い求めるチーム 井上 真吾(れこ)
話すこと、話さないこと • 話します ◦ つらみを救ってくれたのは CIでした • 話せないです ◦ イケてる会社の最新の事情
◦ 技術負債と向き合う話
2500社近くが導入する、ECのバックエンド一元管理サービス 自社。内製で提供するWebアプリは30近く サービス開始から9年目 PHP, Java, Rubyが主 サポート切れてるバージョンを使ってるサービスも... サービス開始当初は僅かでも経験があれば即採用 仕様書レス、テストレス、レビューレス、仕様レス 動作は手で確かめる。ただしい動きは誰かが知ってる、はず
レガシーな開発現場
• 一部上場、予算も増えて人も増える ◦ 案件開始 → 仕様書もテストもない → 聞いてもわからない → とにかくコード読む ◦ 案件ついでにリファクタ → 安定のデグレ → 誰も触れない化物 ◦
仕様書書き出す → 機能が多すぎる → 形骸化or中途半端な情報 ◦ レビューなし → しょうもない凡ミス → 何も学ばないで二の鉄を踏む ◦ スピード出ない、品質担保で精一杯 • 契約企業が増えれば負荷も増えるし責任も増す ◦ 寿命によるハードウェア障害、スロークエリ、 CPU高沸 etc… • でも売れてる ◦ 売れたまま、スピード感が出せるように加速させたい レガシーが悪いわけではない、が。
• 新卒が「技術力足りない」と思うくらいには低かった • 人も実力者も増え、今やそうではなくなった よろしい、ならば改善だ
• コードレビュー開始 • Doxygen入れてAPIドキュメント生成 • 仕様置き場の確保、旗振り • General logをパースしてERD作成 •
UT書き始める。UT書く案件にはベネフィット持たせて書かせる • ST書き始める。とてもじゃないけど手が回らない • オフショアに頼る。ベトナムに飛んでコミュニケーション取る • オフショアといい感じにUT埋めてる ← いまここ 改善の前段
要は長い、煩雑 メンバーが増えると こっちの管理コスト 増加、凡ミス頻発。 当初の業務フロー
テスト書いてもらうならCIだ
• 社内にCIという文化がない • もう勢いで入れてしまえ、あとでその有用性を分からせる • 動作環境がめちゃくちゃレガシー ◦ CircleCI(phpenv)ではサポートしてくれてないバージョン ◦ chefで作られた超大なレシピ
• Dockerで凌ぐ ◦ Packer + Dockerでコンテナ生成 ◦ 環境がchef製なのが幸いした CIへの壁
CI後の業務フロー 手元でテストを実行 する という不確実な手順 を排除
• ユニットテストを書く文化づくり • 効率化、省力化の文化づくり • 他の製品へのCI横展開 ◦ Java製アプリのビルド・デプロイ自動化 • ドキュメントもCIしたい。lintかけたい。
• 成果:バグ数軽減、精神衛生向上 • ゆくゆくは開発効率の向上につなげたい。 今後
ありがとうございました! これからも レガシーを駆逐し てゆきます
More Decks by Leko
See All by Leko
コンセプトの海の泳ぎ方
leko
0
77
JSConf JPのwebsiteをGatsbyからNext.jsに移行した話 - Next.jsの多言語静的サイトと課題
leko
3
430
エンジニアと治療アプリ®
leko
0
1.4k
Node.jsにContributeして一ヶ月でCollaboratorになった
leko
5
7.7k
React NativeアプリでE2Eテストを回してみた
leko
8
3k
IntersectionObserverはいいぞ
leko
3
3.3k
React Nativeで医療機器作ってます
leko
4
1.8k
趣味では使っているが 仕事には使ってないツール
leko
1
270
MySQLがゆるふわなのはどう考えてもSQLモードが悪い!
leko
1
380
Other Decks in Technology
See All in Technology
LLM 基盤と kagent v0 を全部 k8s に入れてみた / Deploy both LLM and kagent v0 in k8s
kota2and3kan
0
130
Go初心者のクラウドエンジニアが、デプロイを通して旨味を知っていく話
ryudai
1
150
2026-11-11 Tamachi.sre#7 PaCにインフラリソースの命を救われました。 / PaC saves the infra resource life
masasuzu
0
120
[General] 개발자로 해외 기업에서 일하기
skydoves
1
330
Frontier Teams — Amazon は AI で「開発のやり方」をどう変えたのか
kmotohas
0
170
Gifu WordPress Meetup #200 に向けて、私たちには何ができるだろうか?/ 2026-11-07 Gifu WordPress Meetup
torounit
0
250
サボる子はいねぇがー!AgentCoreハーネスの脆弱性に学ぶ、エージェントの入力バリデーション
iwamot
PRO
5
320
ゼロから作るWebアプリの新定番!?Amplify Gen 2 × AWS Blocksで実現する「開発速度とRDBの柔軟性のいいとこ取り」
amixedcolor
1
240
2026 Apache Flink Community Checkpoint
rmetzger
0
230
Kiro Crew 入門 (手を離しても進む仕事) | 目指せ Kiro マスター 11
inariku
PRO
4
690
複数システムが同居した 15 年物の AWS アカウントを解体するための考古学
wa6sn
3
120
[JAWS Festa 2026]一番いい仕事は、請求書に現れない / jawsfesta2026
sh_fk2
2
450
Featured
See All Featured
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
520
Ethics towards AI in product and experience design
skipperchong
2
460
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Building an army of robots
kneath
307
47k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
570
Believing is Seeing
oripsolob
1
280
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
750
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
630
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.6k