{"id":44731,"date":"2026-09-16T21:02:46","date_gmt":"2026-09-16T18:02:46","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/"},"modified":"2026-09-16T21:03:21","modified_gmt":"2026-09-16T18:03:21","slug":"dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/","title":{"rendered":"Dreamforce 2026&#8217;da Salesforce \u00c7\u00f6kt\u00fc\u011f\u00fcnde: Org Olmadan Apex G\u00f6ndermeye Devam Etmenin Yollar\u0131"},"content":{"rendered":"<h2>Dreamforce 2026&#8217;da Salesforce \u00c7\u00f6kt\u00fc\u011f\u00fcnde: Org Olmadan Apex G\u00f6ndermeye Devam Etmenin Yollar\u0131<\/h2>\n<p>Dreamforce, her y\u0131l binlerce Salesforce kullan\u0131c\u0131s\u0131n\u0131, geli\u015ftiricisini ve i\u015f orta\u011f\u0131n\u0131 bir araya getiren devasa bir etkinlik. Peki ya bu y\u0131l, tam da en kritik anlarda, Salesforce platformu eri\u015filemez hale gelirse ne olur? 2026 Dreamforce&#8217;da ya\u015fanan beklenmedik kesinti, tam da b\u00f6yle bir senaryoyu ger\u00e7e\u011fe d\u00f6n\u00fc\u015ft\u00fcrd\u00fc. Bu makalede, Salesforce org&#8217;umuza eri\u015fimimiz kesildi\u011finde bile Apex kodlar\u0131m\u0131z\u0131 nas\u0131l ba\u015far\u0131yla g\u00f6ndermeye devam etti\u011fimi, kar\u015f\u0131la\u015ft\u0131\u011f\u0131m zorluklar\u0131 ve bu durumdan \u00e7\u0131kard\u0131\u011f\u0131m dersleri ad\u0131m ad\u0131m anlataca\u011f\u0131m. Bu deneyim, da\u011f\u0131t\u0131k sistemlerin k\u0131r\u0131lganl\u0131\u011f\u0131n\u0131 ve alternatif stratejilerin \u00f6nemini bir kez daha g\u00f6zler \u00f6n\u00fcne serdi.<\/p>\n<h2>Neden Bir Org&#8217;a Ba\u011fl\u0131 Kalmamal\u0131y\u0131z?<\/h2>\n<p>Geli\u015ftiriciler olarak \u00e7o\u011fumuz, kodlar\u0131m\u0131z\u0131 test etmek, derlemek ve da\u011f\u0131tmak i\u00e7in do\u011frudan bir Salesforce org&#8217;una ba\u011f\u0131ml\u0131y\u0131z. Bu, en yayg\u0131n ve kabul g\u00f6ren y\u00f6ntemdir. Ancak, bu yakla\u015f\u0131m\u0131n \u00f6nemli bir zay\u0131fl\u0131\u011f\u0131 var: tek bir hata noktas\u0131na (single point of failure) maruz kalmak. Dreamforce gibi b\u00fcy\u00fck etkinlikler s\u0131ras\u0131nda veya genel bir Salesforce kesintisi ya\u015fand\u0131\u011f\u0131nda, bu ba\u011f\u0131ml\u0131l\u0131k geli\u015ftirme s\u00fcrecini tamamen durdurabilir. Bu durum, projelerin zaman \u00e7izelgelerini ciddi \u015fekilde etkileyebilir ve m\u00fc\u015fteri memnuniyetini d\u00fc\u015f\u00fcrebilir. \u00d6zellikle kritik zamanlarda, \u00f6rne\u011fin bir \u00fcr\u00fcn lansman\u0131ndan hemen \u00f6nce veya yo\u011fun bir sat\u0131\u015f d\u00f6nemi s\u0131ras\u0131nda b\u00f6yle bir kesinti ya\u015famak, felaketle sonu\u00e7lanabilir. Bu nedenle, sadece org&#8217;a ba\u011fl\u0131 kalmak yerine, alternatif da\u011f\u0131t\u0131m ve test stratejileri geli\u015ftirmek kritik \u00f6nem ta\u015f\u0131r. Bu stratejiler, beklenmedik kesintilere kar\u015f\u0131 bir tampon g\u00f6revi g\u00f6rerek geli\u015ftirme h\u0131z\u0131m\u0131z\u0131 ve s\u00fcrd\u00fcr\u00fclebilirli\u011fimizi korumam\u0131z\u0131 sa\u011flar.<\/p>\n<h3>Alternatif Geli\u015ftirme ve Da\u011f\u0131t\u0131m Yakla\u015f\u0131mlar\u0131 Nelerdir?<\/h3>\n<p>Salesforce ekosisteminde, org&#8217;a do\u011frudan ba\u011f\u0131ml\u0131 olmayan birka\u00e7 geli\u015ftirme ve da\u011f\u0131t\u0131m yakla\u015f\u0131m\u0131 mevcuttur. Bunlardan ilki, yerel geli\u015ftirme ortamlar\u0131 kurmakt\u0131r. Bu, Salesforce DX (SFDX) gibi ara\u00e7larla m\u00fcmk\u00fcn hale gelmi\u015ftir. SFDX, geli\u015ftiricilerin kodlar\u0131n\u0131 yerel makinelerinde yazmalar\u0131na, test etmelerine ve ard\u0131ndan meta verileri bir org&#8217;a deploy etmelerine olanak tan\u0131r. Ancak, tam bir org sim\u00fclasyonu olmadan, \u00f6zellikle karma\u015f\u0131k i\u015f mant\u0131\u011f\u0131 ve entegrasyon testleri yapmak zor olabilir. Di\u011fer bir yakla\u015f\u0131m ise, CI\/CD (Continuous Integration\/Continuous Deployment &#8211; S\u00fcrekli Entegrasyon\/S\u00fcrekli Da\u011f\u0131t\u0131m) pipeline&#8217;lar\u0131 kullanmakt\u0131r. Bu pipeline&#8217;lar, kod de\u011fi\u015fikliklerini otomatik olarak alg\u0131lar, derler, test eder ve da\u011f\u0131t\u0131r. Kesinti an\u0131nda bile, e\u011fer CI\/CD sunucular\u0131m\u0131z ve ba\u011f\u0131ml\u0131 servislerimiz (\u00f6rne\u011fin, kod depolar\u0131, test ortamlar\u0131) eri\u015filebilir durumdaysa, da\u011f\u0131t\u0131m s\u00fcreci devam edebilir. Bu, \u00f6zellikle b\u00fcy\u00fck ve da\u011f\u0131t\u0131k ekipler i\u00e7in b\u00fcy\u00fck bir avantaj sa\u011flar. Son olarak, mock servisler ve stub&#8217;lar kullanarak belirli bile\u015fenlerin davran\u0131\u015flar\u0131n\u0131 sim\u00fcle etmek de m\u00fcmk\u00fcnd\u00fcr. Bu sayede, tam bir org&#8217;a ba\u011fl\u0131 kalmadan da kodunuzun belirli k\u0131s\u0131mlar\u0131n\u0131 test edebilirsiniz. Bu yakla\u015f\u0131mlar\u0131n her birinin kendine \u00f6zg\u00fc avantajlar\u0131 ve dezavantajlar\u0131 vard\u0131r ve en etkili \u00e7\u00f6z\u00fcm genellikle bu y\u00f6ntemlerin bir kombinasyonunu kullanmaktan ge\u00e7er.<\/p>\n<h2>Dreamforce 2026: Beklenmedik Kesinti<\/h2>\n<p>Dreamforce 2026&#8217;n\u0131n ikinci g\u00fcn\u00fcyd\u00fc. Konferans salonlar\u0131 doluydu, herkes yeni \u00f6zellikler ve stratejiler hakk\u0131nda bilgi al\u0131yordu. Tam da o s\u0131rada, beklenmedik bir \u015fey oldu. Salesforce platformuna eri\u015fim aniden kesildi. Ne bir uyar\u0131, ne de bir duyuru. Sadece &#8220;hata&#8221; mesajlar\u0131 ve bo\u015f ekranlar. Bu durum, sadece konferans kat\u0131l\u0131mc\u0131lar\u0131n\u0131 de\u011fil, d\u00fcnyan\u0131n d\u00f6rt bir yan\u0131ndaki geli\u015ftiricileri ve i\u015fletmeleri de etkiledi. Benim de i\u00e7inde bulundu\u011fum bir geli\u015ftirme ekibi, tam da kritik bir \u00f6zellik \u00fczerinde \u00e7al\u0131\u015f\u0131yordu ve o g\u00fcn deploy etmemiz gerekiyordu. Org&#8217;umuza eri\u015fimimiz olmad\u0131\u011f\u0131 i\u00e7in, t\u00fcm planlar\u0131m\u0131z alt\u00fcst olmu\u015ftu. Bu beklenmedik kesinti, teknolojiye olan ba\u011f\u0131ml\u0131l\u0131\u011f\u0131m\u0131z\u0131n ne kadar k\u0131r\u0131lgan olabilece\u011fini ac\u0131 bir \u015fekilde hat\u0131rlatt\u0131. Geli\u015ftirme s\u00fcre\u00e7lerimizin sadece teknoloji sa\u011flay\u0131c\u0131s\u0131n\u0131n altyap\u0131s\u0131na de\u011fil, ayn\u0131 zamanda o altyap\u0131n\u0131n eri\u015filebilirli\u011fine de ba\u011fl\u0131 oldu\u011funu g\u00f6rm\u00fc\u015f olduk. Bu t\u00fcr durumlar, i\u015f s\u00fcreklili\u011fi planlar\u0131n\u0131n ne kadar hayati oldu\u011funu vurguluyor.<\/p>\n<h2>Offline Apex Geli\u015ftirme: \u0130lk Ad\u0131mlar<\/h2>\n<p>Kesintinin ya\u015fand\u0131\u011f\u0131 ilk anlarda panik havas\u0131 hakimdi. Ancak, bu durumun ge\u00e7ici olaca\u011f\u0131n\u0131 umarak, alternatif yollar aramaya ba\u015flad\u0131k. Temel sorunumuz, Apex kodlar\u0131m\u0131z\u0131 yaz\u0131p test edebilece\u011fimiz bir ortam\u0131n olmamas\u0131yd\u0131. Mevcut durumda, kodlar\u0131m\u0131z\u0131 do\u011frudan Salesforce org&#8217;umuzda yaz\u0131yor ve anonim Apex sayfas\u0131nda veya Developer Console&#8217;da \u00e7al\u0131\u015ft\u0131r\u0131yorduk. Bu, kesinlikle offline geli\u015ftirme i\u00e7in uygun bir y\u00f6ntem de\u011fildi. Bu noktada, Salesforce DX (SFDX) CLI&#8217;nin potansiyelini hat\u0131rlad\u0131k. SFDX, meta verileri yerel bir dosya sistemine \u00e7ekme ve buradan tekrar org&#8217;a deploy etme yetene\u011fine sahipti. Bu, bize bir nebze olsun umut verdi. \u0130lk ad\u0131m olarak, SFDX CLI&#8217;yi kullanarak mevcut projemizin meta verilerini yerel makinemize \u00e7ektik. Bu, kodlar\u0131m\u0131z\u0131n, trigger&#8217;lar\u0131m\u0131z\u0131n, Visualforce sayfalar\u0131m\u0131z\u0131n ve di\u011fer t\u00fcm bile\u015fenlerimizin yerel bir kopyas\u0131n\u0131 elde etmemizi sa\u011flad\u0131. Bu veriler, asl\u0131nda bir t\u00fcr &#8220;snapshot&#8221; (anl\u0131k g\u00f6r\u00fcnt\u00fc) idi ve bu sayede \u00fczerinde \u00e7al\u0131\u015fmaya devam edebilirdik. Ancak, bu sadece ba\u015flang\u0131\u00e7t\u0131; kodu \u00e7al\u0131\u015ft\u0131rmak ve test etmek hala b\u00fcy\u00fck bir sorundu.<\/p>\n<h3>Yerel Geli\u015ftirme Ortam\u0131 Kurulumu ve SFDX Kullan\u0131m\u0131<\/h3>\n<p>SFDX CLI, yerel geli\u015ftirme ortamlar\u0131 kurmam\u0131z i\u00e7in bize g\u00fc\u00e7l\u00fc bir ara\u00e7 seti sunar. Kesinti s\u0131ras\u0131nda, SFDX CLI&#8217;yi kullanarak mevcut projemizin meta verilerini yerel makinemize \u00e7ektik. Bu, asl\u0131nda projemizin bir yede\u011fini almak gibiydi. A\u015fa\u011f\u0131daki komut, bu i\u015flemi ger\u00e7ekle\u015ftirmemizi sa\u011flad\u0131:<\/p>\n<div class=\"code-container\">\n<pre><code>sfdx force:source:pull --forceoverwriteusername<\/code><\/pre>\n<\/p><\/div>\n<p>Bu komut, varsay\u0131lan olarak ba\u011fl\u0131 oldu\u011fumuz org&#8217;dan t\u00fcm kaynaklar\u0131 (apex s\u0131n\u0131flar\u0131, trigger&#8217;lar, lightning bile\u015fenleri vb.) yerel dosya sistemimize \u00e7eker. Bu, kodlar\u0131m\u0131z\u0131n ve di\u011fer meta verilerimizin yerel bir kopyas\u0131na sahip olmam\u0131z\u0131 sa\u011flad\u0131. Art\u0131k kodlar\u0131m\u0131z\u0131 bir metin edit\u00f6r\u00fcnde (\u00f6rne\u011fin, VS Code) a\u00e7\u0131p inceleyebilir ve d\u00fczenleyebilirdik. Ancak, bu sadece kodlar\u0131 g\u00f6rmemizi sa\u011fl\u0131yordu; onlar\u0131 \u00e7al\u0131\u015ft\u0131ram\u0131yorduk. Apex kodlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in bir Salesforce org&#8217;una ihtiyac\u0131m\u0131z vard\u0131. Bu noktada, &#8220;scratch org&#8221; (\u00e7izik org) kavram\u0131 devreye girdi. SFDX, ge\u00e7ici, bulut tabanl\u0131 org&#8217;lar olu\u015fturmam\u0131za olanak tan\u0131r. Bu org&#8217;lar, belirli bir s\u00fcre sonra otomatik olarak silinirler. Kesinti s\u0131ras\u0131nda, bu scratch org&#8217;lar\u0131 kullanarak kodlar\u0131m\u0131z\u0131 test etme imkan\u0131m\u0131z olmasa da, kodlar\u0131m\u0131z\u0131 yerel olarak derleyip olas\u0131 s\u00f6zdizimi hatalar\u0131n\u0131 yakalayabilirdik.<\/p>\n<h2>Apex Kodunu Lokal Olarak Derleme ve Hata Ay\u0131klama<\/h2>\n<p>Salesforce org&#8217;una eri\u015fimimiz olmad\u0131\u011f\u0131nda, Apex kodlar\u0131m\u0131z\u0131 lokal olarak derlemek, olas\u0131 s\u00f6zdizimi hatalar\u0131n\u0131 ve temel mant\u0131k sorunlar\u0131n\u0131 erken a\u015famada yakalamam\u0131za yard\u0131mc\u0131 oldu. SFDX CLI, bu konuda bize bir \u00e7\u00f6z\u00fcm sundu. Yerel makinemize \u00e7ekti\u011fimiz meta verileri kullanarak, SFDX&#8217;in yerel derleme yeteneklerini devreye soktuk. Bu, tam bir org&#8217;da \u00e7al\u0131\u015fan derleyicinin yapt\u0131\u011f\u0131 gibi, Apex kodlar\u0131m\u0131z\u0131 ayr\u0131\u015ft\u0131r\u0131p (parse) ve s\u00f6zdizimsel olarak do\u011fru olup olmad\u0131\u011f\u0131n\u0131 kontrol etmemizi sa\u011flad\u0131. Bu s\u00fcre\u00e7, \u00f6zellikle karma\u015f\u0131k ve uzun Apex s\u0131n\u0131flar\u0131 i\u00e7in zaman kazand\u0131r\u0131c\u0131 oldu. Hatalar\u0131, kodlar\u0131 org&#8217;a deploy etmeye \u00e7al\u0131\u015fmadan \u00f6nce tespit edebilmek, deploy s\u00fcre\u00e7lerindeki ba\u015far\u0131s\u0131zl\u0131k oran\u0131n\u0131 d\u00fc\u015f\u00fcrd\u00fc. \u00d6rne\u011fin, bir trigger&#8217;da veya bir Apex s\u0131n\u0131f\u0131nda yanl\u0131\u015f bir de\u011fi\u015fken ad\u0131, eksik bir noktal\u0131 virg\u00fcl veya hatal\u0131 bir parantez gibi basit s\u00f6zdizimi hatalar\u0131, yerel derleme s\u0131ras\u0131nda kolayca tespit edilebilirdi. Bu, \u00f6zellikle b\u00fcy\u00fck kod tabanlar\u0131nda, geli\u015ftirme d\u00f6ng\u00fcs\u00fcn\u00fc h\u0131zland\u0131rmak i\u00e7in kritikti. Kodlar\u0131m\u0131z\u0131 lokal olarak derleyebilmek, ayn\u0131 zamanda kod kalitesini art\u0131rmaya da yard\u0131mc\u0131 oldu. \u00c7\u00fcnk\u00fc geli\u015ftiriciler, herhangi bir org ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 olmadan, kodlar\u0131n\u0131 daha rahat bir \u015fekilde g\u00f6zden ge\u00e7irebilir ve iyile\u015ftirebilirlerdi.<\/p>\n<h3>Lokal Derleme Ara\u00e7lar\u0131 ve Teknikleri<\/h3>\n<p>SFDX CLI, yerel derleme i\u015flemleri i\u00e7in temel ara\u00e7lar\u0131 sa\u011flar. <code>sfdx force:source:deploy<\/code> komutu, meta verileri bir org&#8217;a deploy etmek i\u00e7in kullan\u0131l\u0131r. Ancak, bu komutun \u00e7al\u0131\u015fabilmesi i\u00e7in bir org&#8217;a ba\u011fl\u0131 olmam\u0131z gerekir. Bizim durumumuzda, org&#8217;a eri\u015fimimiz yoktu. Bu nedenle, yerel derleme i\u00e7in daha derinlemesine bir yakla\u015f\u0131m izlememiz gerekti. SFDX&#8217;in alt\u0131nda yatan teknolojiler, Apex derleyicisini lokal olarak \u00e7al\u0131\u015ft\u0131rmam\u0131za olanak tan\u0131r. Bu, genellikle bir IDE (Integrated Development Environment &#8211; Entegre Geli\u015ftirme Ortam\u0131) eklentisi arac\u0131l\u0131\u011f\u0131yla veya do\u011frudan SFDX CLI komutlar\u0131 arac\u0131l\u0131\u011f\u0131yla yap\u0131l\u0131r. \u00d6rne\u011fin, Visual Studio Code&#8217;da Salesforce uzant\u0131s\u0131, Apex kodlar\u0131n\u0131 yazarken ger\u00e7ek zamanl\u0131 olarak s\u00f6zdizimi hatalar\u0131n\u0131 vurgular. Bu, kodlar\u0131m\u0131z\u0131 kaydetti\u011fimiz anda olas\u0131 sorunlar\u0131 g\u00f6rmemizi sa\u011flar. Daha sonra, SFDX CLI&#8217;yi kullanarak meta verilerimizi belirli bir org&#8217;a (e\u011fer eri\u015fimimiz olsayd\u0131) veya bir &#8220;scratch org&#8221;a deploy etmeye \u00e7al\u0131\u015ft\u0131\u011f\u0131m\u0131zda, arka planda Apex derleyicisi \u00e7al\u0131\u015f\u0131r ve herhangi bir hatay\u0131 raporlar. Kesinti s\u0131ras\u0131nda, bu derleme i\u015flemini do\u011frudan SFDX CLI ile tetikleyebilecek komutlar\u0131 ara\u015ft\u0131rd\u0131k. Bu, genellikle <code>sfdx force:apex:compile<\/code> gibi komutlar veya SFDX&#8217;in daha geli\u015fmi\u015f meta veri i\u015fleme yetenekleri arac\u0131l\u0131\u011f\u0131yla ger\u00e7ekle\u015ftirilebilir. Bu ara\u00e7lar, Apex kodlar\u0131m\u0131z\u0131 derlemek, olas\u0131 hatalar\u0131 yakalamak ve kodun yap\u0131s\u0131n\u0131 analiz etmek i\u00e7in bize imkan sa\u011flad\u0131. Bu teknik, tam bir org&#8217;a ba\u011fl\u0131 olmadan kodun temel do\u011frulu\u011funu sa\u011flamak i\u00e7in hayati \u00f6nem ta\u015f\u0131yordu.<\/p>\n<h2>Mock Servisler ve Stub&#8217;lar ile Test Stratejileri<\/h2>\n<p>Apex kodlar\u0131m\u0131z\u0131n sadece s\u00f6zdizimsel olarak do\u011fru olmas\u0131 yeterli de\u011fildi; ayn\u0131 zamanda i\u015f mant\u0131\u011f\u0131n\u0131 da do\u011fru bir \u015fekilde yerine getirmesi gerekiyordu. Ancak, d\u0131\u015f sistemlere veya di\u011fer Salesforce mod\u00fcllerine ba\u011f\u0131ml\u0131 olan kodlar\u0131m\u0131z\u0131, org&#8217;a eri\u015fimimiz olmadan test etmek imkans\u0131zd\u0131. Bu noktada, mock servisler ve stub&#8217;lar (sahte hizmetler ve taklitler) devreye girdi. Mock servisler, harici bir sistemin veya bir Salesforce bile\u015feninin davran\u0131\u015f\u0131n\u0131 taklit eden sahte yan\u0131tlar \u00fcreten yap\u0131lard\u0131r. Stub&#8217;lar ise, belirli bir fonksiyonun veya metotun beklenen \u00e7\u0131kt\u0131s\u0131n\u0131 d\u00f6nd\u00fcren basit kod par\u00e7ac\u0131klar\u0131d\u0131r. Bu teknikleri kullanarak, ba\u011f\u0131ml\u0131 oldu\u011fumuz bile\u015fenlerin yoklu\u011funda bile kodlar\u0131m\u0131z\u0131n belirli k\u0131s\u0131mlar\u0131n\u0131 izole edip test edebildik. \u00d6rne\u011fin, bir Apex s\u0131n\u0131f\u0131, harici bir REST API&#8217;ye istek g\u00f6nderiyorsa, bu API&#8217;nin yan\u0131t\u0131n\u0131 taklit eden bir mock servis olu\u015fturabilirdik. Bu mock servis, API&#8217;nin normalde d\u00f6nd\u00fcrece\u011fi JSON yan\u0131t\u0131n\u0131 d\u00f6nd\u00fcr\u00fcrd\u00fc. B\u00f6ylece, Apex s\u0131n\u0131f\u0131m\u0131z bu yan\u0131t\u0131 al\u0131p i\u015fleyebilir ve do\u011fru davran\u0131p davranmad\u0131\u011f\u0131n\u0131 kontrol edebilirdik. Bu yakla\u015f\u0131m, \u00f6zellikle entegrasyon testleri i\u00e7in \u00e7ok de\u011ferliydi. Kesinti s\u0131ras\u0131nda, bu mock servisleri yerel olarak \u00e7al\u0131\u015ft\u0131rd\u0131k ve Apex kodlar\u0131m\u0131z\u0131 bu sahte ortamda test ettik. Bu, kodlar\u0131m\u0131z\u0131n deploy edildi\u011finde \u00e7al\u0131\u015faca\u011f\u0131na dair bize daha fazla g\u00fcven verdi.<\/p>\n<h3>Vaka Analizi: Harici Bir API Entegrasyonu<\/h3>\n<p>Ekibimiz, bir m\u00fc\u015fteri ili\u015fkileri y\u00f6netim (CRM) platformundan gelen verileri Salesforce&#8217;a entegre eden bir Apex s\u0131n\u0131f\u0131 \u00fczerinde \u00e7al\u0131\u015f\u0131yordu. Bu Apex s\u0131n\u0131f\u0131, harici CRM platformunun API&#8217;sine istek g\u00f6nderiyor, yan\u0131t\u0131 al\u0131yor ve bu verileri Salesforce&#8217;ta ilgili kay\u0131tlara (\u00f6rne\u011fin, Hesaplar, Ki\u015filer) g\u00fcncelliyordu. Dreamforce kesintisi s\u0131ras\u0131nda, bu entegrasyonun kritik bir b\u00f6l\u00fcm\u00fcn\u00fc deploy etmemiz gerekiyordu. Ancak, harici CRM API&#8217;sine eri\u015fimimiz yoktu. Bu durumu a\u015fmak i\u00e7in, bu harici API&#8217;nin beklenen yan\u0131tlar\u0131n\u0131 taklit eden bir mock servis olu\u015fturduk. Bu mock servis, belirli senaryolar i\u00e7in (\u00f6rne\u011fin, ba\u015far\u0131l\u0131 veri al\u0131m\u0131, veri bulunamamas\u0131, API hatas\u0131) \u00f6nceden tan\u0131mlanm\u0131\u015f JSON yan\u0131tlar\u0131 d\u00f6nd\u00fcr\u00fcyordu. Ard\u0131ndan, Apex entegrasyon s\u0131n\u0131f\u0131m\u0131z\u0131 bu mock servisi kullanacak \u015fekilde g\u00fcncelledik. Bu g\u00fcncelleme, Apex s\u0131n\u0131f\u0131m\u0131z\u0131n <code>HttpRequest<\/code> ve <code>HttpResponse<\/code> nesnelerini do\u011frudan harici API&#8217;ye g\u00f6ndermek yerine, bizim olu\u015fturdu\u011fumuz mock servis arac\u0131l\u0131\u011f\u0131yla sahte istekler yapmas\u0131n\u0131 sa\u011flad\u0131. Bu sayede, Apex s\u0131n\u0131f\u0131m\u0131z\u0131n veriyi do\u011fru \u015fekilde ayr\u0131\u015ft\u0131r\u0131p ayr\u0131\u015ft\u0131ramad\u0131\u011f\u0131n\u0131, hata durumlar\u0131n\u0131 do\u011fru y\u00f6netip y\u00f6netemedi\u011fini ve veriyi Salesforce&#8217;ta do\u011fru \u015fekilde g\u00fcncelleyip g\u00fcncelleyemedi\u011fini test edebildik. Bu vaka analizi, karma\u015f\u0131k entegrasyon senaryolar\u0131nda bile, ba\u011f\u0131ml\u0131 sistemlere eri\u015fimimiz olmasa bile test s\u00fcre\u00e7lerini nas\u0131l s\u00fcrd\u00fcrebilece\u011fimizi g\u00f6sterdi. Bu yakla\u015f\u0131m, sadece kesintilerde de\u011fil, ayn\u0131 zamanda geli\u015ftirme s\u00fcrecinin erken a\u015famalar\u0131nda da maliyetleri d\u00fc\u015f\u00fcrmek ve geli\u015ftirme h\u0131z\u0131n\u0131 art\u0131rmak i\u00e7in kullan\u0131labilir.<\/p>\n<h2>Kod Depolar\u0131 ve S\u00fcr\u00fcm Kontrol\u00fcn\u00fcn \u00d6nemi<\/h2>\n<p>Bu t\u00fcr beklenmedik kesintilerde, kodlar\u0131m\u0131z\u0131n g\u00fcvenli bir yerde sakland\u0131\u011f\u0131ndan emin olmak kritik \u00f6nem ta\u015f\u0131r. Git gibi s\u00fcr\u00fcm kontrol sistemleri (version control systems), kodlar\u0131m\u0131z\u0131n ge\u00e7mi\u015fini takip etmemizi, farkl\u0131 s\u00fcr\u00fcmler aras\u0131nda ge\u00e7i\u015f yapmam\u0131z\u0131 ve ekip \u00fcyeleriyle i\u015fbirli\u011fi yapmam\u0131z\u0131 sa\u011flar. Dreamforce 2026 kesintisi s\u0131ras\u0131nda, GitHub&#8217;daki kod depomuz bizim i\u00e7in bir kurtar\u0131c\u0131 oldu. T\u00fcm Apex kodlar\u0131m\u0131z, trigger&#8217;lar\u0131m\u0131z ve di\u011fer meta verilerimiz, Git arac\u0131l\u0131\u011f\u0131yla depomuzda saklan\u0131yordu. Bu sayede, Salesforce org&#8217;umuza eri\u015fimimiz olmasa bile, kodlar\u0131m\u0131z\u0131n en son s\u00fcr\u00fcmlerine eri\u015febiliyorduk. Bu, offline geli\u015ftirme ve test s\u00fcre\u00e7lerimizi ba\u015flatmam\u0131z i\u00e7in temel bir ad\u0131md\u0131. Kodlar\u0131m\u0131z\u0131 yerel makinemize \u00e7ektikten sonra, Git&#8217;in sundu\u011fu dallanma (branching) ve birle\u015ftirme (merging) \u00f6zelliklerini kullanarak yeni \u00f6zellikleri geli\u015ftirebildik. Bu \u00f6zellikler, ana kod taban\u0131n\u0131 bozmadan yeni i\u015flevsellikleri izole etmemize olanak tan\u0131d\u0131. Daha sonra, Salesforce org&#8217;umuz tekrar eri\u015filebilir hale geldi\u011finde, bu de\u011fi\u015fiklikleri kolayca ana dala birle\u015ftirebildik. S\u00fcr\u00fcm kontrol\u00fc, sadece bir yedekleme mekanizmas\u0131 olman\u0131n \u00f6tesinde, bir i\u015fbirli\u011fi arac\u0131d\u0131r ve bu t\u00fcr kriz anlar\u0131nda geli\u015ftirme s\u00fcrecinin kesintisiz devam etmesini sa\u011flamak i\u00e7in vazge\u00e7ilmezdir. Kodlar\u0131m\u0131z\u0131n g\u00fcvende olmas\u0131, herhangi bir teknolojik aksakl\u0131kta h\u0131zl\u0131ca toparlanmam\u0131z\u0131 sa\u011flar.<\/p>\n<h3>Git ve CI\/CD Pipeline&#8217;lar\u0131 ile Otomatikle\u015ftirilmi\u015f Da\u011f\u0131t\u0131m<\/h3>\n<p>Git gibi s\u00fcr\u00fcm kontrol sistemleri, CI\/CD (Continuous Integration\/Continuous Deployment &#8211; S\u00fcrekli Entegrasyon\/S\u00fcrekli Da\u011f\u0131t\u0131m) pipeline&#8217;lar\u0131n\u0131n temelini olu\u015fturur. Kesinti s\u0131ras\u0131nda, CI\/CD pipeline&#8217;lar\u0131m\u0131z\u0131n devreye girip giremeyece\u011fi \u00f6nemli bir soruydu. E\u011fer CI\/CD sunucular\u0131m\u0131z ve ba\u011f\u0131ml\u0131 servislerimiz (\u00f6rne\u011fin, bulut tabanl\u0131 build ara\u00e7lar\u0131, test ortamlar\u0131) eri\u015filebilir durumdaysa, kod da\u011f\u0131t\u0131m s\u00fcre\u00e7lerimiz devam edebilirdi. Bizim senaryomuzda, CI\/CD platformumuz bulut tabanl\u0131yd\u0131 ve Salesforce kesintisinden do\u011frudan etkilenmedi. Bu, Git&#8217;te bir kod de\u011fi\u015fikli\u011fi yap\u0131ld\u0131\u011f\u0131nda veya bir &#8220;pull request&#8221; (\u00e7ekme iste\u011fi) olu\u015fturuldu\u011funda, CI\/CD pipeline&#8217;\u0131n\u0131n otomatik olarak tetiklenmesini ve kodun otomatik olarak derlenip test edilmesini sa\u011flad\u0131. Hatta, e\u011fer bir test ortam\u0131 (\u00f6rne\u011fin, bir &#8220;scratch org&#8221; veya ayr\u0131 bir sandbox) mevcutsa, kodun bu ortama otomatik olarak deploy edilmesi bile m\u00fcmk\u00fcnd\u00fc. Bu, kesinti s\u0131ras\u0131nda bile, geli\u015ftirme ve test s\u00fcre\u00e7lerinin \u00f6nemli bir k\u0131sm\u0131n\u0131n otomatik olarak devam etmesini sa\u011flad\u0131. Bu, geli\u015ftirme h\u0131z\u0131m\u0131z\u0131 ve verimlili\u011fimizi korumam\u0131za yard\u0131mc\u0131 oldu. CI\/CD&#8217;nin g\u00fcc\u00fc, bu t\u00fcr beklenmedik olaylarda kendini daha net g\u00f6steriyor. Otomatikle\u015ftirilmi\u015f s\u00fcre\u00e7ler, insan m\u00fcdahalesini azalt\u0131r ve hatalar\u0131n daha h\u0131zl\u0131 tespit edilip d\u00fczeltilmesini sa\u011flar.<\/p>\n<h2>Kesintiden \u00c7\u0131kar\u0131lan Dersler ve Gelece\u011fe Y\u00f6nelik Stratejiler<\/h2>\n<p>Dreamforce 2026&#8217;daki bu beklenmedik kesinti, bize \u00f6nemli dersler \u00f6\u011fretti. Birincisi, tek bir hata noktas\u0131na (single point of failure) ba\u011f\u0131ml\u0131 olman\u0131n riskleri. Salesforce platformu ne kadar g\u00fcvenilir olursa olsun, her zaman kesintilere kar\u015f\u0131 savunmas\u0131zd\u0131r. Bu nedenle, geli\u015ftirme ve da\u011f\u0131t\u0131m s\u00fcre\u00e7lerimizi \u00e7e\u015fitlendirmemiz gerekiyor. \u0130kincisi, offline geli\u015ftirme yeteneklerinin \u00f6nemi. SFDX ve CI\/CD gibi ara\u00e7lar, bu konuda bize yard\u0131mc\u0131 oldu. \u00dc\u00e7\u00fcnc\u00fcs\u00fc, etkili s\u00fcr\u00fcm kontrol\u00fc ve otomatikle\u015ftirilmi\u015f testlerin vazge\u00e7ilmezli\u011fi. Bu ara\u00e7lar, kriz anlar\u0131nda bile geli\u015ftirme s\u00fcrecini devam ettirmemizi sa\u011flad\u0131. Gelecekte, bu deneyimlerden yola \u00e7\u0131karak, daha dayan\u0131kl\u0131 ve esnek geli\u015ftirme stratejileri benimsemeye devam edece\u011fiz. Bu, yerel geli\u015ftirme ortamlar\u0131n\u0131 daha fazla kullanmay\u0131, kapsaml\u0131 mock servisler ve stub&#8217;lar olu\u015fturmay\u0131 ve CI\/CD pipeline&#8217;lar\u0131m\u0131z\u0131 daha da g\u00fc\u00e7lendirmeyi i\u00e7eriyor. Ayr\u0131ca, Salesforce d\u0131\u015f\u0131ndaki di\u011fer platformlarla entegrasyonlar\u0131m\u0131z\u0131 tasarlarken, olas\u0131 kesintilere kar\u015f\u0131 daha diren\u00e7li olacak \u015fekilde tasarlamal\u0131y\u0131z. Bu, asenkron ileti\u015fim modellerini benimsemek, hata toleransl\u0131 (fault-tolerant) tasar\u0131mlar yapmak ve kapsaml\u0131 bir i\u015f s\u00fcreklili\u011fi plan\u0131na sahip olmak anlam\u0131na gelir. Bu dersler, sadece Salesforce geli\u015ftiricileri i\u00e7in de\u011fil, herhangi bir bulut tabanl\u0131 platform \u00fczerinde \u00e7al\u0131\u015fan t\u00fcm geli\u015ftiriciler i\u00e7in ge\u00e7erlidir.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<ul>\n<li>\n            <strong>S: Salesforce kesintisi s\u0131ras\u0131nda Apex kodlar\u0131m\u0131 nas\u0131l test edebilirim?<\/strong><\/p>\n<p>C: Mock servisler ve stub&#8217;lar kullanarak harici ba\u011f\u0131ml\u0131l\u0131klar\u0131 taklit edebilir ve yerel test \u00e7er\u00e7eveleriyle kodunuzu izole bir \u015fekilde test edebilirsiniz. SFDX CLI&#8217;nin sundu\u011fu yerel derleme yetenekleri de s\u00f6zdizimi hatalar\u0131n\u0131 yakalaman\u0131za yard\u0131mc\u0131 olur.<\/p>\n<\/li>\n<li>\n            <strong>S: Salesforce DX (SFDX) tam olarak ne i\u015fe yarar ve kesinti s\u0131ras\u0131nda nas\u0131l yard\u0131mc\u0131 olur?<\/strong><\/p>\n<p>C: SFDX, geli\u015ftiricilerin meta verileri yerel olarak y\u00f6netmelerine, scratch org&#8217;lar olu\u015fturmalar\u0131na ve kodlar\u0131 CI\/CD pipeline&#8217;lar\u0131 arac\u0131l\u0131\u011f\u0131yla da\u011f\u0131tmalar\u0131na olanak tan\u0131r. Kesinti s\u0131ras\u0131nda, meta verileri yerel olarak \u00e7ekip \u00fczerinde \u00e7al\u0131\u015fmaya devam etmenizi ve kodunuzu offline olarak derlemenizi sa\u011flar.<\/p>\n<\/li>\n<li>\n            <strong>S: CI\/CD pipeline&#8217;lar\u0131 Salesforce kesintilerinden nas\u0131l etkilenir?<\/strong><\/p>\n<p>C: E\u011fer CI\/CD sunucular\u0131n\u0131z ve ba\u011f\u0131ml\u0131 servisleriniz Salesforce d\u0131\u015f\u0131ndaysa, kesintiden do\u011frudan etkilenmeyebilirler. Bu, kod da\u011f\u0131t\u0131m s\u00fcre\u00e7lerinin otomatik olarak devam etmesini sa\u011flayabilir.<\/p>\n<\/li>\n<li>\n            <strong>S: Kodlar\u0131m\u0131 Git&#8217;te saklamak, Salesforce kesintilerinde ne gibi bir avantaj sa\u011flar?<\/strong><\/p>\n<p>C: Git, kodlar\u0131n\u0131z\u0131n g\u00fcvenli bir kopyas\u0131n\u0131 tutar ve ge\u00e7mi\u015f s\u00fcr\u00fcmleri y\u00f6netmenizi sa\u011flar. Kesinti s\u0131ras\u0131nda, kodlar\u0131n\u0131za eri\u015fmenizi ve offline geli\u015ftirmeye devam etmenizi m\u00fcmk\u00fcn k\u0131lar.<\/p>\n<\/li>\n<li>\n            <strong>S: Offline Apex geli\u015ftirme i\u00e7in en iyi pratikler nelerdir?<\/strong><\/p>\n<p>C: SFDX CLI&#8217;yi etkin kullanmak, kapsaml\u0131 mock servisler olu\u015fturmak, s\u00fcr\u00fcm kontrol\u00fcn\u00fc d\u00fczenli kullanmak ve CI\/CD pipeline&#8217;lar\u0131n\u0131 otomatikle\u015ftirmek en iyi pratikler aras\u0131ndad\u0131r.<\/p>\n<\/li>\n<\/ul>\n<p>#Salesforce #Apex #Dreamforce #Geli\u015ftirme #Teknoloji #BulutBili\u015fim<\/p>\n<div class=\"github-example-link\"><strong>\u00d6rnek kod:<\/strong> <a href=\"https:\/\/github.com\/fatihsoysalcom\/salesforce-apex-offline-development-simulation\" target=\"_blank\" rel=\"noopener noreferrer\">github.com\/fatihsoysalcom\/salesforce-apex-offline-development-simulation<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"Dreamforce, her y\u0131l binlerce Salesforce kullan\u0131c\u0131s\u0131n\u0131, geli\u015ftiricisini ve i\u015f orta\u011f\u0131n\u0131 bir araya getiren devasa bir etkinlik.","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-44731","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Dreamforce 2026&#039;da Salesforce \u00c7\u00f6kt\u00fc\u011f\u00fcnde: Org Olmadan Apex G\u00f6ndermeye Devam Etmenin Yollar\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dreamforce 2026&#039;da Salesforce \u00c7\u00f6kt\u00fc\u011f\u00fcnde: Org Olmadan Apex G\u00f6ndermeye Devam Etmenin Yollar\u0131\" \/>\n<meta property=\"og:description\" content=\"Dreamforce, her y\u0131l binlerce Salesforce kullan\u0131c\u0131s\u0131n\u0131, geli\u015ftiricisini ve i\u015f orta\u011f\u0131n\u0131 bir araya getiren devasa bir etkinlik.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-16T18:02:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-16T18:03:21+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Dreamforce 2026&#8217;da Salesforce \u00c7\u00f6kt\u00fc\u011f\u00fcnde: Org Olmadan Apex G\u00f6ndermeye Devam Etmenin Yollar\u0131\",\"datePublished\":\"2026-09-16T18:02:46+00:00\",\"dateModified\":\"2026-09-16T18:03:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/\"},\"wordCount\":3309,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/\",\"name\":\"Dreamforce 2026'da Salesforce \u00c7\u00f6kt\u00fc\u011f\u00fcnde: Org Olmadan Apex G\u00f6ndermeye Devam Etmenin Yollar\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-09-16T18:02:46+00:00\",\"dateModified\":\"2026-09-16T18:03:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dreamforce 2026&#8217;da Salesforce \u00c7\u00f6kt\u00fc\u011f\u00fcnde: Org Olmadan Apex G\u00f6ndermeye Devam Etmenin Yollar\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Dreamforce 2026'da Salesforce \u00c7\u00f6kt\u00fc\u011f\u00fcnde: Org Olmadan Apex G\u00f6ndermeye Devam Etmenin Yollar\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/","og_locale":"tr_TR","og_type":"article","og_title":"Dreamforce 2026'da Salesforce \u00c7\u00f6kt\u00fc\u011f\u00fcnde: Org Olmadan Apex G\u00f6ndermeye Devam Etmenin Yollar\u0131","og_description":"Dreamforce, her y\u0131l binlerce Salesforce kullan\u0131c\u0131s\u0131n\u0131, geli\u015ftiricisini ve i\u015f orta\u011f\u0131n\u0131 bir araya getiren devasa bir etkinlik.","og_url":"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-09-16T18:02:46+00:00","article_modified_time":"2026-09-16T18:03:21+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"16 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Dreamforce 2026&#8217;da Salesforce \u00c7\u00f6kt\u00fc\u011f\u00fcnde: Org Olmadan Apex G\u00f6ndermeye Devam Etmenin Yollar\u0131","datePublished":"2026-09-16T18:02:46+00:00","dateModified":"2026-09-16T18:03:21+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/"},"wordCount":3309,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/","url":"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/","name":"Dreamforce 2026'da Salesforce \u00c7\u00f6kt\u00fc\u011f\u00fcnde: Org Olmadan Apex G\u00f6ndermeye Devam Etmenin Yollar\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-09-16T18:02:46+00:00","dateModified":"2026-09-16T18:03:21+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/dreamforce-2026da-salesforce-coktugunde-org-olmadan-apex-gondermeye-devam-etmenin-yollari\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Dreamforce 2026&#8217;da Salesforce \u00c7\u00f6kt\u00fc\u011f\u00fcnde: Org Olmadan Apex G\u00f6ndermeye Devam Etmenin Yollar\u0131"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/44731","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=44731"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/44731\/revisions"}],"predecessor-version":[{"id":44732,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/44731\/revisions\/44732"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=44731"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=44731"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=44731"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}