Salesforce Geliştirici Mülakat Soruları: Teknik Hazırlık Rehberi ve Teknik Cevaplar
Salesforce Geliştirici Mülakatlarına Stratejik Yaklaşım
Salesforce ekosistemi, hem deklaratif (kodsuz) hem de programatik (kodlu) çözümlerin iç içe geçtiği hibrit bir yapıya sahiptir. Bir Salesforce geliştiricisi olarak mülakata girdiğinizde, sadece kod yazma beceriniz değil, aynı zamanda "ne zaman kod yazmamanız gerektiğini" bildiğiniz de sorgulanır. Mülakatçılar, platformun standart özelliklerini ne kadar verimli kullandığınızı ve karmaşık iş gereksinimlerini nasıl optimize ettiğinizi anlamak isterler.
Teknik mülakatlar genellikle temel platform bilgisi, Apex programlama, Lightning Web Components (LWC), entegrasyon yetenekleri ve senaryo bazlı problem çözme olmak üzere dört ana eksende ilerler. Bu süreçte başarılı olmak için teknik bilginizi, gerçek hayat projelerindeki deneyimlerinizle harmanlamanız gerekir. Dahası, başvurunuzu yapmadan önce profesyonel bir Cv şablon kullanarak yetkinliklerinizi net bir şekilde ortaya koymanız, mülakatın başlangıç noktasını belirler.
Temel Salesforce Platform Soruları
Mülakatın giriş aşamasında, platformun mimarisini ne kadar anladığınızı ölçen sorular gelir. Bu sorular, sizin "Admin" yeteneklerinizin "Developer" kimliğinizle ne kadar örtüştüğünü gösterir.
Salesforce'ta 'Governor Limits' Nedir ve Neden Önemlidir?
Salesforce, çok kiracılı (multi-tenant) bir mimari kullanır. Bu, aynı fiziksel kaynakların birçok farklı şirket tarafından paylaşıldığı anlamına gelir. Bir kullanıcının veya hatalı yazılmış bir kodun tüm sistem kaynaklarını tüketmesini önlemek için Salesforce, 'Governor Limits' adı verilen katı sınırlar uygular.
- SOQL Limitleri: Tek bir işlemde (transaction) en fazla 100 SOQL sorgusu çalıştırılabilir.
- DML Limitleri: Tek bir işlemde en fazla 150 DML ifadesi kullanılabilir.
- CPU Süresi: Senkron işlemler için toplam CPU süresi 10 saniyedir.
Bu limitleri aşmamak için geliştiricilerin "Bulkification" prensibini uygulaması, yani döngülerin içinde sorgu veya DML işlemi yapmaktan kaçınması gerekir.
Declarative vs Programmatic Çözümler: Hangisini Seçmelisiniz?
Salesforce'un altın kuralı: "Önce deklaratif, sonra programatik." Eğer bir gereksinim Flow, Validation Rule veya Approval Process gibi standart araçlarla çözülebiliyorsa, kod yazmak yerine bu araçlar tercih edilmelidir. Bunun sebepleri şunlardır:
- Bakım Kolaylığı: Kodsuz çözümler, teknik olmayan yöneticiler tarafından da güncellenebilir.
- Performans: Standart özellikler platform tarafından optimize edilmiştir.
- Yükseltme: Salesforce güncellemeleri sırasında deklaratif çözümler daha az risk taşır.
Apex Programlama ve Teknik Sorular
Apex, Java tabanlı, nesne yönelimli bir dildir ancak veritabanı ile sıkı sıkıya entegre çalışır. Mülakatlarda en çok üzerinde durulan konu, kodun ölçeklenebilirliği ve performansıdır.
Trigger Frameworks Neden Kullanılır?
Tetikleyiciler (Triggers), veri manipülasyonu sırasında otomatik işlemler yapmak için kullanılır. Ancak, her nesne için birden fazla tetikleyici yazmak, işlem sırasının kontrolünü zorlaştırır ve kod karmaşasına yol açar. Bir Trigger Framework kullanmanın avantajları şunlardır:
- Tek Tetikleyici Kuralı: Her nesne için sadece bir tetikleyici (One Trigger Per Object) tanımlanır.
- Mantıksal Ayrım: İş mantığı (Business Logic), tetikleyici sınıfından ayrılarak Handler sınıflarına taşınır.
- Kontrol Edilebilirlik: Hangi işlemin hangi sırayla çalışacağı merkezi bir yerden yönetilir.
Asenkron Apex Türleri ve Kullanım Alanları
Uzun süren işlemler veya dış sistem entegrasyonları için senkron kodlar zaman aşımına uğrayabilir. Bu noktada asenkron yöntemler devreye girer:
- Future Methods: Basit, tekil asenkron işlemler için kullanılır. Dönüş tipi void olmalıdır.
- Queueable Apex: Future metodlarına benzer ancak daha gelişmiş özellikler sunar. İşlem sonucunu takip edebilir ve zincirleme (chaining) işlemler yapabilirsiniz.
- Batch Apex: Milyonlarca kaydı işlemek için kullanılır. Veriyi küçük parçalara (batch) bölerek işler.
- Scheduled Apex: Belirli bir tarihte veya periyotta çalışması gereken işlemler için kullanılır.
Lightning Web Components (LWC) ve Frontend Geliştirme
Modern Salesforce arayüzleri, Web Components standartlarına dayalı LWC ile inşa edilir. Mülakatlarda genellikle bileşenler arası iletişim ve veri yönetimi sorgulanır.
LWC'de Bileşenler Arası İletişim Nasıl Sağlanır?
Verinin akış yönüne göre farklı yöntemler kullanılır:
- Parent'tan Child'a: @api dekoratörü kullanılarak public özellikler tanımlanır ve veri aşağıya aktarılır.
- Child'dan Parent'a: Custom Events (Özel Olaylar) oluşturulur ve dispatchEvent() metodu ile yukarıya sinyal gönderilir.
- İlişkisiz Bileşenler Arası: Lightning Message Service (LMS) kullanılarak farklı DOM ağaçlarındaki bileşenler haberleştirilir.
Wire Service ve Imperative Apex Çağrıları Arasındaki Fark Nedir?
LWC'de Apex sınıflarından veri çekmek için iki ana yol vardır:
Wire Service: Veriyi reaktif olarak getirir. Veri değiştiğinde bileşen otomatik olarak güncellenir. Salt okunur (read-only) veriler için idealdir.
Imperative Call: Kod içerisinde belirli bir tetikleyiciye (örneğin bir butona tıklama) bağlı olarak çağrılır. Veri güncelleme (DML) işlemleri için zorunludur.
SOQL ve SOSL: Veri Sorgulama Stratejileri
Veritabanı performansı, bir Salesforce geliştiricisinin kalitesini belirleyen en belirleyici unsurdur. Yanlış sorgular, sistemin kilitlenmesine yol açabilir.
SOQL ve SOSL Arasındaki Farklar Nelerdir?
SOQL (Salesforce Object Query Language): Belirli bir nesne üzerinden kayıtları getirmek için kullanılır. SQL'e benzer. Örneğin, sadece 'Account' nesnesindeki kayıtları filtrelemek için kullanılır.
SOSL (Salesforce Object Search Language): Birden fazla nesne içinde anahtar kelime araması yapmak için kullanılır. Örneğin, hem 'Contact' hem 'Lead' hem de 'Account' kayıtları arasında "Ahmet" ismini aramak istediğinizde SOSL kullanılır.
Sorgu Optimizasyonu ve Indexing
Büyük veri kümeleriyle (Large Data Volumes - LDV) çalışırken "Non-selective Query" hatalarıyla karşılaşabilirsiniz. Bunu önlemek için:
- Sorgularda filtrelenmiş alanların "Indexed" olduğundan emin olunmalıdır.
- Standard index alanları (Id, Name, CreatedDate vb.) aktif olarak kullanılmalıdır.
- Sorgu sonuçlarını sınırlamak için LIMIT ifadesi eklenmelidir.
Entegrasyon ve API Yönetimi
Salesforce nadiren tek başına çalışır. Diğer ERP, CRM veya ödeme sistemleriyle konuşabilme yeteneği kritik önem taşır.
REST ve SOAP API Farkları
Salesforce hem REST hem de SOAP servislerini destekler. REST, JSON formatını kullanması ve hafif olması nedeniyle modern uygulamalarda tercih edilirken; SOAP, katı bir WSDL yapısına sahip olduğu için kurumsal ve yüksek güvenlikli eski sistem entegrasyonlarında kullanılır.
External Services ve Named Credentials
API entegrasyonlarında güvenlik en öncelikli konudur. Hard-coded şifreler veya URL'ler kullanmak büyük bir güvenlik açığıdır. Named Credentials kullanarak kimlik doğrulama bilgilerini güvenli bir şekilde saklayabilir ve kod içinde sadece çağrı adını kullanarak dış sistemlere erişebilirsiniz.
Senaryo Bazlı Sorular ve Problem Çözme
Teknik bilgi tek başına yeterli değildir. Mülakatçılar, karşılaştığınız bir sorunu nasıl analiz ettiğinizi görmek isterler.
Soru: Bir Trigger'ın sonsuz döngüye (Recursive Trigger) girdiğini fark ettiniz. Bunu nasıl çözersiniz?
Bu durum ekseriyetle bir tetikleyicinin kendi güncellediği kaydı tekrar tetiklemesiyle oluşur. Çözüm olarak, statik bir değişken içeren bir 'Helper' sınıfı oluşturulur. Değişken başlangıçta false olarak tanımlanır; tetikleyici çalıştığında true yapılır. Tetikleyici tekrar çalıştığında değişken kontrol edilir ve eğer true ise işlem durdurulur.
Soru: Çok büyük bir veri setini (örneğin 5 milyon kayıt) güncellemeniz gerekiyor. Hangi yöntemi seçersiniz?
Bu işlem için kesinlikle Batch Apex kullanılmalıdır. Veriler 200'erli parçalar halinde işlenerek Governor Limit'ler aşılmadan işlem tamamlanır. Ayrıca, işlem sırasında CPU süresini optimize etmek için 'Parallel Processing' imkanları değerlendirilmelidir.
Mülakat Öncesi Hazırlık ve Kariyer Yönetimi
Teknik mülakata girmeden önce sadece kod çalışmak yeterli değildir. Sunumunuz, deneyimlerinizi nasıl anlattığınız ve profesyonel imajınız da değerlendirilir.
Deneyimlerinizi Nasıl Anlatmalısınız?
Projelerinizi anlatırken STAR metodunu (Situation, Task, Action, Result) kullanın. "Bir proje yaptım" demek yerine; "Şirketin X sorununu çözmek için Y teknolojisini kullandım ve işlem süresini %30 azalttım" şeklinde somut veriler sunun.
CV Hazırlama Süreci
Teknik yetkinliklerinizi listelerken sadece "Apex biliyorum" yazmak yerine, kullandığınız spesifik kütüphaneleri, sertifikalarınızı ve üzerinde çalıştığınız proje türlerini belirtin. Modern ve temiz bir Cv şablon seçimi, okuyucunun (İK veya Teknik Müdür) aradığı bilgiye hızla ulaşmasını sunar. Özellikle Salesforce dünyasında Trailhead rozetleriniz ve sertifikalarınızın linklerini eklemek size artı puan kazandıracaktır.
Dahası, başvuracağınız pozisyonun gereksinimlerine göre özelleştirilmiş bir Cv analiz süreci yürütmek, hangi anahtar kelimelerin (örneğin: LWC, Integration, OmniStudio) ön planda olması gerektiğini anlamanıza yardımcı olur. İş tanımındaki beklentilerle kendi yetkinliklerinizi eşleştirdiğiniz bir doküman, mülakata çağrılma şansınızı artırır.
Sıkça Sorulan Ek Teknik Sorular (Hızlı Cevaplar)
What is a Custom Setting?
Uygulama genelinde kullanılan, kodla erişilebilen ancak veritabanı sorgusu gerektirmeyen (cache'lenen) yapılandırma verilerini saklamak için kullanılır.
What is the difference between a Map and a Set?
Set, benzersiz değerler tutan bir koleksiyondur. Map ise anahtar-değer (key-value) çiftleri tutar ve belirli bir anahtara göre veriye çok hızlı erişim sağlar.
What is the purpose of the @AuraEnabled annotation?
Apex metodlarının Lightning bileşenleri (LWC veya Aura) tarafından çağrılabilmesini sağlar.
What are Platform Events?
Yayınla-Abone Ol (Publish-Subscribe) modeline dayalı, gerçek zamanlı ve asenkron iletişim sağlayan bir mesajlaşma sistemidir.
Kapanış ve Başarı İpuçları
Salesforce geliştiriciliği, sürekli öğrenmeyi gerektiren dinamik bir alandır. Mülakat sırasında bilmediğiniz bir soruyla karşılaştığınızda, dürüstçe bilmediğinizi belirtin ancak nasıl araştırıp bulacağınızı (Salesforce Stack Exchange, Developer Documentation vb.) açıklayın. Bu, sizin öğrenme kapasitenizi ve problem çözme yaklaşımınızı gösterir.
Teknik hazırlığınızı tamamladıktan sonra, güncel bir Cv şablon ile başvurularınızı yapın ve mülakat simülasyonları ile heyecanınızı yönetin. Unutmayın, iyi bir geliştirici sadece kod yazan değil, iş ihtiyacını en optimize şekilde platforma yansıtabilen kişidir.
ATS uyumlu CV'ni dakikalar içinde hazırla.
Ücretsiz Başla