9 Aralık 2017 Cumartesi

Statik Kod Analizi ve SonarQube

Merhabalar. Önceki yazılarımızda "clean code" mevzusundan çokça bahsettik. Peki clean code pratiklerini nasıl öğreneceğiz? Kodumuzun ne kadar clean olduğunu nereden bileceğiz? Her zaman yanımızda kodumuzu inceleyip yol gösterecek, tenkit edecek bir üstad bulabilecek miyiz? Bu yazımızda bu sorulara cevap arayacağız.

Statik Kod Analizi

Yazılan kodların, önceden belirlenmiş kalite kriterlerine uyup uymadığını kodları çalıştırmadan analiz etmek şeklinde tanımlayabiliriz.
  • Hatalı kodların bulunması, 
  • Test edilmemiş kodların belirlenmesi, 
  • Tekrar eden kod bloklarının tespit edilmesi, 
  • Güvenlik açığına sebep olabilecek kodların yakalanması
  • Kötü kokan kodların raporlanması
bu analiz sonucu gerçekleşebilmektedir. Statik kod analizi, yazılım araçlarıyla otomatize edilebilmektedir. İnsanlar tarafından gözle yapılan analize kod gözden geçirme (code review,  code inspection) denilmektedir. Statik kod analizi, kod gözden geçirmenin yerini tutmasa da, birçok hatanın daha kod gözden geçirmeye gitmeden bulunmasını ve düzeltilmesini sağlamaktadır.

SonarQube

 

Statik kod analiz araçlarından günümüzde en popülerlerinde SonarQube'den bahsedelim. Standart statik kod analizi raporlarının yanında;
  • 20'den fazla programlama dilini analiz edebilmesi
  • Kendi kurallarınızı tanımlamaya izin vermesi
  • Sürekli entegrasyon araçlarıyla entegre çalışabilmesi
  • Tahmini teknik borç (technical debt) süresini raporlayabilmesi
gibi özellikleri sayesinde kaliteli yazılım geliştirme süreçlerinin vazgeçilmezi olmaya doğru gidiyor.

Bir Eğitimci Olarak SonarQube

SonarQube analiz raporları, raporlanan her hatada, çiğnenen kuralla ilgili detay bilgileri örnekleriyle birlikte sunmasından dolayı tecrübesiz yazılım geliştiriciler için birer eğitim materyali niteliği taşıyor.

Usta Bir Çift Göz

Ayrıca geliştiricinin kolayca gözünden kaçan kodsal hataları bulup gözünüze soktuğunda, kendisine duyduğunuz minnettarlığı dile dökmekte zorlanabiliyorsunuz. 7 / 24 gözü kodunuzda olan üstad bir yazılımcıyı her zaman yanınızda bulamayabilirsiniz. SonarQube sizde bu hissi uyandırabiliyor.


Sürekli Entegrasyonda Statik Kod Analizinin Yeri

Statik kod analizini sürekli entegrasyon sürecinin bir parçası haline getirerek projenizin kalitesine büyük katkı sağlayabilirsiniz. Her gün akşam üretilecek kod analiz raporlarıyla geliştiriciler yazdıkları koddaki hataları en kısa sürede farkedip düzeltme imkanı bulabilecekler. Yeterince çılgın geliştiriciler her committe statik kod analizi yaptırıp anlık olarak kodlarının kalitesini takip etmek isteyebilirler. Kod kalitesini sayısal metriklerle ölçülebilir hale getirdiğinden, süreç içerisinde kodun iyiye mi yoksa kötüye mi gittiğini tespit edebilirsiniz.

Sonuç olarak, evde geliştirdiğiniz hobi projelerden, dev kurumsal projelere kadar heryerde kullanabileceğiniz SonarQube ile projelerinizin daha az bug'lı, temiz geliştirilmesini sağlayabilir, her yeni hatada yeni birşeyler öğrenme imkanı bulabilirsiniz.




SSHJ ile Raspberry'de Uzaktan Python Çalıştırmak

Merhabalar, Bu yazımızda, Java ile uzaktaki bir makineye programatik olarak SSH ile bağlanıp Python kod çalıştırmayı göreceğiz. Örnek olarak...