Röportajlar
Peter McKee, Sonar’da Geliştirici İlişkileri Başkanı – Röportaj Serisi

Peter McKee, Sonar platformunda Geliştirici İlişkileri Başkanı’dır. Sonar, kötü kodun trilyon dolarlık zorluğunu çözen bir platformdur. Sonar, geliştiricilere ve organizasyonlara sistematik olarak Temiz Kod durumuna ulaşmalarını sağlar, böylece tüm kod geliştirme ve üretim için uygun hale gelir. Sonar’ın Temiz Kod Yazma metodolojisini uygulayarak, organizasyonlar riski en aza indirir, teknik borçları azaltır ve yazılımlarından öngörülebilir ve sürdürülebilir bir şekilde daha fazla değer elde eder.
İlk olarak sizi bilgisayar bilimine neler çekti?
Bilgisayarlarla genç yaşta ilgilenmeye başladım. Başka bir kariyer yolu izlerken bile sürekli olarak bilgisayarlara ve programlamaya çekildim. Bir noktada, babam Virginia’da bir çelik şirketi işletiyordu ve danışmanlık grubunu kaybetmişlerdi. Ben daha önce programlama öğrenmiştim, bu yüzden bana sistemler inşa etmeleri için davet etti. İlk başta %100 ne yaptığımı bilmiyordum, ancak kitaplar ve iş başında öğrenerek tamamen kendi kendime öğrendim. Bu, kodlama ve bilgisayar bilimine olan ilgimi daha da artırdı ve bilgisayar bilimine olan ilgimi pekiştirdi.
Temiz Kod’un ne olduğunu ve neden bu kadar önemli olduğunu açıklar mısınız?
Yıllarca önce söylenen bir söz var: “Yazılım dünyayı yiyecek.” ve şimdi dünyayı yazılımın inşa ettiği söyleyebiliriz. İyi bir yazılımın temelinde kaliteli kod yatmaktadır, çünkü kod tüm yazılımların temelini oluşturur ve davranışını ve performansını belirler. Bu nedenle, Temiz Kod — tutarlı, amaçlı, uyarlanabilir ve sorumlu kod — çok önemlidir. Temiz Kod, kolayca anlaşılabilen ve değiştirilebilen, çalışma zamanında sorunsuz çalışan ve teknik borç içermeyen koddur. Temiz Kod, organizasyonların yazılımlarının bir varlık değil, bir yük olmasını sağlamak için benimsemeleri gereken standarttır.
Temiz Kod, tüm büyüklükteki ve olgunluk düzeyindeki ekiplere ve organizasyonlara fayda sağlar ve yazılımların değerini artırır. Bazı específik faydaları şunlardır:
- Geliştirme becerilerini artırır — Geliştiriciler, kod yazarken sorunları tespit edebilir, anlayabilir ve çözebilir, aynı zamanda en iyi uygulamaları öğrenebilirler.
- Verimliliği ve üretkenliği artırır — Sürekli yeniden çalışma ve uzun geri bildirim döngülerini azaltarak, daha büyük üretkenlik sağlar.
- Ünlü ve iş riskini azaltır — Temiz Kod, güvenlik risklerini en aza indirir ve ekiplere üretim öncesi sorunları proaktif olarak ele almalarına olanak tanır.
- Kod düzeyindeki teknik borcu azaltır — Temiz Kod, kod tabanının borcunu dần dần ele alır ve büyük bir uygulama yenileme veya kesinti gerektirmez.
- Yazılım geliştirme hızını artırır — Temiz Kod standartları ve akışları, DevOps hızını artırır ve daha hızlı zamanlama sağlar.
Kodda tutarlılık ve yapının önemini tartışabilir misiniz ve tutarlı ve Temiz Kod’un örnekleri nelerdir?
Tutarlı kod kalitesi, her yönetici veya teknik direktörün korumaya çalıştığı bir şeydir. Tutarlılık, kod kalitesi açısından çok önemlidir, çünkü tutarlılık öngörülebilirliğe yol açar. Kod, uniform ve geleneksel bir şekilde yazılmıştır — tüm kod benzer görünür ve düzenli bir modele uyar, birden fazla katkıda bulunan tarafından farklı zamanlarda yazılmış olsa bile. Tutarlı kod, formatlı, geleneksel ve tanımlanabilirdir. Tutarlı kod standartları benimsendiğinde, geliştiriciler daha verimli olur ve teslimat beklentilerini hız ve hassasiyetle karşılayabilirler.
Bei beklenmedik koşullara karşı kodun önemini tartışabilir misiniz ve neden bu göz ardı edilmemelidir?
Geliştiriciler, tasarım ve geliştirme sürecinde beklenmedik olayları öngörme ve hazırlanma çabası sarf ederler, ancak bu her durumda önlenemez. Beklenmedik durumlar, kasıtsız kötüye kullanım veya kasıtlı olarak tetiklenen saldırılar nedeniyle ortaya çıkabilir. Bu beklenmedik durumlar, güvenlik açıklarını ortaya çıkarabilir ve saldırganlar tarafından sömürebilir. Bu nedenle, geliştiriciler kodlarının kalitesini ve stabilitesini sürekli olarak geliştirmeye çalışmalıdır ve beklenmedik koşulları test etmelidir. Temiz Kod Yazma yaklaşımını takip ederek, ekipler yeni özellikler için daha hızlı ilerleyebilir, gereksiz yeniden çalışma maliyetlerinden kaçınabilir ve yetenek growth ve retansiyonunu teşvik edebilir. Temiz Kod, güvenlik, bakım ve güvenilirlik sağlar ve geliştiricilerin beklenmedik durumları daha etkili bir şekilde ele almasına ve yazılımlarını daha hızlı çalışır duruma getirmesine olanak tanır.
Yazılım geliştirme yaşam döngüsüne AI’ın entegrasyonunun faydalarını tartışabilir misiniz?
AI’ı yazılım geliştirme yaşam döngüsüne entegre etmek, geliştiricilerin daha verimli çalışmasına olanak tanır. Gerçekten de, GitHub araştırması, geliştiricilerin AI’ı kullanarak görevleri %50’den fazla hızlandırabileceğini göstermiştir. AI, kodları daha hızlı üretebilir ve geliştiricilere daha çok zaman kazandırabilir, böylece daha yüksek değerli ve ödüllendirici işlere odaklanabilirler. Ancak, kod nasıl oluşturulursa oluşturulsun, güvenli, güvenilir ve bakımlı olduğundan emin olmak için Temiz Kod standartlarına karşı kontrol edilmesi çok önemlidir.
Oluşturulan kodun potansiyel tuzakları ve riskleri nelerdir?
AI, geliştiricilerin zamanını daha yüksek değerli projelere ayırmasına ve üretkenliği artırmasına olanak tanır, ancak riskler olmadan gelmez. Bu nedenle, AI çağındaki geliştiricilere olan talep ortadan kaybolmayacaktır. AI araçları çok hızlı bir şekilde kod üretebilir, ancak bu, hataların ortaya çıkması riskini taşır. Bazı específik tuzaklar şunlardır:
- Sorumluluk: AI tarafından oluşturulan kod, insanların kod oluşturmasından sorumlu tutulmasını zorlaştırır, bu da sorunları çözme veya ele alma işlemlerini zorlaştırır.
- Güvenlik açıkları: AI tarafından üretilen kod, çoğunlukla crowdsourced bilgilerden oluşur, bu nedenle üretilen kodun güvenli veya temiz olduğu garantisi yoktur. Kodda güvenlik açıkları veya sorunları olabilir ve işleri riske atabilir.
- Kalite: AI, kaliteyi kontrol etmez, ve AI tarafından üretilen kodun verimli veya yüksek kaliteli olduğu anlamına gelmez.
- Bağlam yok: İnsan unsurunu kaybetmek, doğal olarak bir problem veya projenin bağlamını kaybetmek demektir. AI tarafından oluşturulan kod, görevi tam olarak yerine getirdiğinden emin olmak için gözden geçirilmelidir.
Geliştiriciler, kodlarıyla Temiz Kod Yazma yaklaşımını takip ettiklerinde, kodlarının geliştirme ve üretim için uygun olduğunu ve organizasyonlarının kalite standartlarını karşıladığını garantileyebilirler.
Üretim için uygun kodda dikkate alınması gereken diğer değişkenler nelerdir?
Geliştiriciler, Temiz Kod ilkelerine uyan kodu yazdığında, kodlarının geliştirme ve üretim için uygun olduğunu garantileyebilir, bu da kodun belirli özelliklere sahip olduğu anlamına gelir:
- Tutarlı: Kod, tutarlı ve ortak bir stile uyumlu olmalıdır. Kod, birden fazla geliştirici tarafından farklı zamanlarda yazılmış olsa bile, benzer bir görünümde olmalı ve önceden belirlenmiş kalıplara uymalıdır.
- Amaçlı: Amaçlı kod, dikkatle ve özenle yazılmış gibi okunmalıdır; yalnızca bir yorumu olmalıdır.
- Uyarlanabilir: Uyarlanabilir kod, daha kolay yönetilmesi ve kod arasındaki ilişkileri görmesi için segmentlere ayrılmış ve organize edilmiştir. Bu, kodun kolay ve güvenli bir şekilde evrimleşmesi için yapılandırılmış olduğu anlamına gelir.
- Sorumlu: Kod ve geliştiricileri, veri ve toplum normlarına ilişkin etik sorumluluklarının farkında olmalıdır. Kod, üçüncü şahıslara kasıtsız olarak zarar verme riski taşımamalıdır.
Sonar’ın çeşitli tekliflerini ve geliştiricilerin sorumlu, güvenli, yüksek kaliteli kodu hızlı ve sistematik olarak inşa etmelerine nasıl yardımcı olduğunu tartışabilir misiniz?
Sonar, endüstri lideri analizörleri aracılığıyla kod sorunlarını kapsamlı bir şekilde tespit eder ve düzeltmeler önerir, kısa geri bildirim döngüleri sağlar ve geliştiricileri bağlam içinde eğitir, böylece organizasyonların sorumlu, güvenli, yüksek kaliteli kodu hızlı ve sistematik olarak inşa etmelerine olanak tanır. Sonar çözümünün temel öğeleri SonarLint, SonarQube (kendin yönet, açık kaynak) ve SonarCloud (SaaS)’dir, 30’dan fazla programlama dili, çerçeve ve altyapıyı, 11 IDE’yi ve 5.000’den fazla kod ve dil özelliğine özgü kuralı destekler.
SonarLint, bir IDE uzantısı, kod yazıldığı anda sorunları gerçek zamanlı olarak bulur. Kodda büyük bir portion sorunları yakalar ve geliştiricilerin hataları keşfetmesine ve çözmesine yardımcı olur, kod için bir yazım denetimi gibi çalışır. SonarQube ve SonarCloud, Sonar’ın statik analiz kod incelemesi araçları, kod tabanını sürekli olarak inceler ve analiz eder, SonarLint entegrasyonu ile. Kalite kapılarını kullanarak kodu üretim için tanımlanan kalite, güvenlik ve güvenilirlik standartlarına uygunluğunu belirler, SonarQube ve SonarCloud, hatalar, güvenlik açıkları, güvenlik sıcak noktaları ve kod kokuları için kodu inceler.
Çözüm setimizi Temiz Kod Yazma metodolojimizle birleştirerek — yeni, eklenen veya düzenlenmiş kodu temiz tutmaya yönelik bir yaklaşım — geliştiriciler ve organizasyonlar Temiz Kod’u teslim edebilir ve mevcut kodu organik olarak düzeltebilir, böylece yeni, yenilikçi projelere odaklanabilir ve iş değerini artırabilirler.
Sonar, kodun uyumlu ve endüstri standartlarına uygun olduğunu garantilemek için nasıl yardımcı olur?
Sonar, geliştiricilere anında ve bağlamsal geri bildirim sağlar, kod tabanındaki sorunları vurgular, yıllarca süren dil analizi deneyimine dayanarak. Geliştiriciler, bir sorunun neden ortaya çıktığı ve nasıl hızlı bir şekilde düzeltilebileceği hakkında net açıklamalar alır, ayrıca daha derinlemesine öğrenme için ek kaynaklar sağlar. Tüm iş akışı boyunca, IDE’den CI/CD’ye kadar eğitim sunar. Örneğin, Sonar, MISRA C++ 2023 kuralları için SonarLint’te özel kurallar sunar, böylece ekipler sertifika için en iyi şekilde hazırlanmış kodu oluşturabilir. Kodlama rehberliği sağlar, bir sorun için neden bir sorun oluştuğunu ve nasıl düzeltileceğini açıklar, böylece yazılan kodun MISRA uyumlu olduğunu garantiler.
Gelecekte kodlama için AI’ın dönüşüm vizyonunuzu tartışabilir misiniz?
AI’ın, geliştirici yanıklığını gidermede büyük değer sağlayacağına inanıyorum. AI’ın geliştiricilerin düşünce ve insan dokunuşunu tamamen devralayacağına inanmıyorum, ancak AI’ın gelecekte nasıl kullanılacağı çok farklı olacaktır. Geliştiriciler, AI’ı Google araması gibi bir kısayol olarak kullanacaktır. AI’ın kullanımını keşfetmek için çok şey var, ancak AI’ın dezavantajlarını kontrol etmek için insan unsurunu ön planda tutmamız çok önemlidir. AI, yazılım geliştirmeye dönüştürücü bir potansiyele sahiptir, ancak dijital işletmelerin bugün yazılıma bağlı olduğu düşünülürse, AI’ı kontrolsüz bırakmamalıyız.
Harika bir röportaj için teşekkür ederiz, daha fazla bilgi edinmek isteyen okuyucular Sonar ziyaret edebilir.












