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-unit-test
Search
minato128
October 07, 2017
Programming
1
690
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
Azure Monitoring with Datadog Part 1
minato128
0
100
新メール配信基盤への移行 /ikyu-mail-platform
minato128
7
5.1k
デプロイ完全自動化から1年で起きたこと /ikyu-deploy
minato128
2
4.5k
Other Decks in Programming
See All in Programming
CA.swift19 恋するAIアプリ開発の裏側
oskmr
0
360
Netty Chicago Java User Group 2024-04-17
sullis
0
170
Milestoner
bkuhlmann
1
410
try! Swift Tokyo 初参加報告LT
hinakko2
0
220
MetricKitで予期せぬ終了を検知する話 / Detect unexpected termination with MetricKit
nekowen
1
180
SIMD Parallel Programming with the Vector API
josepaumard
0
170
Behind VS Code Extensions for JavaScript / TypeScript Linnting and Formatting
unvalley
5
910
Code Reviews
bkuhlmann
4
890
AWS CDKコントリビュートTIPS / aws-cdk-contribution-tips
gotok365
2
170
Azure OpenAI Serviceのプロンプトエンジニアリング入門
tomokusaba
3
700
大規模UIKitベースアプリへのTCAの段階的導入/gradual-adoption-of-tca-in-a-large-scale-uikit-based-app
takehilo
1
170
Goのmultiple errorsについて (2024年4月版)
syumai
3
700
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
216
8.6k
Web development in the modern age
philhawksworth
202
10k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
9
8.3k
What's new in Ruby 2.0
geeforr
337
31k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
357
22k
BBQ
matthewcrist
80
8.8k
No one is an island. Learnings from fostering a developers community.
thoeni
16
2.1k
Writing Fast Ruby
sferik
621
60k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
2
1.3k
Designing on Purpose - Digital PM Summit 2013
jponch
110
6.5k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
322
20k
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