Bugünkü yazımız statik kod analizi yapan sonarqube alt
yapısına bağlanan ve benzer kuralları işleten bir araç olan SonarLint'i
inceleyeceğiz. SonarLint microsoft visual studio üzerine kurulan bir extention olup bunu rahatlıkla
microsoft visual studio içinde kurabilir veya
buradan da indirip kurabilirsiniz. Resmi sitesinde C# ile ilgili yaklaşık
390 kural görünmektedir, fakat biz sadece kendi karşılaştıklarımızı ele
alacağız. Bunların bazılarını çözmek biraz daha kolay iken bazılarını çözmek ise biraz
vakit alabiliyor. Tüm kurallar için ise
buraya göz
gezdirebilirsiniz. Karşılaştığım kuralları hangi kritere göre sıralamak
konusunda çok düşündüm. En sonunda hata kodlarını küçükten büyüğe sıralamaya
karar verdim. Bu yazıyı güncelle tutmaya özen gösterip karşılaştığımız hataları eklemeye devam edeceğiz.
csharp etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
csharp etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
21 Haziran 2020 Pazar
Sonarlint ile Refactoring
S.A. Arkadaşlar,
Etiketler:
C#,
clean code,
csharp,
performance,
sonarqube,
temiz kod
18 Mayıs 2020 Pazartesi
Integration Test - (.Net Core - xUnit - Web Application Factory)
S.A. Arkadaşlar,
Bugün entegrasyon(integration) test konusuna odaklanacağız. Entegrasyon test, birim (unit) testten farklı olarak her bir metodu test etmekten ziyade metodların birbiriyle entegre çalışıp çalışmadığını kontrol eder. Örneğin, birim test yazarken bazı mock'lama objeleri kullanırız. Veri tabanını mock'layıp oradan doğru sonuç dönmüş gibi yaparız, ama entegrasyon test ile "mış" gibi yaptığımız şeyleri gerçekten yapıyoruz. Bunun için de alt yapımızı ayağa kaldırmamız gerekecek. Bunu nasıl mı yapacağız. Buyurun
Bugün entegrasyon(integration) test konusuna odaklanacağız. Entegrasyon test, birim (unit) testten farklı olarak her bir metodu test etmekten ziyade metodların birbiriyle entegre çalışıp çalışmadığını kontrol eder. Örneğin, birim test yazarken bazı mock'lama objeleri kullanırız. Veri tabanını mock'layıp oradan doğru sonuç dönmüş gibi yaparız, ama entegrasyon test ile "mış" gibi yaptığımız şeyleri gerçekten yapıyoruz. Bunun için de alt yapımızı ayağa kaldırmamız gerekecek. Bunu nasıl mı yapacağız. Buyurun
16 Nisan 2020 Perşembe
Health Check and Monitoring - .Net Core ( Servislerin Durumunu Kontrol Etme ve Görüntüleme)
S.A. Arkadaşlar,
Bugün .net core 2.2 ile gelen ve 3.1 ile olgunlaşan bir kavramı ele alacağız. Dağıtık bir yapınız var ve bunun içinde onlarca belki yüzlerce servis bulunmaktadır. Her bir servis kendi içinde çalışacağı için de hepsini kontrol etmek zor belki imkansız olacaktır. İşte bu ihtiyaçtan meydana çıkmış ve tüm servislerin durumlarını kontrol eden yapıya Health Check denmektedir. Bu yapıyı kullanıcı ara yüzü ile birlikte ayağa kaldıracağız. Hazırsak başlayalım.
Bugün .net core 2.2 ile gelen ve 3.1 ile olgunlaşan bir kavramı ele alacağız. Dağıtık bir yapınız var ve bunun içinde onlarca belki yüzlerce servis bulunmaktadır. Her bir servis kendi içinde çalışacağı için de hepsini kontrol etmek zor belki imkansız olacaktır. İşte bu ihtiyaçtan meydana çıkmış ve tüm servislerin durumlarını kontrol eden yapıya Health Check denmektedir. Bu yapıyı kullanıcı ara yüzü ile birlikte ayağa kaldıracağız. Hazırsak başlayalım.
11 Nisan 2020 Cumartesi
Birim(Unit) Test ile Veri Kümeleri - xUnit (Inline - Member - Class Data)
S.A. Arkadaşlar,
Bugün unit/xunit (birim) test ile bir konuya odaklanmak istedim. Bu konunun amacı, birim test nedir? Neden yazılır? Faydaları nelerdir? vb. gibi bilgiler olmayacak. Odaklanacağımız konu birim testler de çoğu zaman olması gereken girdi değerleri üzerine yoğunlaşacağız. Bazen bir kereye mahsus bir sabit değer, bazen de birden fazla ve farklı değerler girdi ihtiyacı olabilmektedir. Şimdi adım adım olması gerekene doğru ilerlemeye çalışalım, buyurun birlikte ilerleyelim..
Bugün unit/xunit (birim) test ile bir konuya odaklanmak istedim. Bu konunun amacı, birim test nedir? Neden yazılır? Faydaları nelerdir? vb. gibi bilgiler olmayacak. Odaklanacağımız konu birim testler de çoğu zaman olması gereken girdi değerleri üzerine yoğunlaşacağız. Bazen bir kereye mahsus bir sabit değer, bazen de birden fazla ve farklı değerler girdi ihtiyacı olabilmektedir. Şimdi adım adım olması gerekene doğru ilerlemeye çalışalım, buyurun birlikte ilerleyelim..
Etiketler:
C#,
ClassData,
csharp,
Fact,
InlineData,
MemberData,
programming,
Theory,
unit test,
xunit
16 Şubat 2020 Pazar
IQueryable - IEnumerable
S.A. Arkadaşlar,
Bugün birbirine benzeyen yapılarından IQueryable ve IEnumerable kavramlarını incelemeye çalışacağız. İki yapı aynı gibi dursa da birbirinden farkları var. Belki de en bariz olan farkı Burak Selim Hoca burada nokta atışı ile anlatmış, fakat ben genel olarak konuyu ele alıp bulduğum farkları derlemeye çalışacağım.
Bugün birbirine benzeyen yapılarından IQueryable ve IEnumerable kavramlarını incelemeye çalışacağız. İki yapı aynı gibi dursa da birbirinden farkları var. Belki de en bariz olan farkı Burak Selim Hoca burada nokta atışı ile anlatmış, fakat ben genel olarak konuyu ele alıp bulduğum farkları derlemeye çalışacağım.
6 Şubat 2020 Perşembe
Operatörlere Aşırı Yükleme (implicit - explicit)
S.A. Arkadaşlar,
Bugün operatörlere aşırı yükleme işlemine göz atacağız. Metodlara aşırı yükleme ile benzer mantıkta olsa da farklı işlemlerdir. Genel kullanımı +, - gibi operatörlere aşırı yükleme yapılır. Normal koşullarda 2 nesne toplanamaz, fakat biz operatörlere aşırı yükleme yaparak artık bu operatörleri istediğimiz gibi kullanabiliyoruz. Burada implicit and explicit diye 2 tür dönüştürme vardır. Implicit aritmetik işlemleri içerir ve veri kaybı olmadığından cast işlemi de gerektirmez. Explicit ise cast işlemi gerektirir, veri kaybı olma ihtimali de vardır.
Bugün operatörlere aşırı yükleme işlemine göz atacağız. Metodlara aşırı yükleme ile benzer mantıkta olsa da farklı işlemlerdir. Genel kullanımı +, - gibi operatörlere aşırı yükleme yapılır. Normal koşullarda 2 nesne toplanamaz, fakat biz operatörlere aşırı yükleme yaparak artık bu operatörleri istediğimiz gibi kullanabiliyoruz. Burada implicit and explicit diye 2 tür dönüştürme vardır. Implicit aritmetik işlemleri içerir ve veri kaybı olmadığından cast işlemi de gerektirmez. Explicit ise cast işlemi gerektirir, veri kaybı olma ihtimali de vardır.
Kaydol:
Kayıtlar (Atom)