More Related Content
PPT
PDF
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp PDF
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア PDF
PDF
開発者による現実的な自動化テスト及びRubyのテストツールについて PDF
テストエンジニアの品格 #automatornight PDF
PDF
What's hot
PDF
速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて PDF
PPTX
PDF
PDF
PPTX
DevLove 甲子園2014 インクリメンタルに設計・テストする PDF
PDF
PPTX
メタな感じのプログラミング(プロ生 + わんくま 071118) 20130603 aspnet勉強会 実践的debugging
- 1.
- 2.
Who...?
• My nameis...
• @kumake1004 / kumake
• はてなだけ kendik
• My work is...
• 都内某ベンチャー勤務
• Pro Exceler
• 動作検証、調査を行ったり
• 調整(要件、人、スケジュール)に奔走したり
• ごく稀にプログラミング
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
こんな汚いコードに
public ActionResult HogeAction(intid)
{
var sw = Stopwatch.StartNew();
var model = _repo.Find(id);
sw.Stop();
Console.WriteLine("Elapsed1 > " + sw.ElapsedMilliseconds);
sw.Restart();
if(model.Hage())
{
var sw2 = Stopwatch.StartNew();
model.Something = "hogehoge";
_repo.Save();
sw2.Stop();
Console.WriteLine("Elapsed2 > " + sw2.ElapsedMilliseconds);
}
sw.Stop();
Console.WriteLine("Elapsed1 > " + sw.ElapsedMilliseconds);
sw.Restart();
return View(model);
}
- 12.
- 15.
- 16.
でも実は...
• 計測箇所にも修正が必要
using StackExchange.Profiling;
...
//計測用オブジェクトを作って
var profiler = MiniProfiler.Current;
// 計測したい処理を using 内に
using (profiler.Step("Set page title"))
{
ViewBag.Title = "Home Page";
}
using (profiler.Step("Doing complex stuff"))
{
using (profiler.Step("Step A"))
{
Thread.Sleep(100);
}
using (profiler.Step("Step B"))
{
Thread.Sleep(250);
}
}
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
改めて Glimpse
• OSSの Debug / Diagnostic ツール
• Nuget からインストール可能
• PM> Install-Package Glimpse
• プラグインによってデバッグ出来る内容が
異なる
• プラグインも Nuget からインストールで簡単
• e.g. Glimpse.AspNet, Glimpse.Mvc4,
Glimpse.EF6, Glimpse.SignalR ...
- 33.
- 34.
Glimpse でどうなる?
• コレ一つでほとんどのケースをデバッグ可
•Entity Framework のクエリ / duration 確認可能
• アクションメソッドの duration 確認可能
• Routing Resolution も確認可能
• モデルバインディングも確認可能
• リモート環境のデバッグが出来る
• 他のデバッグツールが不要
• ツールは尐ない方が良いよね!
• デバッグノウハウも共有
• 実装への影響もなし
• Web.config への修正だけで OK
- 35.
DEMO
• Glimpse のインストール
•Glimpse デバッグ画面の確認
• いくつかの機能を実際に確認
• Configuration
• Session
• Model Binding
• Ajax
• Trace
• Execution
• Entity Framework SQL
• PM> Install-Package Glimpse.EF5
• Web.config の修正
- 36.
- 37.