Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
IIS URL Rewrite のユニットテストをしよう! /iis-url-rewrite-...
Search
minato128
October 07, 2017
Programming
1
870
IIS URL Rewrite のユニットテストをしよう! /iis-url-rewrite-unit-test
.NET Conf 2017 Tokyo, Japan の LT
https://csugjp.connpass.com/event/66004/
minato128
October 07, 2017
Tweet
Share
More Decks by minato128
See All by minato128
Cloudflare Use Cases at CADDi
minato128
2
500
Azure Monitoring with Datadog Part 1
minato128
0
170
新メール配信基盤への移行 /ikyu-mail-platform
minato128
7
5.8k
デプロイ完全自動化から1年で起きたこと /ikyu-deploy
minato128
2
4.9k
Other Decks in Programming
See All in Programming
TFLintカスタムプラグインで始める Terraformコード品質管理
bells17
2
210
Devoxx BE - Local Development in the AI Era
kdubois
0
130
『毎日の移動』を支えるGoバックエンド内製開発
yutautsugi
2
250
スマホから Youtube Shortsを見られないようにする
lemolatoon
27
33k
Goで実践するドメイン駆動開発 AIと歩み始めた新規プロダクト開発の現在地
imkaoru
4
850
「ちょっと古いから」って避けてた技術書、今だからこそ読もう
mottyzzz
11
6.8k
CSC509 Lecture 06
javiergs
PRO
0
260
(Extension DC 2025) Actor境界を越える技術
teamhimeh
1
260
登壇は dynamic! な営みである / speech is dynamic
da1chi
0
340
あなたとKaigi on Rails / Kaigi on Rails + You
shimoju
0
170
Software Architecture
hschwentner
6
2.3k
大規模アプリのDIフレームワーク刷新戦略 ~過去最大規模の並行開発を止めずにアプリ全体に導入するまで~
mot_techtalk
1
460
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
353
21k
Keith and Marios Guide to Fast Websites
keithpitt
411
23k
How GitHub (no longer) Works
holman
315
140k
The World Runs on Bad Software
bkeepers
PRO
72
11k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
We Have a Design System, Now What?
morganepeng
53
7.8k
Facilitating Awesome Meetings
lara
56
6.6k
Context Engineering - Making Every Token Count
addyosmani
7
260
Done Done
chrislema
185
16k
Faster Mobile Websites
deanohume
310
31k
Embracing the Ebb and Flow
colly
88
4.9k
Scaling GitHub
holman
463
140k
Transcript
IIS URL Rewrite の ユニットテストをしよう! 株式会社一休 宿泊事業本部 開発部 飯迫 正貴
2017/10/07 LT
IIS URL Rewrite とは?
IIS URL Rewrite とは? • URL Rewrite Module • https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-
module/using-the-url-rewrite-module • 設定に書いたルールに従ってURLを書き換えてくれる
課題
課題 • 便利な反面、継ぎ足し続けるとわけが分からなくなる • 負債化しやすい • 全体が理解できず、変更すると他が壊れるのではという恐怖 • ジェンガ状態 •
気軽にリファクタリングできない
www.ikyu.com/rewrite.config
きっかけ • ある日の会議の雑談 • わたし「そういえばRewriteがバグりやすいんですよねえ」 • CTO「はてなでは rewrite のテスト書いてたよ」 •
http://d.hatena.ne.jp/onishi/20101017/1287277579 • 数日後 • しばやん「テスト用のライブラリ作りました」 • http://blog.shibayan.jp/entry/20160620/1466392651
IIS Express TestKit
IIS Express TestKit • Rewrite Rule のテストが書けるハイパー便利ツール • Outbound Rule
も対応 • OSS • https://github.com/shibayan/iisexpress-testkit
IIS Express TestKit
Project Example
Rewrite Rule Example
Outbound Rule Example
運用してみた
運用してみた • 壊れるのを恐れず、気軽に変更できるようになった • 最高 • CI に Rewrite のユニットテストを追加
• 不正なRewriteがリリースされる事故がなくなった • データセンターからクラウドに移行したときにも活躍 • PaaSに乗せるためアプリを分割したらテストが通らなくなった • 通らなくなったもの=分割してなくなった部分のテスト => Rewriteも分割 • ユニットテストを書いたことで参照されてないルールがあぶり 出された • そしてリファクタリング
参照されてないルール
まとめ • IIS の URL Rewrite もユニットテストが書ける! • URL Rewrite
運用で困っている人は今すぐインストールして書 きましょう! • Install-Package IisExpressTestKit