irfo
Moderatör
- Katılım
- 7 Ocak 2026
- Mesajlar
- 290
- Tepkime puanı
- 2
- Puanları
- 18
Yazılım geliştirirken kodun çalışması yeterli değildir; kodun aynı zamanda sürdürülebilir, güvenli ve temiz olması gerekir. SonarQube, kodunuzdaki hataları (bugs), güvenlik açıklarını (vulnerabilities) ve "kod kokularını" (code smells) otomatik olarak tespit eden dünyaca ünlü bir platformdur.
Bu rehberde, SonarQube'u Docker kullanarak nasıl hızlıca kuracağınızı ve projelerinizi nasıl taratacağınızı inceleyeceğiz.
SonarQube; bir uygulama sunucusu ve bir veritabanı (PostgreSQL) ile çalışır. En sağlıklı kurulum yöntemi Docker Compose kullanmaktır.
1. docker-compose.yml dosyasını oluşturun:
2. Sistemi Başlatın: Terminalde docker-compose up -d komutunu çalıştırın. Birkaç dakika sonra adresinden panele erişebilirsiniz. (Varsayılan kullanıcı adı/şifre: admin / admin)
Kurulum sonrası panele giriş yapıp yeni bir proje oluşturduğunuzda, Sonar size bir "Token" ve bir tarama komutu verecektir. PHP veya XenForo projenizi taramak için kök dizinde şu komutu çalıştırabilirsiniz:
Tarama bittiğinde panelde karşınıza şu metrikler çıkacaktır:
Eğer forumunuz için eklenti geliştiriyorsanız, SonarQube size şunları söyler:
SonarQube, sadece bir tarama aracı değil, aynı zamanda yazılımcı için bir "öğretmen" gibidir. Hataları nedenleriyle birlikte açıklar ve düzeltme önerileri sunar. Temiz ve güvenli kod yazmak bir tercih değil, profesyonel bir standart olmalıdır.
Bu rehberde, SonarQube'u Docker kullanarak nasıl hızlıca kuracağınızı ve projelerinizi nasıl taratacağınızı inceleyeceğiz.
SonarQube’un Temel Özellikleri
- [] Çoklu Dil Desteği: PHP, Java, Python, JavaScript, C# ve daha onlarca dili destekler. [] Quality Gates (Kalite Kapıları): Belirlediğiniz kriterleri (Örn: %80 test coverage altı) geçemeyen kodun canlıya çıkmasını engeller. [] Teknik Borç Analizi: Kodun düzeltilmesi için gereken tahmini süreyi hesaplar. [] CI/CD Entegrasyonu: Jenkins, GitLab CI ve GitHub Actions ile tam uyumlu çalışır.
Docker ile Hızlı SonarQube Kurulumu
SonarQube; bir uygulama sunucusu ve bir veritabanı (PostgreSQL) ile çalışır. En sağlıklı kurulum yöntemi Docker Compose kullanmaktır.
1. docker-compose.yml dosyasını oluşturun:
YAML:
version: '3' services: sonarqube: image: sonarqube:community ports: - "9000:9000" networks: - sonarnet environment: - SONAR_JDBC_URL=jdbc:postgresql://db:5432/sonar - SONAR_JDBC_USERNAME=sonar - SONAR_JDBC_PASSWORD=sonar_password
db: image: postgres:12 networks: - sonarnet environment: - POSTGRES_USER=sonar - POSTGRES_PASSWORD=sonar_password - POSTGRES_DB=sonar
networks: sonarnet:
2. Sistemi Başlatın: Terminalde docker-compose up -d komutunu çalıştırın. Birkaç dakika sonra adresinden panele erişebilirsiniz. (Varsayılan kullanıcı adı/şifre: admin / admin)
Projeyi Taramaya Başlamak (Sonar Scanner)
Kurulum sonrası panele giriş yapıp yeni bir proje oluşturduğunuzda, Sonar size bir "Token" ve bir tarama komutu verecektir. PHP veya XenForo projenizi taramak için kök dizinde şu komutu çalıştırabilirsiniz:
Bash:
docker run
--rm
-e SONAR_HOST_URL="http://ip-adresiniz:9000"
-e SONAR_SCANNER_OPTS="-Dsonar.projectKey=proje_adiniz"
-e SONAR_TOKEN="sonar_token_buraya"
-v "$(pwd):/usr/src"
sonarsource/sonar-scanner-cli
SonarQube Analiz Sonuçlarını Anlamak
Tarama bittiğinde panelde karşınıza şu metrikler çıkacaktır:
| Metrik | Açıklama |
|---|---|
| Bugs (Hatalar) | Kodun çalışma anında patlamasına neden olabilecek hatalar. |
| Vulnerabilities | SQL Injection, XSS gibi doğrudan güvenlik açıkları. |
| Code Smells | Kodun okunabilirliğini düşüren "kötü kokular". |
| Duplications | Kopyala-yapıştır yapılmış, tekrar eden kod blokları. |
XenForo Eklenti Geliştiricileri İçin Neden Önemli?
Eğer forumunuz için eklenti geliştiriyorsanız, SonarQube size şunları söyler:
- [] Kullanılmayan değişkenleri tespit eder (Memory tasarrufu). [] SQL sorgularındaki hatalı yapıları bulur (Veritabanı güvenliği).
- Karmaşıklığı (Complexity) ölçer; çok uzun ve karmaşık fonksiyonları parçalamanız için sizi uyarır.
Sonuç
SonarQube, sadece bir tarama aracı değil, aynı zamanda yazılımcı için bir "öğretmen" gibidir. Hataları nedenleriyle birlikte açıklar ve düzeltme önerileri sunar. Temiz ve güvenli kod yazmak bir tercih değil, profesyonel bir standart olmalıdır.