Kod Kalitesini Arttırmak için Bedava Araçlar (C#)

Yazılım geliştiriciler olarak sorumluluklarımızdan birisi de yazdığımız kodların kaliteli olması, solid ve dry (don’t repeat yourself: kod tekrarı yapma) gibi yazılım geliştirme prensiplerine uygun olması, okunaklılık (indentation, boşluk bırakma, hizalama, kod yazım stilleri) gibi özellikleri sağlamasıdır. Bu amaçla yazılım ekiplerinde çeşitli yöntemler denenmektedir. Eşli programlama (pair programming) ve Kod gözden geçirme (Code Review) gibi yöntemler yazılım ekipleri tarafından kullanılmaktadır. Kod gözden geçirme’nin tamamen yerini almasa da statik kod analizi yapan araçlar ile de kodlarımızda önemli iyileştirmeler yapabiliriz.

Bu yazıda kendi yazılım serüvenimde halihazırda kullandığım ya da geçmişte kullanmış olduğum ve faydasını gördüğüm araçlar hakkında tanıtıcı bilgiler olacak.

Code Cracker

Codecracker, c# veya visual basic kodunu analiz eden, kod düzenlemesi (refactoring) öneren bir analiz kütüphanesidir. Kodu analiz ederken microsoft’un üretmiş olduğu roslyn apilerini kullanmaktadır.

Yakaladığı tüm hata mesajlarını ve refactoring özelliklerini http://code-cracker.github.io/diagnostics.html sayfasından inceleyebilirsiniz.

Çok başarılı bir araç olduğunu söyleyebilirim.

http://code-cracker.github.io/

https://github.com/code-cracker/code-cracker

sonarlint

İkinci olarak bahsetmek istediğim kütüphane sonarlint kütüphanesidir. Bu aracı da severek kullandığımı ve faydalandığımı söyleyebilirim. Farklı ide’ler için uzantı olarak kurulabilir. Visual Studio, IntelliJ IDEA, Eclipse desteklediği ide’lerden bazılarıdır.

Diğer bir özelliği de jenkins gibi sürekli entegrasyon (continuous integration) araçlarına plugin olarak ekleyip commit edilen kodların analizini otomatik olarak yapabilmesidir.

C# için hangi kurallara göre kodu analiz edeceğini aşağıdaki linkten inceleyebilirsiniz.

https://rules.sonarsource.com/csharp

Resmi sitesi ve bağlantı adresleri:

https://www.sonarlint.org/

https://github.com/SonarSource/sonar-csharp

C# Derleyicisi

Unutulmaması gereken en önemli araç ise C# derleyicisinin kendi verdiği uyarı mesajlarıdır. Bedava ve hiç bir kurulum gerektirmiyor 🙂

Visual studio içerisinden kodu derlediğinizde yine roslyn apilerini kullanarak, statik kod analizi yapıyor.

Belli başlı derleyici uyarılarını ve hata kodlarını aşağıda verdiğim linklere bakarak inceleyebilirsiniz.

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/index

Github üzerinde hata kodlarının bulunduğu başka bir kaynak:

https://github.com/thomaslevesque/GenerateCSharpErrors/blob/master/CSharpErrorsAndWarnings.md

C# derleyici roslyn apilerini kullanarak kod analizi yapıyor. İstersek Visual Studio içerisinden ilgili kuralların listesini görüp, üzerinde değişiklikler yapabilir ya da yeni analyzer ekleyebiliriz. Solution Explorer içerisinden ilgili projenin references kısmında Analyzers’a sağ tıklayarak üzerinde işlem yapabiliriz.

Open Active Rule Set komutuna tıklarsanız, geçerli olan kuralları görebilirsiniz:

 

Roslyn compiler platformu, açık kaynak kodlu bir c#/vb derleyicisidir ve kod analizi yapmak için bir api sunmaktadır. Bu api’yi kullanarak statik kod analiz araçları yazılabilir.

Daha detaylı bilgi için sayfasını ziyaret edebilirsiniz:

https://github.com/dotnet/roslyn

Kod Stili ve Okunaklılık için CodeMaid

Açık kaynak kodlu bir kütüphanedir. Kod Okunurluğunun arttırılması için kodların hizalanması, boşluk karakterlerinin ayarlanması, gereksiz satırların silinmesi gibi işleri otomatik olarak yapar. Visual studio içerisindeki tanımlı stillere göre kod üzerinde düzenleme yapar.

Ücretli Araçlar

Çok kaliteli ücretli araçlardan da bahsetmekte fayda var. Bütçeniz el veriyorsa, kesinlikle paranızın karşılığını verecek araçlar, yazılımın kalitesini önemli oranda arttıracaktır. İlk bahsetmemiz gereken araç tabii ki resharper olacaktır:

Resharper

Belli bir süre visual studio kullanmış birisi, mutlaka resharper’ı kullanmış ya da duymuştur. Parasını sonuna kadar hak ettiğini söyleyebiliriz. IntelliJ IDEA gibi javacıların çok iyi bildiği bir ide’yi geliştiren jetbrain firmasının bir ürünüdür. Tek handikapı büyük projelerde, visual studio üzerinde bir performans yükü getirmesi.

Temel olarak üç konuda bize yardımcı olmaktadır. Kod analiz, kod düzenleme (refactoring) ve kod üzerinde dolaşma (örneğin kod tanımından implementasyona veya tersini kolayca yapabilme).

https://www.jetbrains.com/resharper/

NDepend

Bir diğer kaliteli statik kod aracı da ndepend ürünüdür. C# linq aracılığıyla kurallar sorgulanabiliyor, kolay bir şekilde yeni kural eklenip müdahale edilebiliyor. Bu yönüyle çok esnek bir yapı sunuyor. Diğer araçlarla benzer şekilde continuous integration (teamcity, sonarqube vs… ) ile entegre çalışabiliyor. Belli başlı özellikleri hızlı olması ve kod hakkında raporlama yapabilmesidir.

https://www.ndepend.com/

Sonuç

Her sağduyulu geliştiricinin düz mantık ile zaten yapması gereken, kod tekrarı yapmama (dry), gereksiz fonksiyonlar ve kodlar eklememe (yagni), gevşek bağlı modüller geliştirme gibi temel yazılım prensiplerine uygun davranarak pek çok hatadan kendimizi koruyabiliriz. Fakat gözümüzden kaçan pek çok hatayı otomatik olarak bulan bu tür ücretsiz araçları kullanmamakta büyük bir ihmalkarlık ve eksiklik olur diye düşünüyorum.

 

 

 

 

 

 

 

 

 

 

 

 

Yorum bırakın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Scroll to Top