logologo
Ai badge logo

Bu madde yapay zeka desteği ile üretilmiştir.

Apex (Programlama Dili)

fav gif
Kaydet
viki star outline
Geliştirici
SalesforceInc.
İlk yayınlanma
Winter '07 Sürümü (2006)
Etkilendiği diller
Java
Paradigma
Nesne YönelimliOlay Tabanlı (Event-driven)
Tür
Tescilli Programlama Dili
Lisans
Ticari (Proprietary)
Platform
Salesforce Lightning Platform
Web sitesi
developer.salesforce.com/docs/platform/apex/guide/

Apex, Salesforce tarafından geliştirilen, Lightning Platformu (eski adıyla Force.com) üzerinde çalışan, tescilli (proprietary), nesne yönelimli ve güçlü tipli (strongly-typed) bir programlama dilidir. Sözdizimi (syntax) açısından Java'ya oldukça benzeyen Apex, geliştiricilerin ve yöneticilerin Salesforce sunucularında karmaşık iş mantığı ve süreç otomasyonları yürütmesine olanak tanır. Temel amacı, Salesforce'un standart, beyana dayalı (declarative) "tıkla-yap" araçlarının (Flow gibi) yetersiz kaldığı durumlarda, özel ve gelişmiş otomasyonlar oluşturmak için bir "pro-code" çözümü sunmaktır.

Amaç ve Temel Çalışma Prensibi

Apex'in varoluş nedeni, Salesforce'un çok kiracılı (multi-tenant) bulut mimarisinin getirdiği zorunluluklardır. Platform üzerindeki tüm müşteriler aynı kaynakları paylaştığı için, Apex, yazılan kodun bu paylaşılan kaynakları aşırı tüketmesini veya diğer kiracıların performansını olumsuz etkilemesini önleyecek şekilde tasarlanmıştır. Bu nedenle, Apex kodu her zaman platform üzerinde, talep üzerine (on-demand) ve belirli sınırlar (governor limits) dahilinde derlenir, saklanır ve çalıştırılır.


Çalışma prensibi, olay tabanlı (event-driven) bir modele dayanır:

  1. Olay Tetiklemesi: Bir kullanıcı bir kaydı kaydettiğinde, bir API çağrısı yapıldığında veya belirli bir zamanlama tetiklendiğinde Apex kodu çalışmaya başlar.
  2. Derleme ve Yürütme: Kod, Salesforce sunucularında derlenir ve platformun çalışma zamanı (runtime) ortamında yürütülür.
  3. İş Mantığı Uygulaması: Kod, veritabanı işlemlerini (oluşturma, okuma, güncelleme, silme), karmaşık hesaplamaları veya harici sistemlere yapılan çağrıları (callouts) gerçekleştirir.
  4. İşlem Tamamlama: Kodun çalışması tamamlanır ve sonuçlar veritabanına kaydedilir veya kullanıcıya döndürülür.

Temel Özellikler ve Sözdizimi

Apex, Java'ya aşina olan geliştiriciler için öğrenmesi kolay olacak şekilde tasarlanmıştır, ancak kendine özgü güçlü özellikleri vardır:


  • Java Benzeri Sözdizimi: Sınıflar (classes), nesneler (objects), metotlar (methods), değişkenler ve döngüler gibi temel programlama yapıları Java ile büyük benzerlik gösterir.
  • Entegre Veritabanı Erişimi: Apex'in en güçlü özelliklerinden biri, veritabanı işlemlerinin dilin doğal bir parçası olmasıdır. Geliştiriciler, Salesforce Object Query Language (SOQL) ve Salesforce Object Search Language (SOSL) sorgularını doğrudan kodun içine yazabilirler. Aynı şekilde, Veri Manipülasyon Dili (DML) komutları (insert, update, delete) da basit metot çağrılarıdır.
  • Tetikleyiciler (Triggers): Belirli bir nesne üzerinde bir kayıt oluşturulmadan/oluşturulduktan, güncellenmeden/güncellendikten veya silinmeden/silindikten sonra otomatik olarak çalışan özel kod bloklarıdır. Salesforce otomasyonunun temel taşlarından biridir.
  • Toplu İşlem Odaklı (Bulkified): Platformun performansını korumak için Apex, tek bir işlemde yüzlerce kaydı verimli bir şekilde işleyecek şekilde tasarlanmıştır. Geliştiricilerin kodlarını "bulkification" prensiplerine uygun yazması beklenir.
  • Dahili Test Çerçevesi: Salesforce, yazılan Apex kodunun kalitesini ve güvenilirliğini sağlamak için dahili bir test çerçevesi sunar. Bir kodun üretim ortamına dağıtılabilmesi için, en az %75'inin test kodları tarafından kapsanması zorunludur.

Yönetici Sınırları (Governor Limits)

Apex'i diğer programlama dillerinden ayıran en temel kavram, yönetici sınırlarıdır. Çok kiracılı ortamda kaynakların adil kullanımını sağlamak için Salesforce, tek bir Apex işlemi sırasında yapılabilecek işlemlerin sayısına katı sınırlar koyar. Bunlar arasında şunlar bulunur:

  • Yapılabilecek SOQL sorgu sayısı (örn: 100).
  • İşlenebilecek toplam kayıt sayısı (örn: 50,000).
  • Yapılabilecek DML işlem sayısı (örn: 150).
  • Maksimum CPU işlem süresi.


Bu sınırlar, geliştiricileri verimli ve optimize edilmiş kod yazmaya zorlar.

Ekosistemdeki Yeri

Apex, Salesforce platformunun "pro-code" (kodlu geliştirme) katmanını oluşturur ve "low-code" (az kodlu) araçlarla birlikte çalışır:

  • Flow ve Process Builder'ın Ötesi: Standart otomasyon araçlarının yeteneklerinin bittiği yerde Apex devreye girer.
  • Lightning Web Components (LWC) ve Aura: Modern Salesforce kullanıcı arayüzleri, sunucu tarafındaki karmaşık iş mantığını çalıştırmak için Apex metotlarını çağırır.
  • Harici Entegrasyonlar: REST ve SOAP API'leri aracılığıyla harici sistemlerle karmaşık entegrasyonlar sağlamak için kullanılır.

Geliştirme Araçları ve Topluluk

Apex kodu geliştirmek için çeşitli araçlar mevcuttur:

  • Salesforce Extensions for Visual Studio Code: Modern Apex geliştirmesi için endüstri standardı haline gelmiş, Microsoft VS Code için geliştirilmiş bir eklenti setidir.
  • Developer Console: Salesforce arayüzü içinde yer alan, temel kodlama, test ve hata ayıklama işlemleri için kullanılan tarayıcı tabanlı bir araçtır.


Apex, kapalı kaynaklı bir dil olmasına rağmen, Salesforce'un Trailhead platformu ve Trailblazer Community aracılığıyla desteklenen ve aktif bir geliştirici topluluğuna sahiptir.

Kaynakça

Salesforce Developers. "Apex Developer Guide." Salesforce. Erişim 16 Ağustos 2025. https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_dev_guide.htm.


Salesforce Developers. "Apex Triggers." Apex Developer Guide. Erişim 16 Ağustos 2025. https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_triggers.htm.


Salesforce Developers. "SOQL and SOSL Reference." Salesforce. Erişim 16 Ağustos 2025. https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_sosl.htm.


Trailhead. "Apex Basics & Database." Salesforce. Erişim 16 Ağustos 2025. https://trailhead.salesforce.com/content/learn/modules/apex_database.


Sen de Değerlendir!

0 Değerlendirme

Yazar Bilgileri

Avatar
Ana YazarMuhammed Said Elsalih16 Ağustos 2025 11:15
KÜRE'ye Sor