Mülakat Soruları

Salesforce Geliştirici Mülakat Soruları: Teknik Hazırlık Rehberi ve Teknik Cevaplar

CVANALIZ Editör Ekibi 7 dk okuma

Uzman incelemesi: Can Demir

Salesforce geliştirştirici mülakat Soruları konulu blog yazısının kapak görseli
Fotoğraf: Tima Miroshnichenko / Pexels

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. Aslına bakılırsa, bir Salesforce geliştiricisi olarak mülakata girdiğinizde, hem kod yazma beceriniz hem "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. Sahada, 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 şarttır. 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ü kanıtlar.

Salesforce'ta 'Governor limits' nedir ve neden önemlidir?

Salesforce, çok kiracılı (multi-tenant) bir mimari kullanır. Pratikte, bu, aynı fiziksel kaynakların pek çok değişik kurum 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.

  • Şöyle ki, 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ı gereklidir.

Declarative vs programmatic çözümler: hangisini seçmelisiniz?

Şöyle ki, 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.
  • Bir noktada, 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. Aslına bakılırsa, mülakatlarda en çok üzerinde durulan husus, 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:

  • Genelde, 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:

  1. Future Methods: Basit, tekil asenkron işlemler için kullanılır. Dönüş tipi void olmalıdır.
  2. Queueable Apex: Future metodlarına benzer ancak daha gelişmiş özellikler sunar. İşlem sonucunu takip edebilir ve zincirleme (chaining) işlemler yapabilirsiniz.
  3. Batch Apex: Milyonlarca kaydı işlemek için kullanılır. Veriyi sınırlı parçalara (batch) bölerek işler.
  4. 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. Sahada, mülakatlarda çoğu zaman bileşenler arası iletişim ve veri yönetimi sorgulanır.

LWC'de bileşenler arası iletişim nasıl sağlanır?

Verinin akış yönüne göre başka 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 başka DOM ağaçlarındaki bileşenler haberleştirilir.

Çoğu durumda, wire service ve ımperative 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

Şöyle ki, veritabanı performansı, bir Salesforce geliştiricisinin kalitesini belirleyen en belirleyici unsurdur. Hatalı 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. Söz gelimi, 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. Söz gelimi, hem 'Contact' hem 'Lead' hem de 'Account' kayıtları arasında "Ahmet" ismini aramak istediğinizde SOSL kullanılır.

Sorgu optimizasyonu ve ındexing

Net konuşmak gerekirse, 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. İşin aslı, 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 ciddi 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. Kısaca, 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.

Net konuşmak gerekirse, soru: Çok ciddi bir veri setini (söz gelimi 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. Dahası, 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?

Şöyle ki, 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

Çoğu durumda, 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 vurgulayın. Modern ve temiz bir Cv şablon seçimi, okuyucunun (İK veya Teknik Müdür) aradığı bilgiye hızla ulaşmasını sunar. Bilhassa 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. Pratikte, iş tanımındaki beklentilerle kendi yetkinliklerinizi eşleştirdiğiniz bir doküman, mülakata çağrılma şansınızı güçlendirir.

Sıkça sorulan ek teknik sorular (Çabuk 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 sunar.

What is the purpose of the @AuraEnabled annotation?

Apex metodlarının Lightning bileşenleri (LWC veya Aura) tarafından çağrılabilmesini sunar.

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ı ipuç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 vurgulayın ne var ki 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. İyi 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
İçindekiler