Tema MağazacılıkBT Yazılım Geliştirme Departmanı
İçerik Static Code Analysis Code Metrics Profiling IntelliTrace
Static Code Analysis Code review, akıl yordamıyla farkedilebilecek hataları  ya da iyileştirmeleri tespit amaçlı yapılır....
Static Code Analysis Visual Studio 2010 üzerinde, bir proje için static code  analysis özelliğini aktif hale getirme Kur...
Static Code Analysis Arka plandaki tüm işi FxCop yapmaktadır. Microsoft tarafından geliştirilmiştir. IDE içerisinde yap...
Static Code Analysis         Sorular???
Code Metrics Yazdığımız kodun yönetilebilirliği hakkında bazı    bilgiler edinmemizi sağlar.   Maintainability Index   ...
Maintainability Index 0 – 10 arası düşük yönetilebilirlik 10 – 20 arası orta yönetilebilirlik 20 – 100 arası yüksek yön...
Cyclomatic Complexity Kodun yapısal karmaşıklığını ifade eder. Program içerisinde oluşan farklı pathlerin  hesaplanması ...
Depth of Inheritance Base class’ı her extend eden seviye için bir artar
Depth of Inheritance Rakam büyüdükçe, anlaşılırlık zorlaşmaktadır. Namespace ve proje bazındaki değer, içerisinde barınd...
Class Coupling Bir sınıfın bağımlı olduğu her sınıf için bir artar
Class Coupling Primitive tipler (int, double vs) ve built-in yapılar  (string, object vs) için hesaplanmaz. İyi dizayn e...
Lines of Code Yaklaşık kod satırı sayısını ifade eder. Kod dosyasındaki sayıyı değil, IL kodu içerisindeki  satır sayısı...
Code Metrics Her bir kod metriği için, statik kod analizi kuralı  mevcuttur. Bu kurallar, proje için aktif hale getiriler...
Code Metrics        Sorular???
Profiling Profiling; bir uygulamanın belli davranışlarının  izlenmesi ve bazı metriklerin toplanması sürecine  verilen is...
Visual Studio Profiler Performance Session Sampling vs Instrumentation Sampling; belli aralıklar ile uzun süre boyunca ...
Profiling Yaklaşımı Hangi tür yaklaşım sergileneceği (sampling vs    instrumentation) ve bu esnada hangi verilerin    top...
Profiling Tipleri Memory profiling Concurrency profiling
Profiling Tipleri Windows uygulamaları ASP.NET Unit Test JavaScript
Dikkat Edilmesi Gerekenler Instrumentation uygulanan projede aynı zamanda    code coverage açık olmamalı.   ASP.NET 2.0 ...
Profiling            Sorular???
IntelliTrace Test esnasında karşılaşılan bir hatanın, developer  ortamında tekrar üretilmesi mümkün olmayabilir. Genelli...
IntelliTrace Visual Studio debugging esnasında, breakpoint  koyarız, adım adım ilerleyerek değişkenlerin  durumunu ve uyg...
IntelliTrace IntelliTrace, çalışan uygulama hakkında arka planda  bazı veriler toplar. Bu veriler, uygulamanın çalışma e...
IntelliTrace Production ortamlarında KULLANILAMAZ. Sistem izleme amaçlı KULLANILAMAZ.
IntelliTrace          Sorular???
Upcoming SlideShare
Loading in …5
×

Visual Studio Developer Tools

630 views

Published on

Visual Studio Developer Tools eğitiminden sonra, şirket içerisinde yaptığımız özet sunum

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
630
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Visual Studio Developer Tools

  1. 1. Tema MağazacılıkBT Yazılım Geliştirme Departmanı
  2. 2. İçerik Static Code Analysis Code Metrics Profiling IntelliTrace
  3. 3. Static Code Analysis Code review, akıl yordamıyla farkedilebilecek hataları ya da iyileştirmeleri tespit amaçlı yapılır. Static code analysis, standartlara oturtulabilecek durumları tespit etmeye ve ileride karşılaşacağımız problemlerin sayısını düşürmeye yarar. Static code analysis, otomatikleştirilebilir.
  4. 4. Static Code Analysis Visual Studio 2010 üzerinde, bir proje için static code analysis özelliğini aktif hale getirme Kural setlerinin tanımlanması ya da kendi kural setimizin oluşturulması Proje üzerinde static code analysis çalıştırılması ve sonuçların incelenmesi Uyarı ya da hatanın giderilmesi
  5. 5. Static Code Analysis Arka plandaki tüm işi FxCop yapmaktadır. Microsoft tarafından geliştirilmiştir. IDE içerisinde yapılabilen herşey ve daha fazlası FxCop ile command line üzerinden yapılabilir. Reflection yerine, Introspection tekniğini kullanmaktadır. Introspection engine, mevcut kurallar ve custom rule geliştirmeye yarayan tüm araçlar [VS]/Team Tools/Static Analysis Tools/FxCop klasörü içerisinde bulunmaktadır.
  6. 6. Static Code Analysis Sorular???
  7. 7. Code Metrics Yazdığımız kodun yönetilebilirliği hakkında bazı bilgiler edinmemizi sağlar. Maintainability Index Cyclomatic Complexity Class Coupling Lines of Code Depth of Inheritance (*) Otomatik üretilen kodlar bu değerlendirme dışında kalır.
  8. 8. Maintainability Index 0 – 10 arası düşük yönetilebilirlik 10 – 20 arası orta yönetilebilirlik 20 – 100 arası yüksek yönetilebilirlik
  9. 9. Cyclomatic Complexity Kodun yapısal karmaşıklığını ifade eder. Program içerisinde oluşan farklı pathlerin hesaplanması ile bulunur. if-else, switch, while, for, foreach gibi kontrol statementların her birisinin içerisindeki her mantıksal kontrol, +1 karmaşıklık ifade eder. Kod ne kadar karmaşık ise, o kod için yazılacak unit test sayısı da o kadar fazla olmalıdır.
  10. 10. Depth of Inheritance Base class’ı her extend eden seviye için bir artar
  11. 11. Depth of Inheritance Rakam büyüdükçe, anlaşılırlık zorlaşmaktadır. Namespace ve proje bazındaki değer, içerisinde barındırdığı en derin hiyerarşiye eşittir.
  12. 12. Class Coupling Bir sınıfın bağımlı olduğu her sınıf için bir artar
  13. 13. Class Coupling Primitive tipler (int, double vs) ve built-in yapılar (string, object vs) için hesaplanmaz. İyi dizayn edilmiş bir yazılım, düşük class coupling değerlerine sahip olmalıdır. Yüksek class coupling değerlerine sahip yazılımı, içerdiği bağımlılıklardan dolayı başka yerlerde kullanmak çok zordur.
  14. 14. Lines of Code Yaklaşık kod satırı sayısını ifade eder. Kod dosyasındaki sayıyı değil, IL kodu içerisindeki satır sayısına göre hesaplanır. Boşluk, comment, parantez, tanımlama (değişken, method, namespace) bu sayıya dahil edilmez. Bir sınıf ya da method üzerinde kod satırının yüksek olması, o parçanın çok fazla iş yaptığına ve bölünmesi gerektiğine işaret eder.
  15. 15. Code Metrics Her bir kod metriği için, statik kod analizi kuralı mevcuttur. Bu kurallar, proje için aktif hale getirilerek her build esnasında kontrol edilmesi sağlanabilir.
  16. 16. Code Metrics Sorular???
  17. 17. Profiling Profiling; bir uygulamanın belli davranışlarının izlenmesi ve bazı metriklerin toplanması sürecine verilen isimdir. Genellikle, yavaş çalışan ya da yüksek bellek tüketen uygulamaları incelemek için kullanılır. Genellikle hotspotları tespit etme amacıyla kullanılır. Hotspot; bir uygulamada uzun süre ya da sıklıkla çalışan kısımlara verilen isimdir.
  18. 18. Visual Studio Profiler Performance Session Sampling vs Instrumentation Sampling; belli aralıklar ile uzun süre boyunca rastgele veri toplama ve bu veriyi inceleme suretiyle yapılan profiling türüdür. Instrumentation; performans problemi yaşanan hedef noktalar için kısa süreli, fakat tüm veriyi toplama ve inceleme türüdür. Instrumentation esnasında, hedef assemblyler üzerinde değişiklik yapılır.
  19. 19. Profiling Yaklaşımı Hangi tür yaklaşım sergileneceği (sampling vs instrumentation) ve bu esnada hangi verilerin toplanacağı belirlenir. Uygulama çalıştırılarak veri toplanır Toplanan veri analiz edilir Tespit edilen noktalardaki problemler giderilir. Değiştirilen parça için tekrar profiling çalıştırılır ve değişiklik olup olmadığı tespit edilir. Toplanan veriler karşılaştırılarak performans artış raporu hazırlanır.
  20. 20. Profiling Tipleri Memory profiling Concurrency profiling
  21. 21. Profiling Tipleri Windows uygulamaları ASP.NET Unit Test JavaScript
  22. 22. Dikkat Edilmesi Gerekenler Instrumentation uygulanan projede aynı zamanda code coverage açık olmamalı. ASP.NET 2.0 ve üzerinde profiling çalıştırılabilir. Remote makinalar üzerinde profiling çalıştırılamaz. Profile edilecek uygulama ile aynı yerde çalıştırılması gerekir. Profile edilecek makinada Visual Studio kurulmak istenmiyor ise, command line araçları kullanılabilir. Performance session, başka bir ortamda çalıştırılamaz. CPU ve ortam spesifik değerler barındırmaktadır.
  23. 23. Profiling Sorular???
  24. 24. IntelliTrace Test esnasında karşılaşılan bir hatanın, developer ortamında tekrar üretilmesi mümkün olmayabilir. Genellikle developer, «bu benim makinamda çalışıyor» diyerek bu bugı sonlandırır. (no repro) Eğer hata hakkında detaylı bir log bulunmuyor ise, bu hata sonsuza kadar tester-developer arasında gidip gelebilir.
  25. 25. IntelliTrace Visual Studio debugging esnasında, breakpoint koyarız, adım adım ilerleyerek değişkenlerin durumunu ve uygulamanın davranışını izleriz. Hatayı yakaladığımız, fakat yanlışlıkla es geçtiğimiz zamanda, geri dönmek mümkün olmayabilir, bu durumda debugging işlemini en baştan yapmak zorunda kalırız.
  26. 26. IntelliTrace IntelliTrace, çalışan uygulama hakkında arka planda bazı veriler toplar. Bu veriler, uygulamanın çalışma esnasında hangi veriler ile hangi pathlerden geçtiği gibi bir çok bilgi barındırabilir. Böylelikle, geçmişte yaşanan bir hatayı şu anda, ileri- geri oynatarak debug edebiliriz. Normal debug esnasında erişemediğimiz noktalar hakkında da bilgi toplar. (file operasyonları, registry operasyonları vs)
  27. 27. IntelliTrace Production ortamlarında KULLANILAMAZ. Sistem izleme amaçlı KULLANILAMAZ.
  28. 28. IntelliTrace Sorular???

×