<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Muhammet Şafak — Blog</title><description>Polyglot geliştirici ve sistem mimarı Muhammet Şafak. PHP, Laravel, JavaScript ve Go ile uygulamalı geliştirme üzerine yazılar; 2014’ten bugüne uzanan bir geliştirme günlüğü, projeler ve deneyimler.</description><link>https://www.muhammetsafak.com.tr/</link><language>tr-TR</language><item><title>Bu günlüğün on iki yılı: geriye dönüp bakmak</title><link>https://www.muhammetsafak.com.tr/blog/bu-gunlugun-on-iki-yili-geriye-donup-bakmak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/bu-gunlugun-on-iki-yili-geriye-donup-bakmak/</guid><description>2014&apos;ten 2026&apos;ya bu günlükte yazılan her şey bir araya geldiğinde anlattığı gelişim hikâyesi ve kapanış.</description><pubDate>Sun, 03 May 2026 00:00:00 GMT</pubDate><category>gunluk</category><category>php</category></item><item><title>Görünür olmak: yazmak neden bir kariyer yatırımıdır</title><link>https://www.muhammetsafak.com.tr/blog/gorunur-olmak-yazmak-neden-bir-kariyer-yatirimidir/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/gorunur-olmak-yazmak-neden-bir-kariyer-yatirimidir/</guid><description>Yazmak, düşünceyi netleştirir ve zamanla birikim sağlar. Kişisel marka değil, dürüst bir iz olarak görünür olmanın kariyer değeri üzerine.</description><pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate><category>gunluk</category><category>kariyer</category></item><item><title>Polyglot olmak bir hedef değil bir sonuçmuş</title><link>https://www.muhammetsafak.com.tr/blog/polyglot-olmak-bir-hedef-degil-bir-sonucmus/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/polyglot-olmak-bir-hedef-degil-bir-sonucmus/</guid><description>Çok dilli geliştirici olmak nasıl bir hedefe dönüştü, neden aslında hiç öyle olmadığını ve buna nasıl ulaştığımı düşünüyorum.</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate><category>gunluk</category><category>go</category><category>python</category><category>php</category></item><item><title>Laravel&apos;le on iki yıl: bir framework&apos;le büyümek</title><link>https://www.muhammetsafak.com.tr/blog/laravelle-on-iki-yil-bir-frameworkle-buyumek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravelle-on-iki-yil-bir-frameworkle-buyumek/</guid><description>2014&apos;ten 2026&apos;ya Laravel ile geçirilen on iki yıl: bir araçla birlikte olgunlaşmanın, onu aşmanın ve yeniden benimsemenin hikâyesi.</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category></item><item><title>2026&apos;da PHP ile uygulama geliştirmek: ekosistemin hali</title><link>https://www.muhammetsafak.com.tr/blog/2026da-php-ile-uygulama-gelistirmek-ekosistemin-hali/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/2026da-php-ile-uygulama-gelistirmek-ekosistemin-hali/</guid><description>PHP&apos;nin 2026&apos;daki gerçek durumu: dil olgunluğu, ekosistem sağlığı ve &apos;öldü&apos; söyleminin neden hâlâ yanlış olduğu.</description><pubDate>Sun, 04 Jan 2026 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>On bir yılın ardından: bir geliştiricinin değişen önceliği</title><link>https://www.muhammetsafak.com.tr/blog/on-bir-yilin-ardindan-bir-gelistiricinin-degisen-onceligi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/on-bir-yilin-ardindan-bir-gelistiricinin-degisen-onceligi/</guid><description>Bu günlüğün on bir yılında bir geliştiricinin önceliklerinin hızdan dayanıklılığa, koddan karara nasıl kaydığının değerlendirmesi.</description><pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate><category>gunluk</category><category>php</category></item><item><title>Yapay zeka çağında kod yazmanın değişen el becerisi</title><link>https://www.muhammetsafak.com.tr/blog/yapay-zeka-caginda-kod-yazmanin-degisen-el-becerisi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/yapay-zeka-caginda-kod-yazmanin-degisen-el-becerisi/</guid><description>Yapay zeka araçları kod yazmanın ne kadarını devraldı, geliştiriciye ne kaldı? Değişen el becerisi üzerine bir değerlendirme.</description><pubDate>Sun, 02 Nov 2025 00:00:00 GMT</pubDate><category>gunluk</category><category>araclar</category></item><item><title>Mentorluk ve bilgi paylaşımı: başkasını büyütürken büyümek</title><link>https://www.muhammetsafak.com.tr/blog/mentorluk-ve-bilgi-paylasimi-baskasini-buyuturken-buyumek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/mentorluk-ve-bilgi-paylasimi-baskasini-buyuturken-buyumek/</guid><description>Mentorluğun bir fedakârlık değil, kıdemli bir geliştirici için kendi gelişiminin de aracı olduğu üzerine bir kariyer yazısı.</description><pubDate>Sun, 05 Oct 2025 00:00:00 GMT</pubDate><category>gunluk</category><category>kariyer</category></item><item><title>Bir özelliği fikirden üç platforma: uçtan uca akışım</title><link>https://www.muhammetsafak.com.tr/blog/bir-ozelligi-fikirden-uc-platforma-uctan-uca-akisim/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/bir-ozelligi-fikirden-uc-platforma-uctan-uca-akisim/</guid><description>Bir özelliği API, web ve mobilde aynı anda teslim ettiğimde izlediğim olgunlaşmış, tekrarlanabilir süreci anlatıyorum.</description><pubDate>Sun, 07 Sep 2025 00:00:00 GMT</pubDate><category>gunluk</category><category>laravel</category><category>react-native</category></item><item><title>PHP 8.5 yolda: dilin olgunlaşan yüzü</title><link>https://www.muhammetsafak.com.tr/blog/php-85-yolda-dilin-olgunlasan-yuzu/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-85-yolda-dilin-olgunlasan-yuzu/</guid><description>PHP 8.5 henüz çıkmadı; ama gündemde olan önerilere bakarak on yılı aşkın bir dilin nasıl evrildiğini okuyorum.</description><pubDate>Sun, 03 Aug 2025 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>Go&apos;nun standart kütüphanesiyle ne kadar uzağa gidilir</title><link>https://www.muhammetsafak.com.tr/blog/gonun-standart-kutuphanesiyle-ne-kadar-uzaga-gidilir/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/gonun-standart-kutuphanesiyle-ne-kadar-uzaga-gidilir/</guid><description>Go&apos;nun zengin standart kütüphanesinin gerçekte ne kadar yol kat ettirdiğini, harici bağımlılık ekleme kararını somut örneklerle tartıyorum.</description><pubDate>Sun, 06 Jul 2025 00:00:00 GMT</pubDate><category>diller</category><category>go</category></item><item><title>Uzman mı, genelci mi: T-tipi bir kariyer</title><link>https://www.muhammetsafak.com.tr/blog/uzman-mi-genelci-mi-t-tipi-bir-kariyer/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/uzman-mi-genelci-mi-t-tipi-bir-kariyer/</guid><description>Derin uzmanlaşma ile geniş genelcilik arasındaki gerilimi ve T-tipi kariyer modelinin bu denklemi nasıl çözdüğünü aktarıyorum.</description><pubDate>Sun, 01 Jun 2025 00:00:00 GMT</pubDate><category>gunluk</category><category>kariyer</category></item><item><title>Expo&apos;da güncellemeleri OTA ile yönetmek</title><link>https://www.muhammetsafak.com.tr/blog/expoda-guncellemeleri-ota-ile-yonetmek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/expoda-guncellemeleri-ota-ile-yonetmek/</guid><description>Expo Updates ile mağaza döngüsünü beklemeden hızlı düzeltme yayınlamanın pratiklerini ve sınırlarını aktarıyorum.</description><pubDate>Sun, 04 May 2025 00:00:00 GMT</pubDate><category>gunluk</category><category>react-native</category></item><item><title>React 19 ve form&apos;ların yeni hali (actions)</title><link>https://www.muhammetsafak.com.tr/blog/react-19-ve-formlarin-yeni-hali-actions/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/react-19-ve-formlarin-yeni-hali-actions/</guid><description>React 19&apos;un kararlı sürümüyle gelen form actions modelini, mevcut yaklaşımlarla kıyaslayarak değerlendiriyorum.</description><pubDate>Sun, 06 Apr 2025 00:00:00 GMT</pubDate><category>arayuz</category><category>react</category></item><item><title>Polyglot bir kod tabanını sürdürmek: bağlam değiştirme maliyeti</title><link>https://www.muhammetsafak.com.tr/blog/polyglot-bir-kod-tabanini-surdurumek-baglan-degistirme-maliyeti/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/polyglot-bir-kod-tabanini-surdurumek-baglan-degistirme-maliyeti/</guid><description>Birden çok dilde aynı anda çalışmanın görünmeyen bilişsel bedeli ve bunu nasıl yönettiğimi aktarıyorum.</description><pubDate>Sun, 02 Mar 2025 00:00:00 GMT</pubDate><category>gunluk</category><category>go</category><category>php</category><category>typescript</category></item><item><title>Laravel 12: sürüm ritmi olgunlaşırken</title><link>https://www.muhammetsafak.com.tr/blog/laravel-12-surum-ritmi-olgunlasirken/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-12-surum-ritmi-olgunlasirken/</guid><description>Laravel 12 ile gelen değişiklikleri ve framework&apos;ün yıllık sürüm temposunun proje planlamasına etkisini değerlendiriyorum.</description><pubDate>Sun, 02 Feb 2025 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category></item><item><title>Tailwind CSS 4: yeni motor ve yapılandırma</title><link>https://www.muhammetsafak.com.tr/blog/tailwind-css-4-yeni-motor-ve-yapilandirma/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/tailwind-css-4-yeni-motor-ve-yapilandirma/</guid><description>Tailwind CSS 4 ile gelen Oxide motoru ve CSS-öncelikli yapılandırma yaklaşımını, büyük bir sürüm geçişinin gerektirdiği sakinlikle değerlendiriyorum.</description><pubDate>Sun, 05 Jan 2025 00:00:00 GMT</pubDate><category>arayuz</category><category>css</category><category>tailwind</category></item><item><title>Kendi ürününü tek başına kurmak: Looplio deneyimi</title><link>https://www.muhammetsafak.com.tr/blog/kendi-urununu-tek-basina-kurmak-looplio-deneyimi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/kendi-urununu-tek-basina-kurmak-looplio-deneyimi/</guid><description>API, web ve mobili tek başına yürüten bir geliştiricinin dürüst günlüğü; tek kişilik ürün geliştirmenin getirdiği ve götürdükleri.</description><pubDate>Sun, 01 Dec 2024 00:00:00 GMT</pubDate><category>gunluk</category><category>laravel</category></item><item><title>PHP 8.4 yolda: property hook&apos;lar ve asimetrik görünürlük</title><link>https://www.muhammetsafak.com.tr/blog/php-8-4-yolda-property-hooklar-ve-asimetrik-gorunurluk/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-8-4-yolda-property-hooklar-ve-asimetrik-gorunurluk/</guid><description>PHP 8.4 ile gelen property hook&apos;lar ve asimetrik görünürlük; bu eklemelerin sınıf modellemesini nasıl değiştireceği.</description><pubDate>Sun, 03 Nov 2024 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>Bir özelliği üç katmanda (API, web, mobil) birden teslim etmek</title><link>https://www.muhammetsafak.com.tr/blog/bir-ozelligi-uc-katmanda-api-web-mobil-birden-teslim-etmek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/bir-ozelligi-uc-katmanda-api-web-mobil-birden-teslim-etmek/</guid><description>Tek bir özelliği API, web ve mobil katmanlarında birlikte teslim etmenin uçtan uca akışı; Looplio üzerinde edindiğim pratik.</description><pubDate>Sun, 06 Oct 2024 00:00:00 GMT</pubDate><category>gunluk</category><category>laravel</category><category>react-native</category></item><item><title>Home (Cloud) Server Pi5 Upgrade</title><link>https://www.muhammetsafak.com.tr/blog/home-cloud-server-pi5-upgrade/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/home-cloud-server-pi5-upgrade/</guid><description>Raspberry Pi 5 ile ev bulut sunucusu kurulumu: CasaOS, NextCloud, RAID depolama ve Cloudflare Tunnel.</description><pubDate>Sun, 22 Sep 2024 00:00:00 GMT</pubDate><category>gunluk</category><category>linux</category></item><item><title>Expo ile mobil uygulamayı mağazaya göndermek</title><link>https://www.muhammetsafak.com.tr/blog/expo-ile-mobil-uygulamayi-magazaya-gondermek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/expo-ile-mobil-uygulamayi-magazaya-gondermek/</guid><description>Expo ve EAS Build ile bir React Native uygulamasını App Store ve Google Play&apos;e gönderme sürecinin gerçek deneyimi ve hazırlık adımları.</description><pubDate>Sun, 01 Sep 2024 00:00:00 GMT</pubDate><category>gunluk</category><category>react-native</category></item><item><title>React Native&apos;de performans: liste render&apos;ı</title><link>https://www.muhammetsafak.com.tr/blog/react-native-de-performans-liste-renderi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/react-native-de-performans-liste-renderi/</guid><description>React Native&apos;de büyük listeleri akıcı tutmanın somut teknikleri; FlatList, memo ve keyExtractor kullanımı ile gerçek deneyimler.</description><pubDate>Sun, 04 Aug 2024 00:00:00 GMT</pubDate><category>gunluk</category><category>react-native</category></item><item><title>Biri Github Actions mı dedi?</title><link>https://www.muhammetsafak.com.tr/blog/biri-github-actions-mi-dedi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/biri-github-actions-mi-dedi/</guid><description>GitHub Actions ile CI/CD&apos;ye giriş: iş akışları (workflow) nasıl kurulur ve süreçler nasıl otomatikleştirilir?</description><pubDate>Tue, 23 Jul 2024 00:00:00 GMT</pubDate><category>araclar</category><category>github-actions</category></item><item><title>Basic Authentication</title><link>https://www.muhammetsafak.com.tr/blog/basic-authentication/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/basic-authentication/</guid><description>HTTP Basic Authentication nedir, nasıl çalışır ve ne zaman kullanılır? Temel kimlik doğrulama yönteminin işleyişi.</description><pubDate>Sun, 14 Jul 2024 00:00:00 GMT</pubDate><category>web</category></item><item><title>JWT Authentication</title><link>https://www.muhammetsafak.com.tr/blog/jwt-authentication/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/jwt-authentication/</guid><description>JWT (JSON Web Token) ile kimlik doğrulama: token yapısı, çalışma mantığı ve tipik kullanım senaryoları.</description><pubDate>Sat, 13 Jul 2024 00:00:00 GMT</pubDate><category>web</category><category>jwt</category></item><item><title>API&apos;de idempotency: aynı isteği güvenle tekrar etmek</title><link>https://www.muhammetsafak.com.tr/blog/api-de-idempotency-ayni-istegi-guvenle-tekrar-etmek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/api-de-idempotency-ayni-istegi-guvenle-tekrar-etmek/</guid><description>Tekrarlanan API isteklerinin yan etki üretmemesini tasarlamak; idempotency anahtarları ve uygulama katmanında pratik çözümler.</description><pubDate>Sun, 07 Jul 2024 00:00:00 GMT</pubDate><category>web</category><category>api</category></item><item><title>Yan projeler ve açık kaynak: kariyere kattıkları ve gerçek maliyeti</title><link>https://www.muhammetsafak.com.tr/blog/yan-projeler-ve-acik-kaynak-kariyere-kattiklari-ve-gercek-maliyeti/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/yan-projeler-ve-acik-kaynak-kariyere-kattiklari-ve-gercek-maliyeti/</guid><description>Yan projelerin ve açık kaynağın kariyere etkisini dürüstçe değerlendirmek: getiri, maliyet ve bir projeyi ne zaman arşivlemenin doğru olduğu.</description><pubDate>Sun, 02 Jun 2024 00:00:00 GMT</pubDate><category>gunluk</category><category>kariyer</category></item><item><title>Go&apos;da test yazmak: tablo testleri (table-driven tests)</title><link>https://www.muhammetsafak.com.tr/blog/go-da-test-yazmak-tablo-testleri-table-driven-tests/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/go-da-test-yazmak-tablo-testleri-table-driven-tests/</guid><description>Go&apos;nun standart test kütüphanesi ve tablo testi (table-driven test) desenini uygulamalı olarak kavramak; dilin sade test felsefesini benimsemek.</description><pubDate>Sun, 05 May 2024 00:00:00 GMT</pubDate><category>diller</category><category>go</category><category>testing</category></item><item><title>Mobil ve web&apos;i aynı takvim mantığıyla beslemek (Looplio günlüğü)</title><link>https://www.muhammetsafak.com.tr/blog/mobil-ve-webi-ayni-takvim-mantigiyla-beslemek-looplio-gunlugu/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/mobil-ve-webi-ayni-takvim-mantigiyla-beslemek-looplio-gunlugu/</guid><description>Looplio&apos;da tek bir iş mantığını hem React Native hem web istemcisine tutarlı biçimde sunmanın pratik kararları ve öğretileri.</description><pubDate>Sun, 07 Apr 2024 00:00:00 GMT</pubDate><category>gunluk</category><category>laravel</category><category>react-native</category></item><item><title>Laravel 11 ile gelen yeni, ince iskelet yapısı</title><link>https://www.muhammetsafak.com.tr/blog/laravel-11-ile-gelen-yeni-ince-iskelet-yapisi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-11-ile-gelen-yeni-ince-iskelet-yapisi/</guid><description>Laravel 11&apos;in sadeleşen iskelet yapısı, kaldırılan varsayılanlar ve bunların günlük geliştirme pratiklerine somut etkisi.</description><pubDate>Sun, 03 Mar 2024 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category></item><item><title>React Native&apos;de gezinme (navigation) ve ekran mimarisi</title><link>https://www.muhammetsafak.com.tr/blog/react-native-de-gezinme-navigation-ve-ekran-mimarisi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/react-native-de-gezinme-navigation-ve-ekran-mimarisi/</guid><description>React Native Navigation Stack, Tab ve Drawer yapılarını Looplio bağlamında kurmanın pratik kararları ve ekran mimarisi yaklaşımı.</description><pubDate>Sun, 04 Feb 2024 00:00:00 GMT</pubDate><category>gunluk</category><category>react-native</category></item><item><title>İş değiştirme kararı: kalmak mı, gitmek mi</title><link>https://www.muhammetsafak.com.tr/blog/is-degistirme-karari-kalmak-mi-gitmek-mi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/is-degistirme-karari-kalmak-mi-gitmek-mi/</guid><description>Ayrılma ya da kalma kararını duygusal tepkiden ölçülebilir bir değerlendirmeye çevirmek; meşru sinyalleri geçici hayal kırıklığından ayırt etmek.</description><pubDate>Sun, 07 Jan 2024 00:00:00 GMT</pubDate><category>gunluk</category><category>kariyer</category></item><item><title>Bir yılda dört dil: polyglot pratiğin getirdiği zihin esnekliği</title><link>https://www.muhammetsafak.com.tr/blog/bir-yilda-dort-dil-polyglot-pratigin-getirdigi-zihin-esnekligi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/bir-yilda-dort-dil-polyglot-pratigin-getirdigi-zihin-esnekligi/</guid><description>Bir yıl içinde PHP, Go, Python ve TypeScript arasında gidip gelmenin düşünme biçimine etkisi üzerine bir değerlendirme.</description><pubDate>Sun, 03 Dec 2023 00:00:00 GMT</pubDate><category>gunluk</category><category>go</category><category>python</category><category>typescript</category><category>php</category></item><item><title>PHP 8.3: typed class constants ve gelen eklemeler</title><link>https://www.muhammetsafak.com.tr/blog/php-8-3-typed-class-constants-ve-gelen-eklemeler/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-8-3-typed-class-constants-ve-gelen-eklemeler/</guid><description>PHP 8.3 ile gelen tipli sınıf sabitleri, json_validate, #[Override] ve dinamik sabit erişimi; dilin tutarlılık yönündeki adımları.</description><pubDate>Sun, 05 Nov 2023 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>TypeScript&apos;te tip düzeyinde programlama: utility types</title><link>https://www.muhammetsafak.com.tr/blog/typescriptte-tip-duzeyinde-programlama-utility-types/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/typescriptte-tip-duzeyinde-programlama-utility-types/</guid><description>TypeScript&apos;in yerleşik utility type&apos;ları ve tip dönüştürme mekanizmaları: tip sistemini bir araç olarak ileri düzeyde kullanmak.</description><pubDate>Sun, 01 Oct 2023 00:00:00 GMT</pubDate><category>diller</category><category>typescript</category></item><item><title>Hype&apos;ı filtrelemek: her yeni teknolojiyi öğrenmek zorunda değilsin</title><link>https://www.muhammetsafak.com.tr/blog/hypei-filtrelemek-her-yeni-teknolojiyi-ogrenmek-zorunda-degilsin/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/hypei-filtrelemek-her-yeni-teknolojiyi-ogrenmek-zorunda-degilsin/</guid><description>Sürekli yeni araç ve framework baskısı karşısında öğrenme bütçesini yönetmek: hangi teknolojiyi ne zaman öğreneceğinize karar vermek için pratik bir yaklaşım.</description><pubDate>Sun, 03 Sep 2023 00:00:00 GMT</pubDate><category>gunluk</category><category>kariyer</category></item><item><title>ElasticSearch ve Kibana ile Büyük Veriye Giriş</title><link>https://www.muhammetsafak.com.tr/blog/elasticsearch-ve-kibana-ile-buyuk-veriye-giris/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/elasticsearch-ve-kibana-ile-buyuk-veriye-giris/</guid><description>Elasticsearch ve Kibana ile büyük veriye giriş: metin arama, analiz ve görselleştirmenin temelleri.</description><pubDate>Thu, 10 Aug 2023 00:00:00 GMT</pubDate><category>araclar</category><category>elasticsearch</category></item><item><title>React Native ve Expo ile mobil uygulamaya ilk adım</title><link>https://www.muhammetsafak.com.tr/blog/react-native-ve-expo-ile-mobil-uygulamaya-ilk-adim/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/react-native-ve-expo-ile-mobil-uygulamaya-ilk-adim/</guid><description>Web geliştiricisinin mobil dünyaya geçiş deneyimi: Looplio&apos;yu React Native ve Expo ile kurarken öğrendiklerim ve beklentilerimin nasıl değiştiği.</description><pubDate>Sun, 06 Aug 2023 00:00:00 GMT</pubDate><category>gunluk</category><category>react-native</category></item><item><title>RabbitMQ (PHP ile)</title><link>https://www.muhammetsafak.com.tr/blog/php-rabbitmq/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-rabbitmq/</guid><description>PHP ile RabbitMQ kullanımı: mesaj kuyruğu oluşturma, mesaj gönderme (publish) ve tüketme (consume).</description><pubDate>Sat, 22 Jul 2023 00:00:00 GMT</pubDate><category>araclar</category><category>php</category><category>rabbitmq</category></item><item><title>Laravel Queue ve Supervisor ile Asenkron İşlemler</title><link>https://www.muhammetsafak.com.tr/blog/laravel-queue-ve-supervisor-ile-asenkron-islemler/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-queue-ve-supervisor-ile-asenkron-islemler/</guid><description>Laravel&apos;de Queue ve Supervisor ile asenkron iş kuyruğu kurulumu ve arka plan işlemleri.</description><pubDate>Sun, 02 Jul 2023 00:00:00 GMT</pubDate><category>framework</category><category>php</category><category>laravel</category></item><item><title>PHP&apos;de tasarım desenlerini abartmadan kullanmak</title><link>https://www.muhammetsafak.com.tr/blog/phpde-tasarim-desenlerini-abartmadan-kullanmak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/phpde-tasarim-desenlerini-abartmadan-kullanmak/</guid><description>Tasarım desenleri amaç değil araç. PHP&apos;de hangi deseni ne zaman kullanmak gerektiği ve ne zaman gereksiz karmaşıklık yarattığı üzerine.</description><pubDate>Sun, 02 Jul 2023 00:00:00 GMT</pubDate><category>diller</category><category>php</category><category>oop</category></item><item><title>Frontend&apos;de durum yönetimi: Pinia ile Vuex sonrası</title><link>https://www.muhammetsafak.com.tr/blog/frontendde-durum-yonetimi-pinia-ile-vuex-sonrasi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/frontendde-durum-yonetimi-pinia-ile-vuex-sonrasi/</guid><description>Vue ekosisteminde Pinia&apos;nın Vuex&apos;in yerini alması: daha az şablon kod, daha iyi TypeScript desteği ve olgunlaşan durum yönetimi anlayışı.</description><pubDate>Sun, 04 Jun 2023 00:00:00 GMT</pubDate><category>arayuz</category><category>vue</category></item><item><title>2014&apos;teki kendime: ilk yıllara dair tavsiyeler</title><link>https://www.muhammetsafak.com.tr/blog/2014-teki-kendime-ilk-yillara-dair-tavsiyeler/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/2014-teki-kendime-ilk-yillara-dair-tavsiyeler/</guid><description>Bu günlüğün başladığı yıla, 2014&apos;e dönüp bakmak: erken kariyer yıllarında neye fazla, neye az önem verdiğim ve değiştirmek istediğim şeyler.</description><pubDate>Sun, 07 May 2023 00:00:00 GMT</pubDate><category>gunluk</category><category>kariyer</category></item><item><title>Laravel&apos;de gerçek zamanlı özellikler: WebSocket ve broadcasting</title><link>https://www.muhammetsafak.com.tr/blog/laravelde-gercek-zamanli-ozellikler-websocket-ve-broadcasting/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravelde-gercek-zamanli-ozellikler-websocket-ve-broadcasting/</guid><description>Laravel Broadcasting ile anlık güncelleme eklemek: olay tabanlı yayın, Pusher entegrasyonu ve istemci tarafında dinlemek.</description><pubDate>Sun, 02 Apr 2023 00:00:00 GMT</pubDate><category>web</category><category>laravel</category></item><item><title>Yapay zekanın kod yazmaya etkisini ilk kez ciddiye almak</title><link>https://www.muhammetsafak.com.tr/blog/yapay-zekanin-kod-yazmaya-etkisini-ilk-kez-ciddiye-almak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/yapay-zekanin-kod-yazmaya-etkisini-ilk-kez-ciddiye-almak/</guid><description>ChatGPT&apos;yi aylardır kullanıyorum; ama bu ay bir şey değişti. Bir merakı, çalışma biçimimi sorgulatan gerçek bir gözleme dönüştüren an.</description><pubDate>Sun, 05 Mar 2023 00:00:00 GMT</pubDate><category>gunluk</category><category>araclar</category></item><item><title>PHP de Trait Nedir? Ne İçin Kullanılır?</title><link>https://www.muhammetsafak.com.tr/blog/php-trait-nedir-ne-icin-kullanilir/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-trait-nedir-ne-icin-kullanilir/</guid><description>PHP&apos;de trait nedir, ne için kullanılır? Çoklu kalıtım ihtiyacını trait&apos;lerle çözmeyi örneklerle anlatıyorum.</description><pubDate>Fri, 17 Feb 2023 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>Laravel 10: daha sıkı tipler ve Process katmanı</title><link>https://www.muhammetsafak.com.tr/blog/laravel-10-daha-siki-tipler-ve-surec-process-katmani/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-10-daha-siki-tipler-ve-surec-process-katmani/</guid><description>Laravel 10&apos;un getirdiği tip disiplini ve yeni Process facade&apos;i: framework&apos;ün olgunlaşan kod tabanını günlük geliştirmeye yansıtmak.</description><pubDate>Sun, 05 Feb 2023 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category></item><item><title>API&apos;leri OpenAPI ile belgelemek</title><link>https://www.muhammetsafak.com.tr/blog/apileri-openapi-ile-belgelemek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/apileri-openapi-ile-belgelemek/</guid><description>Belgeyi koddan türetmek ve istemcilerle tek doğru kaynağı paylaşmak: OpenAPI spesifikasyonunu günlük geliştirme akışına entegre etmek.</description><pubDate>Sun, 01 Jan 2023 00:00:00 GMT</pubDate><category>web</category><category>api</category></item><item><title>ChatGPT&apos;yi bir geliştirici olarak ilk kez kullanmak</title><link>https://www.muhammetsafak.com.tr/blog/chatgpti-bir-gelistirici-olarak-ilk-kez-kullanmak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/chatgpti-bir-gelistirici-olarak-ilk-kez-kullanmak/</guid><description>OpenAI&apos;nin yeni çıkan ChatGPT aracını birkaç gün denedikten sonra bir geliştiricinin dürüst ilk izlenimleri: nerede etkileyici, nerede güvenilmez.</description><pubDate>Sun, 04 Dec 2022 00:00:00 GMT</pubDate><category>gunluk</category><category>araclar</category></item><item><title>PHP 8.2 yolda: readonly sınıflar ve yeni tipler</title><link>https://www.muhammetsafak.com.tr/blog/php-8-2-yolda-readonly-siniflar-ve-yeni-tipler/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-8-2-yolda-readonly-siniflar-ve-yeni-tipler/</guid><description>PHP 8.2 ile gelen readonly sınıflar, DNF tipler ve tek başına tip bildirimleri; bu eklemelerin domain modellemesine etkisi.</description><pubDate>Sun, 06 Nov 2022 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>Kod tabanında isimlendirme: bir mimari mesele</title><link>https://www.muhammetsafak.com.tr/blog/kod-tabaninda-isimlendirme-bir-mimari-mesele/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/kod-tabaninda-isimlendirme-bir-mimari-mesele/</guid><description>İsimlendirme neden salt stil meselesi değil, tasarım kararının kendisidir. Yıllar içinde gözlemlediğim örüntüler.</description><pubDate>Sun, 02 Oct 2022 00:00:00 GMT</pubDate><category>diller</category><category>oop</category></item><item><title>TypeScript ile uçtan uca tip güvenliği: API&apos;den arayüze</title><link>https://www.muhammetsafak.com.tr/blog/typescript-ile-uctan-uca-tip-guvenligi-apiden-arayuze/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/typescript-ile-uctan-uca-tip-guvenligi-apiden-arayuze/</guid><description>Tip sözleşmesini backend API&apos;den frontend arayüzüne kırılmadan taşımak ve bu süreçteki pratik yöntemler.</description><pubDate>Sun, 04 Sep 2022 00:00:00 GMT</pubDate><category>diller</category><category>typescript</category></item><item><title>Python ile otomasyon: tekrarlayan işleri betiğe dökmek</title><link>https://www.muhammetsafak.com.tr/blog/python-ile-otomasyon-tekrarlayan-isleri-betege-dokmek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/python-ile-otomasyon-tekrarlayan-isleri-betege-dokmek/</guid><description>Manuel iş akışlarını güvenilir Python betiklerine taşımak: hangi işler betiklenmeye değer ve bunu nasıl doğru yaparsınız.</description><pubDate>Sun, 07 Aug 2022 00:00:00 GMT</pubDate><category>diller</category><category>python</category></item><item><title>Kıdem: ünvanla gelmeyen sorumluluk</title><link>https://www.muhammetsafak.com.tr/blog/kidem-unvanla-gelmeyen-sorumluluk/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/kidem-unvanla-gelmeyen-sorumluluk/</guid><description>Ünvan çoğu zaman gerçek kıdemden önce gelir. Kıdemin teknik bilgi değil belirsizlik altında karar verme kapasitesi olduğu üzerine.</description><pubDate>Sun, 03 Jul 2022 00:00:00 GMT</pubDate><category>gunluk</category><category>kariyer</category></item><item><title>React 18 ve concurrent render</title><link>https://www.muhammetsafak.com.tr/blog/react-18-ve-eszamanli-concurrent-render/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/react-18-ve-eszamanli-concurrent-render/</guid><description>React 18&apos;in eşzamanlı render modeli uygulamanın hangi davranışlarını değiştiriyor ve bu değişimi pratikte nasıl karşılamak gerekiyor.</description><pubDate>Sun, 05 Jun 2022 00:00:00 GMT</pubDate><category>arayuz</category><category>react</category></item><item><title>Modern PHP&apos;de value object tasarlamak</title><link>https://www.muhammetsafak.com.tr/blog/modern-phpde-deger-nesneleri-value-object-tasarlamak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/modern-phpde-deger-nesneleri-value-object-tasarlamak/</guid><description>İlkel tipler yerine anlamı koda gömmek: PHP&apos;de value object tasarımının neden ve nasılı üzerine.</description><pubDate>Sun, 01 May 2022 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>API tasarımını sözleşme öncelikli (contract-first) yürütmek</title><link>https://www.muhammetsafak.com.tr/blog/api-tasarimini-sozlesme-oncelikli-contract-first-yurutmek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/api-tasarimini-sozlesme-oncelikli-contract-first-yurutmek/</guid><description>Önce sözleşme, sonra kod yaklaşımının ekipler arası beklentiyi nasıl hizaladığı ve pratikte ne anlama geldiği.</description><pubDate>Sun, 03 Apr 2022 00:00:00 GMT</pubDate><category>web</category><category>api</category></item><item><title>Go 1.18 generic&apos;ler: uzun bekleyişin sonuna doğru</title><link>https://www.muhammetsafak.com.tr/blog/go-1-18-genericler-uzun-bekleyisin-sonuna-dogru/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/go-1-18-genericler-uzun-bekleyisin-sonuna-dogru/</guid><description>Go 1.18 ile gelen generic desteği bir dilin nasıl yeniden şekillenebileceğini gösteriyor. İlk izlenimler ve trade-off&apos;lar.</description><pubDate>Sun, 06 Mar 2022 00:00:00 GMT</pubDate><category>diller</category><category>go</category></item><item><title>Docker sanallaştırma: kurulum ve temel kullanım</title><link>https://www.muhammetsafak.com.tr/blog/docker-sanallastirma-teknolojisi-kurulum-kullanim/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/docker-sanallastirma-teknolojisi-kurulum-kullanim/</guid><description>Docker&apos;ın container mimarisini, temel komutlarını ve volume/network kavramlarını uygulamalı olarak anlatan bir başlangıç rehberi.</description><pubDate>Tue, 22 Feb 2022 00:00:00 GMT</pubDate><category>araclar</category><category>docker</category></item><item><title>Laravel 9: yeni sürüm ritmi ve PHP 8 uyumu</title><link>https://www.muhammetsafak.com.tr/blog/laravel-9-yeni-surum-ritmi-ve-php-8-uyumu/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-9-yeni-surum-ritmi-ve-php-8-uyumu/</guid><description>Laravel 9 ile yerleşen yıllık sürüm temposunun proje planlamasına etkisi ve PHP 8 uyumunun kod tabanına yansımaları.</description><pubDate>Sun, 06 Feb 2022 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category></item><item><title>Polyglot bir geliştirici olmak: dili probleme göre seçmek</title><link>https://www.muhammetsafak.com.tr/blog/polyglot-bir-gelistirici-olmak-dili-probleme-gore-secmek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/polyglot-bir-gelistirici-olmak-dili-probleme-gore-secmek/</guid><description>Birden çok programlama diline hâkim olmanın bir kimlik meselesi değil, araç seçimi meselesi olduğu üzerine kişisel notlar.</description><pubDate>Sun, 02 Jan 2022 00:00:00 GMT</pubDate><category>gunluk</category><category>go</category><category>python</category><category>php</category></item><item><title>Bir yazılımcı olarak araç setimi sadeleştirmek</title><link>https://www.muhammetsafak.com.tr/blog/bir-yazilimci-olarak-arac-setimi-sadestirmek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/bir-yazilimci-olarak-arac-setimi-sadestirmek/</guid><description>Senior&apos;dan staff seviyesine geçerken araç yığınımı gözden geçirdim. Daha az araç, daha net karar aldığımı fark ettim.</description><pubDate>Sun, 05 Dec 2021 00:00:00 GMT</pubDate><category>gunluk</category><category>araclar</category></item><item><title>PHP 8.1 yolda: enum&apos;lar ve readonly ile daha güvenli modeller</title><link>https://www.muhammetsafak.com.tr/blog/php-8-1-yolda-enumlar-ve-readonly-ile-daha-guvenli-modeller/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-8-1-yolda-enumlar-ve-readonly-ile-daha-guvenli-modeller/</guid><description>PHP 8.1 henüz çıkmadı; ama gelen enum ve readonly özelliklerinin domain modellemesine nasıl etki edeceğini inceliyorum.</description><pubDate>Sun, 07 Nov 2021 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>REST&apos;ten sonra: GraphQL&apos;i denemek</title><link>https://www.muhammetsafak.com.tr/blog/restten-sonra-graphqli-denemek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/restten-sonra-graphqli-denemek/</guid><description>Gerçek bir over-fetching sorununu GraphQL ile çözerken REST&apos;in nerede yeterli, GraphQL&apos;in nerede anlam kazandığını tartıyorum.</description><pubDate>Sun, 03 Oct 2021 00:00:00 GMT</pubDate><category>web</category><category>api</category><category>graphql</category></item><item><title>PHP&apos;de Veri Türleri Dönüşümü ve Tür Dayatma İşlemleri</title><link>https://www.muhammetsafak.com.tr/blog/php-veri-turleri-donusumu-tur-dayatma-islemleri/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-veri-turleri-donusumu-tur-dayatma-islemleri/</guid><description>PHP&apos;de veri türü dönüşümü ve tür dayatma: gettype, settype, var_dump ve dönüşüm işlemleri.</description><pubDate>Wed, 22 Sep 2021 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>Laravel&apos;de test yazma alışkanlığı: Pest&apos;e geçiş</title><link>https://www.muhammetsafak.com.tr/blog/laravelde-test-yazma-aliskanligi-peste-gecis/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravelde-test-yazma-aliskanligi-peste-gecis/</guid><description>PHPUnit&apos;ten Pest&apos;e geçerken test yazmayı külfetten alışkanlığa çeviren sözdizimi ve yapı farklarını anlatıyorum.</description><pubDate>Sun, 05 Sep 2021 00:00:00 GMT</pubDate><category>araclar</category><category>laravel</category><category>testing</category></item><item><title>MySQL Depolama Motorları (InnoDB vs MyISAM)</title><link>https://www.muhammetsafak.com.tr/blog/mysql-depolama-motorlari-innodb-vs-myisam/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/mysql-depolama-motorlari-innodb-vs-myisam/</guid><description>MySQL depolama motorları: InnoDB ile MyISAM arasındaki farklar, avantajlar ve hangi durumda hangisi seçilmeli?</description><pubDate>Sun, 01 Aug 2021 00:00:00 GMT</pubDate><category>araclar</category><category>mysql</category></item><item><title>Tek sayfa uygulamada SEO sorunu ve SSR seçenekleri</title><link>https://www.muhammetsafak.com.tr/blog/tek-sayfa-uygulamada-seo-sorunu-ve-ssr-secenekleri/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/tek-sayfa-uygulamada-seo-sorunu-ve-ssr-secenekleri/</guid><description>İstemci taraflı render&apos;ın arama motorları için yarattığı görünürlük sorununu ve sunucu taraflı render seçeneklerini karşılaştırıyorum.</description><pubDate>Sun, 01 Aug 2021 00:00:00 GMT</pubDate><category>arayuz</category><category>javascript</category></item><item><title>TypeScript&apos;te generic&apos;ler ve tip çıkarımı</title><link>https://www.muhammetsafak.com.tr/blog/typescriptte-genericler-ve-tip-cikarimi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/typescriptte-genericler-ve-tip-cikarimi/</guid><description>TypeScript&apos;te generic&apos;leri kullanarak yeniden kullanılabilir, tip-güvenli soyutlamalar kurmak ve tip çıkarımından yararlanmak.</description><pubDate>Sun, 04 Jul 2021 00:00:00 GMT</pubDate><category>diller</category><category>typescript</category></item><item><title>Laravel Octane: kalıcı süreçle gelen performans</title><link>https://www.muhammetsafak.com.tr/blog/laravel-octane-kalici-surecle-gelen-performans/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-octane-kalici-surecle-gelen-performans/</guid><description>Laravel Octane&apos;in istek başına önyükleme maliyetini nasıl ortadan kaldırdığı ve bunun beraberinde getirdiği trade-off&apos;lar.</description><pubDate>Sun, 06 Jun 2021 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category></item><item><title>Go&apos;da hata yönetimi: error değeriyle yaşamak</title><link>https://www.muhammetsafak.com.tr/blog/goda-hata-yonetimi-error-degeriyle-yasamak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/goda-hata-yonetimi-error-degeriyle-yasamak/</guid><description>İstisna (exception) mekanizması olmayan Go&apos;da hata yönetimini dil deyimi olarak benimsemenin pratik yolu.</description><pubDate>Sun, 02 May 2021 00:00:00 GMT</pubDate><category>diller</category><category>go</category></item><item><title>PHP&apos;de enum ihtiyacı: 8.1 öncesi çözümler</title><link>https://www.muhammetsafak.com.tr/blog/phpde-enum-ihtiyaci-8-1-oncesi-cozumler/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/phpde-enum-ihtiyaci-8-1-oncesi-cozumler/</guid><description>PHP 8.1 native enum getirmeden önce sabit kümeleri nasıl temsil ediyorduk ve her yaklaşımın trade-off&apos;ları nelerdi.</description><pubDate>Sun, 04 Apr 2021 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>API hata sözleşmesi: istemciye anlamlı hata döndürmek</title><link>https://www.muhammetsafak.com.tr/blog/api-hata-sozlesmesi-istemciye-anlamli-hata-dondurmek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/api-hata-sozlesmesi-istemciye-anlamli-hata-dondurmek/</guid><description>API hata yanıtlarını tutarlı bir sözleşmeye bağlamak, istemci geliştirmeyi ve hata ayıklamayı nasıl kolaylaştırır.</description><pubDate>Sun, 07 Mar 2021 00:00:00 GMT</pubDate><category>web</category><category>api</category></item><item><title>Laravel&apos;de eylem (action) sınıflarıyla controller&apos;ı inceltmek</title><link>https://www.muhammetsafak.com.tr/blog/laravelde-eylem-action-siniflariyla-controlleri-inceltmek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravelde-eylem-action-siniflariyla-controlleri-inceltmek/</guid><description>İş mantığını controller&apos;dan tek amaçlı action sınıflarına taşıyarak nasıl daha test edilebilir ve bakımı kolay kod yazılır.</description><pubDate>Sun, 07 Feb 2021 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category></item><item><title>Vite ile geliştirme sunucusunu saniyelere indirmek</title><link>https://www.muhammetsafak.com.tr/blog/vite-ile-gelistirme-sunucusunu-saniyelere-indirmek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/vite-ile-gelistirme-sunucusunu-saniyelere-indirmek/</guid><description>Webpack tabanlı bir geliştirme ortamından Vite&apos;a geçince derleme sürelerinin neden bu kadar kısaldığını inceliyorum.</description><pubDate>Sun, 03 Jan 2021 00:00:00 GMT</pubDate><category>araclar</category><category>javascript</category><category>vite</category></item><item><title>PHP 8.0 ile kod yazmak: attribute&apos;lar ve nullsafe operatör</title><link>https://www.muhammetsafak.com.tr/blog/php-8-0-ile-kod-yazmak-attribute-lar-ve-nullsafe-operator/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-8-0-ile-kod-yazmak-attribute-lar-ve-nullsafe-operator/</guid><description>PHP 8.0 çıktı. Attribute&apos;ları ve nullsafe operatörü gerçek kodda nasıl kullandığımı, ne kazandırdığını paylaşıyorum.</description><pubDate>Sun, 06 Dec 2020 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>PHP 8.0&apos;a hazırlık: union types, match, named arguments</title><link>https://www.muhammetsafak.com.tr/blog/php-8-0-a-hazirlik-union-types-match-named-arguments/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-8-0-a-hazirlik-union-types-match-named-arguments/</guid><description>PHP 8.0 henüz çıkmadı ama RFC&apos;ler ve beta sürümleri okunabilir. Üç önemli özelliği şimdiden anlamak için notlarımı paylaşıyorum.</description><pubDate>Sun, 01 Nov 2020 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>Python ile veri işleme betikleri yazmak</title><link>https://www.muhammetsafak.com.tr/blog/python-ile-veri-isleme-betikleri-yazmak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/python-ile-veri-isleme-betikleri-yazmak/</guid><description>Tekrarlayan dönüştürme işlerini Python&apos;a devretmenin pratik gerekçesini ve somut betik örneklerini paylaşıyorum.</description><pubDate>Sun, 04 Oct 2020 00:00:00 GMT</pubDate><category>diller</category><category>python</category></item><item><title>Inertia.js ile monolitten modern arayüze</title><link>https://www.muhammetsafak.com.tr/blog/inertia-js-ile-monolitten-modern-arayuze/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/inertia-js-ile-monolitten-modern-arayuze/</guid><description>Inertia.js&apos;in ayrı bir API yazmadan SPA hissi verme modelini, Laravel ile entegrasyonunu ve ne zaman doğru seçim olduğunu anlatıyorum.</description><pubDate>Sun, 06 Sep 2020 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category><category>inertia</category></item><item><title>Laravel 8: model factory&apos;leri ve yeni dizin yapısı</title><link>https://www.muhammetsafak.com.tr/blog/laravel-8-model-factory-leri-ve-yeni-dizin-yapisi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-8-model-factory-leri-ve-yeni-dizin-yapisi/</guid><description>Laravel 8&apos;in sınıf tabanlı factory yapısını ve yeni dizin düzenini, test ve tohum verisi üretimi odağıyla anlatıyorum.</description><pubDate>Sun, 02 Aug 2020 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category></item><item><title>Vue 3 Composition API: neden ve ne zaman</title><link>https://www.muhammetsafak.com.tr/blog/vue-3-composition-api-neden-ve-ne-zaman/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/vue-3-composition-api-neden-ve-ne-zaman/</guid><description>Vue 3 ile gelen Composition API&apos;nin Options API&apos;ye göre ne getirdiğini, ne zaman tercih edilmesi gerektiğini somut örneklerle tartışıyorum.</description><pubDate>Sun, 05 Jul 2020 00:00:00 GMT</pubDate><category>arayuz</category><category>vue</category></item><item><title>PHP&apos;de İstisnalar ve Hata Yönetimi</title><link>https://www.muhammetsafak.com.tr/blog/php-istisna-hata-yonetimi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-istisna-hata-yonetimi/</guid><description>PHP&apos;de istisnalar (exception) ve hata yönetimi: try-catch-finally yapıları ve özel istisnalar.</description><pubDate>Fri, 03 Jul 2020 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>Go&apos;da HTTP servisi yazmak: standart kütüphane yeter mi</title><link>https://www.muhammetsafak.com.tr/blog/go-da-http-servisi-yazmak-standart-kutuphane-yeter-mi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/go-da-http-servisi-yazmak-standart-kutuphane-yeter-mi/</guid><description>Go&apos;nun net/http paketiyle küçük bir HTTP servisi kurarken neyin geldiğini, neyin gelmediğini ve framework eşiğini tartışıyorum.</description><pubDate>Sun, 07 Jun 2020 00:00:00 GMT</pubDate><category>diller</category><category>go</category></item><item><title>Python&apos;a giriş: bir betik dili daha neden</title><link>https://www.muhammetsafak.com.tr/blog/python-a-giris-bir-betik-dili-daha-neden/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/python-a-giris-bir-betik-dili-daha-neden/</guid><description>Polyglot pratiğimde Python&apos;un doldurduğu boşluğu, öğrenme sürecimi ve PHP geliştiricisinin Python&apos;a bakışını anlatıyorum.</description><pubDate>Sun, 03 May 2020 00:00:00 GMT</pubDate><category>gunluk</category><category>python</category></item><item><title>Alpine.js: küçük etkileşimler için hafif bir seçim</title><link>https://www.muhammetsafak.com.tr/blog/alpine-js-kucuk-etkilesimler-icin-hafif-bir-secim/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/alpine-js-kucuk-etkilesimler-icin-hafif-bir-secim/</guid><description>Alpine.js&apos;i ne zaman seçmeli, ne zaman seçmemeli? Tam framework gerektirmeyen arayüz ihtiyaçları için doğru ölçeği tartışıyorum.</description><pubDate>Sun, 05 Apr 2020 00:00:00 GMT</pubDate><category>arayuz</category><category>javascript</category><category>alpine</category></item><item><title>Laravel 7 ve Sanctum ile SPA kimlik doğrulama</title><link>https://www.muhammetsafak.com.tr/blog/laravel-7-ve-sanctum-ile-spa-kimlik-dogrulama/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-7-ve-sanctum-ile-spa-kimlik-dogrulama/</guid><description>Laravel Sanctum&apos;un SPA kimlik doğrulamasını nasıl çözdüğünü, token tabanlı yaklaşımdan farkını somut örneklerle anlatıyorum.</description><pubDate>Sun, 01 Mar 2020 00:00:00 GMT</pubDate><category>web</category><category>laravel</category><category>api</category></item><item><title>Laravel Livewire ile JavaScript yazmadan etkileşim</title><link>https://www.muhammetsafak.com.tr/blog/laravel-livewire-ile-javascript-yazmadan-etkilesim/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-livewire-ile-javascript-yazmadan-etkilesim/</guid><description>Livewire&apos;ın sunucu odaklı etkileşim modelini, hangi durumlarda doğru seçim olduğunu ve sınırlarını anlatıyorum.</description><pubDate>Sun, 02 Feb 2020 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category><category>livewire</category></item><item><title>API yanıtlarını standartlaştırmak: tutarlı bir sözleşme</title><link>https://www.muhammetsafak.com.tr/blog/api-yanitlarini-standartlastirmak-tutarli-bir-sozlesme/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/api-yanitlarini-standartlastirmak-tutarli-bir-sozlesme/</guid><description>Her uçta aynı yanıt yapısını döndürmek istemci kodunu nasıl sadeleştirir ve hataları nasıl öngörülebilir kılar?</description><pubDate>Sun, 05 Jan 2020 00:00:00 GMT</pubDate><category>web</category><category>api</category></item><item><title>PHP 7.4 ile gelen typed properties ve ok fonksiyonları</title><link>https://www.muhammetsafak.com.tr/blog/php-7-4-ile-gelen-typed-properties-ve-ok-fonksiyonlari/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-7-4-ile-gelen-typed-properties-ve-ok-fonksiyonlari/</guid><description>PHP 7.4 Kasım 2019&apos;da yayınlandı. Typed properties ve arrow function&apos;lar, dilin tip sistemini ve sözdizimini önemli ölçüde güçlendiriyor.</description><pubDate>Sun, 01 Dec 2019 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>Go&apos;da eşzamanlılık: goroutine ve channel pratiği</title><link>https://www.muhammetsafak.com.tr/blog/goda-eszamanlilik-goroutine-ve-channel-pratigi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/goda-eszamanlilik-goroutine-ve-channel-pratigi/</guid><description>Go&apos;nun eşzamanlılık modelini — goroutine ve channel&apos;ı — uygulamalı kavramak. PHP&apos;nin süreç modelinden gelince ne değişiyor?</description><pubDate>Sun, 03 Nov 2019 00:00:00 GMT</pubDate><category>diller</category><category>go</category></item><item><title>Vue bileşenlerini test etmek</title><link>https://www.muhammetsafak.com.tr/blog/vue-bilesenleri-test-etmek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/vue-bilesenleri-test-etmek/</guid><description>Vue bileşenlerinin arayüz davranışını otomatik olarak doğrulamanın pratik yolu: Vue Test Utils ile gerçek senaryolar üzerinden test yazımı.</description><pubDate>Sun, 06 Oct 2019 00:00:00 GMT</pubDate><category>araclar</category><category>vue</category><category>testing</category></item><item><title>TypeScript&apos;e geçiş: JavaScript&apos;te tip güvenliği</title><link>https://www.muhammetsafak.com.tr/blog/typescripte-gecis-javascriptte-tip-guvenligi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/typescripte-gecis-javascriptte-tip-guvenligi/</guid><description>Büyüyen bir frontend kod tabanını TypeScript ile korumaya başlamanın pratik deneyimi: ne kazandım, ne kaybettim ve ne zaman gerçekten değer verdi?</description><pubDate>Sun, 01 Sep 2019 00:00:00 GMT</pubDate><category>diller</category><category>typescript</category></item><item><title>API tasarımında sürümleme (versioning) kararları</title><link>https://www.muhammetsafak.com.tr/blog/api-tasariminda-surumleme-versioning-kararlari/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/api-tasariminda-surumleme-versioning-kararlari/</guid><description>İstemcileri kırmadan bir API&apos;yi nasıl evrimleştirirsiniz? Sürümleme stratejilerini trade-off&apos;larıyla karşılaştırıyor, gerçek deneyimlerimi paylaşıyorum.</description><pubDate>Sun, 04 Aug 2019 00:00:00 GMT</pubDate><category>web</category><category>api</category></item><item><title>Laravel 6 ve LTS&apos;in anlamı: sürüm stratejisi</title><link>https://www.muhammetsafak.com.tr/blog/laravel-6-ve-ltsin-anlami-surum-stratejisi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-6-ve-ltsin-anlami-surum-stratejisi/</guid><description>Laravel 6 LTS sürümü ne anlama geliyor? Uzun süreli destek kararını proje ömrüne göre değerlendirmek ve sürüm stratejisi nasıl olmalı?</description><pubDate>Sun, 07 Jul 2019 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category></item><item><title>Go&apos;da ilk CLI aracımı yazmak</title><link>https://www.muhammetsafak.com.tr/blog/goda-ilk-cli-aracimi-yazmak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/goda-ilk-cli-aracimi-yazmak/</guid><description>Yeni öğrendiğim Go dilini gerçek bir CLI aracı yazarak pekiştirdim. Dilin pratikteki hissini, standart kütüphaneyle ne kadar uzağa gidilebildiğini anlatıyorum.</description><pubDate>Sun, 02 Jun 2019 00:00:00 GMT</pubDate><category>diller</category><category>go</category></item><item><title>Tailwind CSS: utility-first yaklaşımına neden geçtim</title><link>https://www.muhammetsafak.com.tr/blog/tailwind-css-utility-first-yaklasimina-neden-gectim/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/tailwind-css-utility-first-yaklasimina-neden-gectim/</guid><description>Tailwind CSS v1.0 ile utility-first CSS paradigmasını neden benimsedim, hangi trade-off&apos;larla karşılaştım ve ne zaman gerçekten işe yarıyor?</description><pubDate>Sun, 05 May 2019 00:00:00 GMT</pubDate><category>arayuz</category><category>css</category><category>tailwind</category></item><item><title>Polyglot&apos;a ilk adım: neden Go öğrenmeye başladım</title><link>https://www.muhammetsafak.com.tr/blog/polyglota-ilk-adim-neden-go-ogrenmeye-basladim/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/polyglota-ilk-adim-neden-go-ogrenmeye-basladim/</guid><description>On yılı aşkın PHP deneyiminin ardından neden ikinci bir dil öğrenmeye karar verdim? Go&apos;yu seçmemin gerekçesi ve bu süreçten beklentilerim.</description><pubDate>Sun, 07 Apr 2019 00:00:00 GMT</pubDate><category>gunluk</category><category>go</category></item><item><title>React hooks ile bileşen yazmanın değişen yüzü</title><link>https://www.muhammetsafak.com.tr/blog/react-hooks-ile-bilesen-yazmanin-degisen-yuzu/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/react-hooks-ile-bilesen-yazmanin-degisen-yuzu/</guid><description>React 16.8 ile gelen hooks API&apos;si, sınıf bileşeninden fonksiyon bileşenine geçişi nasıl değiştirdi? Avantajları ve dikkat edilmesi gereken noktalar.</description><pubDate>Sun, 03 Mar 2019 00:00:00 GMT</pubDate><category>arayuz</category><category>javascript</category><category>react</category></item><item><title>Laravel&apos;de servis sağlayıcı ve container&apos;ı doğru kullanmak</title><link>https://www.muhammetsafak.com.tr/blog/laravelde-servis-saglayici-ve-containeri-dogru-kullanmak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravelde-servis-saglayici-ve-containeri-dogru-kullanmak/</guid><description>Laravel&apos;in bağımlılık çözüm mekanizmasını gerçekten anlamak: servis sağlayıcı ve IoC container&apos;ı doğru kullanmanın pratik rehberi.</description><pubDate>Sun, 03 Feb 2019 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category></item><item><title>PHP 7.3: esnek heredoc ve liste atamaları</title><link>https://www.muhammetsafak.com.tr/blog/php-7-3-esnek-heredoc-ve-liste-atamalari/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-7-3-esnek-heredoc-ve-liste-atamalari/</guid><description>PHP 7.3&apos;ün getirdiği esnek heredoc sözdizimi ve liste atamalarının okunabilirliğe katkısını gerçek örneklerle değerlendiriyorum.</description><pubDate>Sun, 06 Jan 2019 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>2018&apos;in muhasebesi: bir PHP geliştiricisi nereye geldi</title><link>https://www.muhammetsafak.com.tr/blog/2018in-muhasebesi-bir-php-gelistiricisi-nereye-geldi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/2018in-muhasebesi-bir-php-gelistiricisi-nereye-geldi/</guid><description>2018 boyunca öğrendiklerimi, değişen alışkanlıklarımı ve önümüzdeki dönem için belirlediğim hedefleri dürüstçe değerlendiriyorum.</description><pubDate>Sun, 02 Dec 2018 00:00:00 GMT</pubDate><category>gunluk</category><category>php</category></item><item><title>Frontend&apos;de Axios ile API tüketmek</title><link>https://www.muhammetsafak.com.tr/blog/frontendde-axios-ile-api-tuketmek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/frontendde-axios-ile-api-tuketmek/</guid><description>Axios kütüphanesiyle istek/yanıt katmanını arayüzde temiz tutmak için interceptor, hata yönetimi ve ortak yapılandırma üzerine pratik notlar.</description><pubDate>Sun, 04 Nov 2018 00:00:00 GMT</pubDate><category>arayuz</category><category>javascript</category></item><item><title>Laravel&apos;de zamanlanmış görevler (task scheduling)</title><link>https://www.muhammetsafak.com.tr/blog/laravelde-zamanlanmis-gorevler-task-scheduling/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravelde-zamanlanmis-gorevler-task-scheduling/</guid><description>Laravel&apos;in görev zamanlayıcısıyla sunucudaki tek bir cron satırından birden çok görevi kod içinde okunur biçimde nasıl planladığımı anlatıyorum.</description><pubDate>Sun, 07 Oct 2018 00:00:00 GMT</pubDate><category>web</category><category>laravel</category></item><item><title>Laravel&apos;de çok dilli (i18n) uygulama</title><link>https://www.muhammetsafak.com.tr/blog/laravelde-cok-dilli-i18n-uygulama/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravelde-cok-dilli-i18n-uygulama/</guid><description>Laravel&apos;de çok dilli destek eklemek için dil dosyalarını düzenlemek, metinleri koddan ayırmak ve dil geçişini yönetmek üzerine pratik notlar.</description><pubDate>Sun, 02 Sep 2018 00:00:00 GMT</pubDate><category>web</category><category>laravel</category></item><item><title>npm ve modern JavaScript paket ekosistemi</title><link>https://www.muhammetsafak.com.tr/blog/npm-ve-modern-javascript-paket-ekosistemi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/npm-ve-modern-javascript-paket-ekosistemi/</guid><description>npm ile JavaScript bağımlılıklarını yönetmek, package.json dosyasını doğru yapılandırmak ve paket ekosisteminde karşılaşılan pratik sorunları anlatıyorum.</description><pubDate>Sun, 05 Aug 2018 00:00:00 GMT</pubDate><category>araclar</category><category>javascript</category><category>npm</category></item><item><title>Laravel ile takvim/etkinlik özelliği kurmak</title><link>https://www.muhammetsafak.com.tr/blog/laravel-ile-takvim-etkinlik-ozelligi-kurmak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-ile-takvim-etkinlik-ozelligi-kurmak/</guid><description>Tarih, tekrar kuralı ve zaman dilimi içeren bir takvim özelliğini Laravel&apos;de uçtan uca kurma deneyimimi paylaşıyorum.</description><pubDate>Sun, 01 Jul 2018 00:00:00 GMT</pubDate><category>gunluk</category><category>laravel</category></item><item><title>PHPUnit ile ilk testlerimi yazmak</title><link>https://www.muhammetsafak.com.tr/blog/phpunit-ile-ilk-testlerimi-yazmak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/phpunit-ile-ilk-testlerimi-yazmak/</guid><description>PHPUnit kurulumundan başlayarak ilk birim testlerimi nasıl yazdığımı, hangi şeylerin işe yaradığını ve hangi tuzaklara düştüğümü anlatıyorum.</description><pubDate>Sun, 03 Jun 2018 00:00:00 GMT</pubDate><category>araclar</category><category>php</category><category>testing</category></item><item><title>Laravel&apos;de bildirimler (notifications): e-posta ve SMS</title><link>https://www.muhammetsafak.com.tr/blog/laravelde-bildirimler-notifications-e-posta-ve-sms/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravelde-bildirimler-notifications-e-posta-ve-sms/</guid><description>Laravel Notification sınıflarıyla aynı bildirim mantığını e-posta, SMS gibi birden çok kanaldan nasıl gönderdiğimi anlatıyorum.</description><pubDate>Sun, 06 May 2018 00:00:00 GMT</pubDate><category>web</category><category>laravel</category></item><item><title>JavaScript&apos;te async/await ile okunur asenkron kod</title><link>https://www.muhammetsafak.com.tr/blog/javascriptte-async-await-ile-okunur-asenkron-kod/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/javascriptte-async-await-ile-okunur-asenkron-kod/</guid><description>Promise zincirlerinin yerini alan async/await sözdiziminin JavaScript&apos;teki asenkron kodu nasıl okunabilir kıldığını örneklerle açıklıyorum.</description><pubDate>Sun, 01 Apr 2018 00:00:00 GMT</pubDate><category>diller</category><category>javascript</category></item><item><title>Vue ile bileşen tabanlı arayüz mimarisine geçiş</title><link>https://www.muhammetsafak.com.tr/blog/vue-ile-bilesen-tabanli-arayuz-mimarisine-gecis/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/vue-ile-bilesen-tabanli-arayuz-mimarisine-gecis/</guid><description>Sayfa odaklı düşünmekten bileşen (component) odaklı düşünmeye geçişi ve Vue.js&apos;in bunu pratikte nasıl sağladığını anlatıyorum.</description><pubDate>Sun, 04 Mar 2018 00:00:00 GMT</pubDate><category>arayuz</category><category>vue</category></item><item><title>Laravel API kaynak (resource) sınıflarıyla yanıt biçimlemek</title><link>https://www.muhammetsafak.com.tr/blog/laravel-api-kaynak-resource-siniflariyla-yanit-bicimlemek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-api-kaynak-resource-siniflariyla-yanit-bicimlemek/</guid><description>Laravel API Resource sınıflarıyla veritabanı modelini istemciye doğrudan sızdırmadan temiz yanıtlar nasıl üretilir, örneklerle anlatıyorum.</description><pubDate>Sun, 04 Feb 2018 00:00:00 GMT</pubDate><category>web</category><category>laravel</category><category>api</category></item><item><title>PHP 7.2 ve modern PHP alışkanlıkları</title><link>https://www.muhammetsafak.com.tr/blog/php-7-2-ve-modern-php-aliskanlikari/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-7-2-ve-modern-php-aliskanlikari/</guid><description>PHP 7.2 ile gelen yenilikleri ve dilin bugün geldiği noktayı günlük kod yazım alışkanlıklarıma nasıl yansıttığımı anlatıyorum.</description><pubDate>Sun, 07 Jan 2018 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>Git akışı: branch, merge ve pull request disiplini</title><link>https://www.muhammetsafak.com.tr/blog/git-akisi-branch-merge-ve-pull-request-disiplini/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/git-akisi-branch-merge-ve-pull-request-disiplini/</guid><description>Git ile dallanma (branching) alışkanlıkları, merge stratejileri ve pull request ile izlenebilir bir değişiklik geçmişi kurmak.</description><pubDate>Sun, 03 Dec 2017 00:00:00 GMT</pubDate><category>araclar</category><category>git</category></item><item><title>Responsive tasarım: mobil öncelikli CSS</title><link>https://www.muhammetsafak.com.tr/blog/responsive-tasarim-mobil-oncelikli-css/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/responsive-tasarim-mobil-oncelikli-css/</guid><description>Mobil öncelikli (mobile-first) CSS yaklaşımı nedir, media query ile tek arayüzü farklı ekran boyutlarında düzgün tutmak nasıl sağlanır.</description><pubDate>Sun, 05 Nov 2017 00:00:00 GMT</pubDate><category>arayuz</category><category>css</category></item><item><title>Laravel policy ve gate ile yetkilendirme</title><link>https://www.muhammetsafak.com.tr/blog/laravel-policy-ve-gate-ile-yetkilendirme/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-policy-ve-gate-ile-yetkilendirme/</guid><description>Laravel&apos;de Gate ve Policy ile yetkilendirme mantığını tek yerde toplamak; &apos;kim neyi yapabilir&apos; kararlarını temiz kurmak.</description><pubDate>Sun, 01 Oct 2017 00:00:00 GMT</pubDate><category>web</category><category>laravel</category></item><item><title>JavaScript&apos;te Promise ve asenkron akış</title><link>https://www.muhammetsafak.com.tr/blog/javascriptte-promise-ve-asenkron-akis/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/javascriptte-promise-ve-asenkron-akis/</guid><description>JavaScript&apos;te Promise nedir, callback yığınından nasıl kurtulunur; then, catch zincirleme ve temel asenkron akış kalıpları.</description><pubDate>Sun, 03 Sep 2017 00:00:00 GMT</pubDate><category>diller</category><category>javascript</category></item><item><title>Laravel ile ödeme entegrasyonu (iyzico) deneyimi</title><link>https://www.muhammetsafak.com.tr/blog/laravel-ile-odeme-entegrasyonu-iyzico-deneyimi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-ile-odeme-entegrasyonu-iyzico-deneyimi/</guid><description>Laravel projelerinde iyzico ödeme entegrasyonu yaparken karşılaşılan gerçek sorunlar ve çözümleri; deneyim anlatısı.</description><pubDate>Sun, 06 Aug 2017 00:00:00 GMT</pubDate><category>gunluk</category><category>laravel</category></item><item><title>Üçüncü parti API tüketmek: Guzzle ile HTTP istemcisi</title><link>https://www.muhammetsafak.com.tr/blog/ucuncu-parti-api-tuketmek-guzzle-ile-http-istemcisi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/ucuncu-parti-api-tuketmek-guzzle-ile-http-istemcisi/</guid><description>PHP&apos;de Guzzle HTTP istemcisi ile dış servislere bağlanmak; timeout, hata yönetimi ve güvenilir istek yapısı kurmak.</description><pubDate>Sun, 02 Jul 2017 00:00:00 GMT</pubDate><category>web</category><category>php</category></item><item><title>PHP&apos;de closure ve use ile değişken yakalama</title><link>https://www.muhammetsafak.com.tr/blog/phpde-closure-ve-use-ile-degisken-yakalama/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/phpde-closure-ve-use-ile-degisken-yakalama/</guid><description>PHP&apos;de closure (anonim fonksiyon) nedir, use anahtar kelimesiyle değişken yakalama nasıl çalışır; günlük kullanım örnekleri.</description><pubDate>Sun, 04 Jun 2017 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>Laravel Mix ile varlık derlemeyi basitleştirmek</title><link>https://www.muhammetsafak.com.tr/blog/laravel-mix-ile-varlik-derlemeyi-basitlestirmek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-mix-ile-varlik-derlemeyi-basitlestirmek/</guid><description>Laravel Mix, Webpack yapılandırması yazmadan JavaScript ve CSS varlıklarını derlemenizi sağlayan akıcı bir API sunuyor.</description><pubDate>Sun, 07 May 2017 00:00:00 GMT</pubDate><category>araclar</category><category>laravel</category></item><item><title>Vuex ile Vue uygulamasında durum yönetimi</title><link>https://www.muhammetsafak.com.tr/blog/vuex-ile-vue-uygulamasinda-durum-yonetimi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/vuex-ile-vue-uygulamasinda-durum-yonetimi/</guid><description>Vuex ile bileşenler arası paylaşılan durumu tek bir kaynakta toplamak; state, mutation, action ve getter kavramları.</description><pubDate>Sun, 02 Apr 2017 00:00:00 GMT</pubDate><category>arayuz</category><category>vue</category></item><item><title>Laravel ile e-posta gönderimi ve şablonları</title><link>https://www.muhammetsafak.com.tr/blog/laravel-ile-e-posta-gonderimi-ve-sablonlari/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-ile-e-posta-gonderimi-ve-sablonlari/</guid><description>Laravel Mailable sınıfı ve Blade e-posta şablonları ile işlemsel e-postaları güvenilir ve bakımı kolay şekilde kurmak.</description><pubDate>Sun, 05 Mar 2017 00:00:00 GMT</pubDate><category>web</category><category>laravel</category></item><item><title>Laravel 5.4 ve Blade ile bileşen düşünmek</title><link>https://www.muhammetsafak.com.tr/blog/laravel-5-4-ve-blade-ile-bilesen-dusunmek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-5-4-ve-blade-ile-bilesen-dusunmek/</guid><description>Laravel 5.4&apos;te Blade şablon motoruna gelen @component direktifi ile görünümleri yeniden kullanılabilir parçalara bölmek.</description><pubDate>Sun, 05 Feb 2017 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category></item><item><title>PHP 7.1: nullable tipler ve void dönüş tipi</title><link>https://www.muhammetsafak.com.tr/blog/php-7-1-nullable-tipler-ve-void-donus-tipi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-7-1-nullable-tipler-ve-void-donus-tipi/</guid><description>PHP 7.1 ile gelen nullable tip bildirimleri ve void dönüş tipi, fonksiyon imzalarını daha okunur ve net kılıyor.</description><pubDate>Sun, 01 Jan 2017 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>Sass ile sürdürülebilir CSS yazmak</title><link>https://www.muhammetsafak.com.tr/blog/sass-ile-surdurulebilir-css-yazmak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/sass-ile-surdurulebilir-css-yazmak/</guid><description>Büyüyen stil dosyalarını Sass değişkenleri, iç içe kurallar ve parçalara bölme ile nasıl düzene soktuğumu anlatıyorum.</description><pubDate>Sun, 04 Dec 2016 00:00:00 GMT</pubDate><category>arayuz</category><category>css</category><category>sass</category></item><item><title>Vue Router ile tek sayfa uygulama (SPA) mantığı</title><link>https://www.muhammetsafak.com.tr/blog/vue-router-ile-tek-sayfa-uygulama-spa-mantigi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/vue-router-ile-tek-sayfa-uygulama-spa-mantigi/</guid><description>Vue Router ile sayfa geçişlerini istemci tarafına taşırken karşılaştığım temel kavramları ve pratik kurulumu aktarıyorum.</description><pubDate>Sun, 06 Nov 2016 00:00:00 GMT</pubDate><category>arayuz</category><category>vue</category></item><item><title>Postman ile API geliştirmeyi hızlandırmak</title><link>https://www.muhammetsafak.com.tr/blog/postman-ile-api-gelistirmeyi-hizlandirmak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/postman-ile-api-gelistirmeyi-hizlandirmak/</guid><description>API uçlarını tarayıcı olmadan denemek, koleksiyonlar oluşturmak ve Postman&apos;i iş akışına dahil etmek hakkında öğrendiklerimi paylaşıyorum.</description><pubDate>Sun, 02 Oct 2016 00:00:00 GMT</pubDate><category>araclar</category><category>api</category></item><item><title>REST API&apos;de sayfalama, filtreleme ve sıralama</title><link>https://www.muhammetsafak.com.tr/blog/rest-api-de-sayfalama-filtreleme-ve-siralama/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/rest-api-de-sayfalama-filtreleme-ve-siralama/</guid><description>Büyüyen veri kümelerini istemciye yönetilebilir sunmak için API&apos;de sayfalama, filtreleme ve sıralama parametrelerini nasıl tasarladığımı anlatıyorum.</description><pubDate>Sun, 04 Sep 2016 00:00:00 GMT</pubDate><category>web</category><category>api</category></item><item><title>Laravel ile dosya yükleme ve görsel işleme</title><link>https://www.muhammetsafak.com.tr/blog/laravel-ile-dosya-yukleme-ve-gorsel-isleme/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-ile-dosya-yukleme-ve-gorsel-isleme/</guid><description>Laravel&apos;de dosya yükleme, doğrulama ve görseli yeniden boyutlandırma adımlarını kapsayan uçtan uca akışı anlatıyorum.</description><pubDate>Sun, 07 Aug 2016 00:00:00 GMT</pubDate><category>web</category><category>laravel</category></item><item><title>PHP&apos;de arayüz (interface) ve bağımlılık enjeksiyonu pratiği</title><link>https://www.muhammetsafak.com.tr/blog/php-de-arayuz-interface-ve-bagimlilik-enjeksiyonu-pratigi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-de-arayuz-interface-ve-bagimlilik-enjeksiyonu-pratigi/</guid><description>PHP&apos;de interface tanımlayarak ve bağımlılık enjeksiyonu uygulayarak sınıfları nasıl gevşek bağlı hale getirdiğimi örneklerle aktarıyorum.</description><pubDate>Sun, 03 Jul 2016 00:00:00 GMT</pubDate><category>diller</category><category>php</category><category>oop</category></item><item><title>Webpack&apos;e geçiş: Gulp&apos;tan modül paketlemeye</title><link>https://www.muhammetsafak.com.tr/blog/webpack-e-gecis-gulp-tan-modul-paketlemeye/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/webpack-e-gecis-gulp-tan-modul-paketlemeye/</guid><description>Gulp ile kurduğum derleme hattını neden terk ettiğimi ve Webpack&apos;e geçerken karşılaştığım zorlukları ve kazanımları aktarıyorum.</description><pubDate>Sun, 05 Jun 2016 00:00:00 GMT</pubDate><category>araclar</category><category>javascript</category><category>webpack</category></item><item><title>Laravel&apos;de olaylar (events) ve dinleyiciler</title><link>https://www.muhammetsafak.com.tr/blog/laravel-de-olaylar-events-ve-dinleyiciler/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-de-olaylar-events-ve-dinleyiciler/</guid><description>Laravel&apos;in olay sistemiyle yan etkileri ana akıştan nasıl ayırdığımı ve pratikte ne kazandığımı örneklerle anlatıyorum.</description><pubDate>Sun, 01 May 2016 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category></item><item><title>Vue.js ile ilk reaktif bileşen</title><link>https://www.muhammetsafak.com.tr/blog/vue-js-ile-ilk-reaktif-bilesen/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/vue-js-ile-ilk-reaktif-bilesen/</guid><description>jQuery ile DOM manipülasyonundan Vue.js&apos;in veri odaklı yaklaşımına geçiş deneyimimi ve ilk reaktif bileşeni nasıl yazdığımı anlatıyorum.</description><pubDate>Sun, 03 Apr 2016 00:00:00 GMT</pubDate><category>arayuz</category><category>javascript</category><category>vue</category></item><item><title>SOLID&apos;i PHP&apos;de pratiğe dökmek: tek sorumluluk ilkesi</title><link>https://www.muhammetsafak.com.tr/blog/solid-i-php-de-pratige-dokmek-tek-sorumluluk-ilkesi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/solid-i-php-de-pratige-dokmek-tek-sorumluluk-ilkesi/</guid><description>SOLID&apos;in SRP ilkesini soyut kalmadan PHP sınıflarına nasıl uyguladığımı somut örneklerle anlatıyorum.</description><pubDate>Sun, 06 Mar 2016 00:00:00 GMT</pubDate><category>diller</category><category>php</category><category>oop</category></item><item><title>Laravel 5.2: çoklu kimlik doğrulama ve route grupları</title><link>https://www.muhammetsafak.com.tr/blog/laravel-5-2-coklu-kimlik-dogrulama-ve-route-gruplari/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-5-2-coklu-kimlik-dogrulama-ve-route-gruplari/</guid><description>Laravel 5.2 ile birden fazla kullanıcı tipini tek uygulamada nasıl yönettiğimi; guard ve route gruplarını anlatıyorum.</description><pubDate>Sun, 07 Feb 2016 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category></item><item><title>PHP 7&apos;de skaler tip bildirimleri ve dönüş tipleri</title><link>https://www.muhammetsafak.com.tr/blog/php-7-de-skaler-tip-bildirimleri-ve-donus-tipleri/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-7-de-skaler-tip-bildirimleri-ve-donus-tipleri/</guid><description>PHP 7 ile gelen skaler tip bildirimleri ve dönüş tipi tanımlamalarını pratikte nasıl kullandığımı anlatıyorum.</description><pubDate>Sun, 03 Jan 2016 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>PHP 7.0: yıllardır beklenen sürümle gelen hız ve tip bildirimleri</title><link>https://www.muhammetsafak.com.tr/blog/php-7-0-yillarca-beklenen-surum-hiz-ve-tip-bildirimleri/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-7-0-yillarca-beklenen-surum-hiz-ve-tip-bildirimleri/</guid><description>PHP 7.0 bu hafta yayımlandı. Performans artışı, skaler tip bildirimleri ve dönüş tipleriyle ilk izlenimlerimi paylaşıyorum.</description><pubDate>Sun, 06 Dec 2015 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>Composer ile kendi paketimi Packagist&apos;te yayımlamak</title><link>https://www.muhammetsafak.com.tr/blog/composer-ile-kendi-paketimi-packagistte-yayimlamak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/composer-ile-kendi-paketimi-packagistte-yayimlamak/</guid><description>Bir PHP paketini sıfırdan yapılandırıp Packagist&apos;e göndererek başkalarının kullanımına açtım; adımları aktarıyorum.</description><pubDate>Sun, 01 Nov 2015 00:00:00 GMT</pubDate><category>araclar</category><category>php</category><category>composer</category></item><item><title>Laravel middleware ile isteklere ortak davranış eklemek</title><link>https://www.muhammetsafak.com.tr/blog/laravel-middleware-ile-isteklere-ortak-davranis-eklemek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-middleware-ile-isteklere-ortak-davranis-eklemek/</guid><description>Laravel&apos;de middleware nedir, nasıl yazılır ve kimlik doğrulama gibi kesişen ihtiyaçları nasıl tek yerde toplarım anlattım.</description><pubDate>Sun, 04 Oct 2015 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category></item><item><title>Eloquent ilişkileri: hasMany, belongsTo ve eager loading</title><link>https://www.muhammetsafak.com.tr/blog/eloquent-iliskileri-hasmany-belongsto-ve-eager-loading/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/eloquent-iliskileri-hasmany-belongsto-ve-eager-loading/</guid><description>Laravel Eloquent&apos;te hasMany ve belongsTo ilişkilerini kurmayı ve N+1 sorgusunu eager loading ile çözmeyi anlattım.</description><pubDate>Sun, 06 Sep 2015 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category></item><item><title>Gulp ile front-end derleme hattı kurmak</title><link>https://www.muhammetsafak.com.tr/blog/gulp-ile-front-end-derleme-hatti-kurmak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/gulp-ile-front-end-derleme-hatti-kurmak/</guid><description>Gulp ile Sass derleme, JavaScript birleştirme ve tarayıcı yenilemeyi otomatikleştiren bir front-end iş akışı kurdum.</description><pubDate>Sun, 02 Aug 2015 00:00:00 GMT</pubDate><category>araclar</category><category>javascript</category><category>gulp</category></item><item><title>ES6 ile tanışma: let, const ve ok fonksiyonları</title><link>https://www.muhammetsafak.com.tr/blog/es6-ile-tanisma-let-const-ve-ok-fonksiyonlari/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/es6-ile-tanisma-let-const-ve-ok-fonksiyonlari/</guid><description>JavaScript&apos;in yeni standardı ES6 ile gelen let, const, ok fonksiyonu ve şablon dizelerini örneklerle anlattım.</description><pubDate>Sun, 05 Jul 2015 00:00:00 GMT</pubDate><category>diller</category><category>javascript</category></item><item><title>PHP 5.6 yenilikleri: variadic fonksiyonlar ve ** operatörü</title><link>https://www.muhammetsafak.com.tr/blog/php-5-6-yenilikleri-variadic-fonksiyonlar-ve-ust-uste-operatoru/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-5-6-yenilikleri-variadic-fonksiyonlar-ve-ust-uste-operatoru/</guid><description>PHP 5.6 ile gelen değişken sayıda argüman (variadic) desteği ve üs alma operatörünü örneklerle anlattım.</description><pubDate>Sun, 07 Jun 2015 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>Laravel ile JSON API uçları yazmak</title><link>https://www.muhammetsafak.com.tr/blog/laravel-ile-json-api-uclari-yazmak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-ile-json-api-uclari-yazmak/</guid><description>Laravel&apos;de arayüzden bağımsız JSON API uç noktaları oluşturmanın pratik yollarını anlattım.</description><pubDate>Sun, 03 May 2015 00:00:00 GMT</pubDate><category>web</category><category>laravel</category><category>api</category></item><item><title>RESTful API tasarımının temelleri</title><link>https://www.muhammetsafak.com.tr/blog/restful-api-tasariminin-temelleri/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/restful-api-tasariminin-temelleri/</guid><description>Kaynak, HTTP yöntemi ve durum kodu üçgeninde bir API&apos;yi tahmin edilebilir kılmanın pratik kurallarını anlattım.</description><pubDate>Sun, 05 Apr 2015 00:00:00 GMT</pubDate><category>web</category><category>api</category></item><item><title>Laravel Homestead ile herkeste aynı geliştirme ortamı</title><link>https://www.muhammetsafak.com.tr/blog/laravel-homestead-ile-herkeste-ayni-gelistirme-ortami/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-homestead-ile-herkeste-ayni-gelistirme-ortami/</guid><description>Laravel Homestead&apos;ı kurup ekipte &apos;bende çalışıyordu&apos; sorununu nasıl çözdüğümü adım adım anlattım.</description><pubDate>Sun, 01 Mar 2015 00:00:00 GMT</pubDate><category>araclar</category><category>laravel</category></item><item><title>Laravel 5&apos;e geçiş: yeni dizin yapısı ve .env</title><link>https://www.muhammetsafak.com.tr/blog/laravel-5e-gecis-yeni-dizin-yapisi-ve-env/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-5e-gecis-yeni-dizin-yapisi-ve-env/</guid><description>Laravel 4&apos;ten 5&apos;e geçerken dizin yapısı, .env dosyası ve uygulama yapısındaki değişiklikleri anlattım.</description><pubDate>Sun, 01 Feb 2015 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category></item><item><title>MVC&apos;yi gerçekten anlamak: controller&apos;ı şişirmeyi bırakmak</title><link>https://www.muhammetsafak.com.tr/blog/mvci-gercekten-anlamak-controlleri-sisirmeyi-birakmak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/mvci-gercekten-anlamak-controlleri-sisirmeyi-birakmak/</guid><description>MVC&apos;nin her katmanının gerçekte ne iş yaptığını ve controller&apos;ı nasıl ince tutabileceğinizi anlatıyorum.</description><pubDate>Sun, 04 Jan 2015 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>PHP 5.5 generator (yield) ile büyük veri kümelerini gezmek</title><link>https://www.muhammetsafak.com.tr/blog/php-55-generator-yield-ile-buyuk-veri-kumelerini-gezmek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/php-55-generator-yield-ile-buyuk-veri-kumelerini-gezmek/</guid><description>Belleği şişirmeden büyük döngüler kurmanın dil düzeyindeki yolu: PHP 5.5 generator ve yield kullanımı.</description><pubDate>Sun, 07 Dec 2014 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>Laravel ile form doğrulama (validation) pratiği</title><link>https://www.muhammetsafak.com.tr/blog/laravel-ile-form-dogrulama-validation-pratigi/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-ile-form-dogrulama-validation-pratigi/</guid><description>Kullanıcı girdisini güvenle karşılamanın tekrar edilebilir kalıbı: Laravel doğrulama kuralları ve hata mesajları.</description><pubDate>Sun, 02 Nov 2014 00:00:00 GMT</pubDate><category>web</category><category>laravel</category></item><item><title>Eloquent ORM ile veritabanı işlemlerini sadeleştirmek</title><link>https://www.muhammetsafak.com.tr/blog/eloquent-orm-ile-veritabani-islemlerini-sadestirmek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/eloquent-orm-ile-veritabani-islemlerini-sadestirmek/</guid><description>SQL&apos;i elle yazmaktan model tabanlı erişime: Laravel Eloquent ORM&apos;in uygulama tarafından görünümü ve günlük kullanımı.</description><pubDate>Sun, 05 Oct 2014 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category></item><item><title>Bootstrap 3 ile hızlı ve tutarlı arayüz kurmak</title><link>https://www.muhammetsafak.com.tr/blog/bootstrap-3-ile-hizli-ve-tutarli-arayuz-kurmak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/bootstrap-3-ile-hizli-ve-tutarli-arayuz-kurmak/</guid><description>Tasarımcı olmadan düzgün görünen arayüz üretmenin yolu: Bootstrap 3 grid sistemi ve hazır bileşenler.</description><pubDate>Sun, 07 Sep 2014 00:00:00 GMT</pubDate><category>arayuz</category><category>css</category><category>bootstrap</category></item><item><title>Git&apos;e geçiş: FTP ile dosya atmayı bırakmak</title><link>https://www.muhammetsafak.com.tr/blog/gite-gecis-ftp-ile-dosya-atmayi-birakmak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/gite-gecis-ftp-ile-dosya-atmayi-birakmak/</guid><description>Sürüm kontrolüyle gelen güven: FTP&apos;den Git&apos;e geçişin değiştirdiği geliştirme alışkanlığı, temel commit ve branch kullanımı.</description><pubDate>Sun, 03 Aug 2014 00:00:00 GMT</pubDate><category>araclar</category><category>git</category></item><item><title>Blade şablon motoru: tekrar eden HTML&apos;i bitirmek</title><link>https://www.muhammetsafak.com.tr/blog/blade-sablon-motoru-tekrar-eden-htmli-bitirmek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/blade-sablon-motoru-tekrar-eden-htmli-bitirmek/</guid><description>Görünüm katmanını mantıktan ayırmanın pratik kazancı: Blade layout, section ve partial kullanımı.</description><pubDate>Sun, 06 Jul 2014 00:00:00 GMT</pubDate><category>framework</category><category>laravel</category></item><item><title>Laravel 4 ile ilk projeme başlarken</title><link>https://www.muhammetsafak.com.tr/blog/laravel-4-ile-ilk-projeme-baslarken/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/laravel-4-ile-ilk-projeme-baslarken/</guid><description>Ham PHP&apos;den bir framework&apos;e geçişin getirdiği düzen: Laravel 4 ile ilk izlenimler, kurulum ve temel yapı.</description><pubDate>Sun, 01 Jun 2014 00:00:00 GMT</pubDate><category>framework</category><category>php</category><category>laravel</category></item><item><title>jQuery ile AJAX: sayfayı yenilemeden veri göndermek</title><link>https://www.muhammetsafak.com.tr/blog/jquery-ile-ajax-sayfayi-yenilemeden-veri-gondermek/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/jquery-ile-ajax-sayfayi-yenilemeden-veri-gondermek/</guid><description>Form gönderimini sayfa yüklemeden ayırmanın 2014&apos;teki standardı: jQuery $.ajax kullanımı ve pratik örnekler.</description><pubDate>Sun, 04 May 2014 00:00:00 GMT</pubDate><category>arayuz</category><category>javascript</category><category>jquery</category></item><item><title>PHP&apos;de namespace ile kodu düzenli tutmak</title><link>https://www.muhammetsafak.com.tr/blog/phpde-namespace-ile-kodu-duzenli-tutmak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/phpde-namespace-ile-kodu-duzenli-tutmak/</guid><description>İsim çakışmalarını bitiren, kütüphane çağına uygun kod organizasyonu: PHP namespace kullanımı ve use ifadesi.</description><pubDate>Sun, 06 Apr 2014 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>PSR-4 ve otomatik yükleme: include zincirinden kurtulmak</title><link>https://www.muhammetsafak.com.tr/blog/psr-4-ve-otomatik-yukleme-include-zincirinden-kurtulmak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/psr-4-ve-otomatik-yukleme-include-zincirinden-kurtulmak/</guid><description>Sınıfları elle dahil etmeyi bırakıp standart otomatik yüklemeye geçmek: PSR-0 ve PSR-4 farkı, Composer entegrasyonu.</description><pubDate>Sun, 02 Mar 2014 00:00:00 GMT</pubDate><category>diller</category><category>php</category></item><item><title>Composer&apos;a geçiş: PHP bağımlılıklarını elle yönetmeyi bırakmak</title><link>https://www.muhammetsafak.com.tr/blog/composera-gecis-php-bagimliliklarini-elle-yonetmeyi-birakmak/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/blog/composera-gecis-php-bagimliliklarini-elle-yonetmeyi-birakmak/</guid><description>require yığınından modern bağımlılık yönetimine geçişin pratiği: composer.json, autoload ve paket kurma.</description><pubDate>Sun, 02 Feb 2014 00:00:00 GMT</pubDate><category>araclar</category><category>php</category><category>composer</category></item></channel></rss>