# Blog: Yazılım Üzerine Yazılar

> Yazılım mimarisi, PHP, DevOps ve ürün geliştirme üzerine yazılarım, video içeriklerim ve farklı platformlardaki paylaşımlarım.

- Yazılar & İçerikler: 192
- Kaynak: https://www.muhammetsafak.com.tr/blog/
- Dil: tr-TR
- Yazar: Muhammet Şafak

---
## Yazılar & İçerikler

### Oyun geliştirmek planımda yoktu — kapsamı kısıt seçti

- Tek başına bir strateji oyunu yapmanın tek yolu kapsamı kesmekti. Kısıt listesi, oyunun bütün mekaniklerini kendiliğinden seçti.
- Yayın: 2026-09-14
- Günlük
- Etiketler: #TypeScript, #Kariyer
- https://www.muhammetsafak.com.tr/blog/oyun-gelistirmek-planimda-yoktu-regnarium/
- Markdown: https://www.muhammetsafak.com.tr/blog/oyun-gelistirmek-planimda-yoktu-regnarium.md

### Prod erişimi tek kişideydi, o kişi izne çıktı

- Üretim veritabanına erişimi olan tek kişi tatile gidince geliştirme durdu. İhtiyaç dört cümleye indi; her biri bir tasarım kararına dönüştü.
- Yayın: 2026-09-14
- Araçlar & Teknolojiler
- Etiketler: #Güvenlik, #Veritabanı, #Laravel
- https://www.muhammetsafak.com.tr/blog/prod-erisimi-tek-kisideydi-queryproxy/
- Markdown: https://www.muhammetsafak.com.tr/blog/prod-erisimi-tek-kisideydi-queryproxy.md

### Hangi şirket size uygun? Bu bir kimlik değil, bir dönem kararıdır

- Doğru şirket tipi yok, yanlış eşleşme var. Dizinin kapanışı: hangi dönem neyi öğretir ve bir sonraki mülakatta soracağınız sekiz soru.
- Yayın: 2026-09-13
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/hangi-sirket-size-uygun-bir-donem-kararidir/
- Markdown: https://www.muhammetsafak.com.tr/blog/hangi-sirket-size-uygun-bir-donem-kararidir.md

### Şirket büyürken ne kırılır: patron şirketinden kurumsala geçiş

- Büyüme basamaklıdır ve her basamakta kırılan şey aynı: enformel koordinasyonun kapasitesi. Kurucu, yeni yönetici ve erken çalışan gözünden.
- Yayın: 2026-09-06
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/sirket-buyurken-ne-kirilir-patron-sirketinden-kurumsala-gecis/
- Markdown: https://www.muhammetsafak.com.tr/blog/sirket-buyurken-ne-kirilir-patron-sirketinden-kurumsala-gecis.md

### Yabancı bir kod tabanını devralmak

- Hiç bilmediğiniz bir kod tabanına hızlı ve sağlam biçimde hâkim olmanın yolu: erken refactor değil, önce anlamak.
- Yayın: 2026-09-06
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/yabanci-bir-kod-tabanini-devralmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/yabanci-bir-kod-tabanini-devralmak.md

### Kriz anı: şirketin karakteri orada belli olur

- Production yandığında sorulan ilk soru şirketin kültürünü yıllarca belirler. Krizin insan tarafı: korku, sessizlik ve sonra değişen şey.
- Yayın: 2026-08-30
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/kriz-ani-sirketin-karakteri-orada-belli-olur/
- Markdown: https://www.muhammetsafak.com.tr/blog/kriz-ani-sirketin-karakteri-orada-belli-olur.md

### Partial index'i hız için seçmeyin

- 10 milyon ölü satırlı bir Postgres kuyruk tablosunda dört index stratejisi: kazanan beklediğim gerekçeyle kazanmadı, bir ayar onu 1.635 kat yavaşlattı.
- Yayın: 2026-08-23
- Araçlar & Teknolojiler
- Etiketler: #PostgreSQL
- https://medium.com/@muhammetsafak/partial-indexi-hiz-icin-secmeyin-d47f71da2b30 (Medium)

### Toplantı, raporlama ve görünürlük tiyatrosu

- Statü toplantısı bir bilgi aracı değil, bir sigortadır. Toplantının neden var olduğunu ciddiye alan bir eleştiri ve üç ayrı masadan bakış.
- Yayın: 2026-08-23
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/toplanti-raporlama-ve-gorunurluk-tiyatrosu/
- Markdown: https://www.muhammetsafak.com.tr/blog/toplanti-raporlama-ve-gorunurluk-tiyatrosu.md

### Performans, terfi ve zam: sistem olsa da olmasa da bir pazarlık var

- Zam kurumsalda bir tabloya, patron şirketinde bir hatıraya bağlıdır. Sistemin varlığı sonucu değiştirmiyor; sadece pazarlığın dilini değiştiriyor.
- Yayın: 2026-08-16
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/performans-terfi-ve-zam-sistem-olsa-da-olmasa-da-bir-pazarlik-var/
- Markdown: https://www.muhammetsafak.com.tr/blog/performans-terfi-ve-zam-sistem-olsa-da-olmasa-da-bir-pazarlik-var.md

### Sıfırdan hızlı, mevcut sistemde yavaş: agent çağında brownfield'in gerçek maliyeti

- Agent'la günlerde biten iş, yıllardır çalışan bir sistemde bir hafta sürüyor. Çünkü orada asıl maliyet kod üretmek değil; kuralı bulmak ve doğrulamak.
- Yayın: 2026-08-12
- Günlük
- Etiketler: #PHP, #Kariyer
- https://www.muhammetsafak.com.tr/blog/sifirdan-hizli-mevcut-sistemde-yavas/
- Markdown: https://www.muhammetsafak.com.tr/blog/sifirdan-hizli-mevcut-sistemde-yavas.md

### Bilgi nasıl akar: koridor mu, doküman mı?

- Bilgi bir kişinin kafasında da kalsa, kimsenin okumadığı bir wiki'de de dursa aynı yere çıkıyor: kararın gerekçesi erişilemez. İnsan tarafından bir bakış.
- Yayın: 2026-08-09
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/bilgi-nasil-akar-koridor-mu-dokuman-mi/
- Markdown: https://www.muhammetsafak.com.tr/blog/bilgi-nasil-akar-koridor-mu-dokuman-mi.md

### Aynı mesaj, farklı sonuç: event-driven mimaride determinizm

- Event-driven mimaride aynı mesaj neden farklı sonuç üretir? Gerçek bir fatura akışından: determinizmi bozan gizli girdiler ve geri kazandıran dört hamle.
- Yayın: 2026-08-05
- Günlük
- Etiketler: #PHP, #RabbitMQ
- https://www.muhammetsafak.com.tr/blog/event-driven-mimaride-determinizm/
- Markdown: https://www.muhammetsafak.com.tr/blog/event-driven-mimaride-determinizm.md

### Go ile yazdığım bir komut satırı aracını paketlemek ve dağıtmak

- Bir Go CLI aracını yazmak işin yarısı; onu sürümlemek, çapraz derlemek ve başkalarının kolayca kurabileceği biçimde dağıtmak diğer yarısı.
- Yayın: 2026-08-02
- Diller
- Etiketler: #Go
- https://www.muhammetsafak.com.tr/blog/go-ile-komut-satiri-aracini-paketlemek-ve-dagitmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/go-ile-komut-satiri-aracini-paketlemek-ve-dagitmak.md

### Rol sınırları: iş tanımı olmayan yerde herkes her şeydir

- Rol boşluğu bireysel fedakârlıkla kapatıldığı anda görünmez olur, görünmeyen arıza da asla düzelmez. Sınır çizmenin yolu ve üç masadan bakış.
- Yayın: 2026-08-02
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/rol-sinirlari-is-tanimi-olmayan-yerde-herkes-her-seydir/
- Markdown: https://www.muhammetsafak.com.tr/blog/rol-sinirlari-is-tanimi-olmayan-yerde-herkes-her-seydir.md

### Süreç ne zaman zırh, ne zaman pranga?

- Süreç bir erdem değil, ödediğiniz bir koordinasyon vergisi. Ne zaman eklenmeli, neden hiç kaldırılmıyor ve üç ayrı masadan nasıl görünüyor?
- Yayın: 2026-07-26
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/surec-ne-zaman-zirh-ne-zaman-pranga/
- Markdown: https://www.muhammetsafak.com.tr/blog/surec-ne-zaman-zirh-ne-zaman-pranga.md

### Karar nasıl alınır: onay zinciri mi, tek imza mı?

- Şirketler kararı hızlandırmayı ya da yavaşlatmayı değil, yanlış kararı yanlış hızda almayı beceriyor. Tersinirlik çerçevesi ve üç ayrı masadan bakış.
- Yayın: 2026-07-19
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/karar-nasil-alinir-onay-zinciri-mi-tek-imza-mi/
- Markdown: https://www.muhammetsafak.com.tr/blog/karar-nasil-alinir-onay-zinciri-mi-tek-imza-mi.md

### Kurumsal mı, patron şirketi mi? Ayıran şey büyüklük değil

- Şirket tiplerini ayıran çalışan sayısı değil; kararın nerede alındığı ve ne kadarının yazıya döküldüğü. Dört eksen, üç ayrı masadan bakış.
- Yayın: 2026-07-12
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/kurumsal-mi-patron-sirketi-mi/
- Markdown: https://www.muhammetsafak.com.tr/blog/kurumsal-mi-patron-sirketi-mi.md

### TypeScript'in yeni derleyicisi ve build hızının önemi

- TypeScript derleyicisinin Go'ya port edilmesi ve hızlı geri bildirim döngüsünün bir geliştirici için neden bu kadar değerli olduğu.
- Yayın: 2026-07-05
- Diller
- Etiketler: #TypeScript
- https://www.muhammetsafak.com.tr/blog/typescriptin-yeni-derleyicisi-ve-build-hizi/
- Markdown: https://www.muhammetsafak.com.tr/blog/typescriptin-yeni-derleyicisi-ve-build-hizi.md

### Dual-write'tan outbox'a: idempotent tüketim ve alan-seviyesi şifreleme günlüğü

- Kaybolan event'ler beni transactional outbox'a, at-least-once teslim de idempotent tüketime götürdü; GDPR alanlarını satır seviyesinde şifreledim.
- Yayın: 2026-06-22
- Son güncelleme: 2026-09-07
- Günlük
- Etiketler: #PHP, #Laravel, #RabbitMQ, #MySQL
- https://www.muhammetsafak.com.tr/blog/outbox-idempotent-tuketim-ve-alan-sifrelemesi/
- Markdown: https://www.muhammetsafak.com.tr/blog/outbox-idempotent-tuketim-ve-alan-sifrelemesi.md

### archlint: mimari sınırları CI'da deterministik olarak zorlamak

- Mimari kararlar wiki'de doğru kalır, kodda çürür. archlint, architecture.json'daki sınırları her commit'te go/parser ile, modelsiz zorluyor.
- Yayın: 2026-06-18
- Günlük
- Etiketler: #Go, #GitHub Actions, #Git
- https://www.muhammetsafak.com.tr/blog/archlint-mimari-sinirlari-ci-da-zorlamak/
- Markdown: https://www.muhammetsafak.com.tr/blog/archlint-mimari-sinirlari-ci-da-zorlamak.md

### Tek mimari kuralı, üç dil: archlint artık Go + TypeScript + Python

- Polyglot repoda 'domain altyapıyı import etmesin' kuralı her dilde aynı; tek architecture.json artık üç dilin sınırlarını CI'da zorluyor.
- Yayın: 2026-06-18
- Günlük
- Etiketler: #Go, #TypeScript, #Python
- https://www.muhammetsafak.com.tr/blog/archlint-tek-kural-uc-dil/
- Markdown: https://www.muhammetsafak.com.tr/blog/archlint-tek-kural-uc-dil.md

### CommitBrief'e flaky-test dedektörü: AI'ın yazdığı kararsız testleri commit'te durdurmak

- CommitBrief'e deterministik bir flaky-test süzgeci ekledim: sabit sleep'leri ve seed'siz rastgeleliği commit'te, modelsiz yakalıyor.
- Yayın: 2026-06-17
- Günlük
- Etiketler: #Test, #GitHub Actions, #Go, #Git
- https://www.muhammetsafak.com.tr/blog/commitbrief-flaky-test-dedektoru/
- Markdown: https://www.muhammetsafak.com.tr/blog/commitbrief-flaky-test-dedektoru.md

### CommitBrief'e summary ve remote: değişikliğin brifini almak, PR'ı terminalden incelemek

- İki yeni komut: summary değişikliğin brifini çıkarıyor, remote pr ise PR'ı terminalden inceleyip yorumu insandan önce bırakıyor.
- Yayın: 2026-06-13
- Günlük
- Etiketler: #Araçlar, #Git, #Go
- https://www.muhammetsafak.com.tr/blog/commitbrief-summary-ve-remote/
- Markdown: https://www.muhammetsafak.com.tr/blog/commitbrief-summary-ve-remote.md

### Vibe coding mi, AI destekli geliştirme mi — ve neden hâlâ bir senior'a ihtiyaç var

- Vibe coding ürün çıkarmayı kolaylaştırdı; ama mimari bilmeyenin production'a çıkardığıyla senior'ın çıkardığı aynı şey değil. Üç seviye.
- Yayın: 2026-06-13
- Günlük
- Etiketler: #Araçlar, #Kariyer
- https://www.muhammetsafak.com.tr/blog/vibe-coding-mi-ai-destekli-gelistirme-mi/
- Markdown: https://www.muhammetsafak.com.tr/blog/vibe-coding-mi-ai-destekli-gelistirme-mi.md

### Modern CSS'i yeniden keşfetmek

- Yıllarca JavaScript ve önişlemciyle çözdüğümüz şeyler artık CSS'in kendisinde: container query, :has() ve yerel nesting.
- Yayın: 2026-06-07
- Arayüz
- Etiketler: #CSS
- https://www.muhammetsafak.com.tr/blog/modern-cssi-yeniden-kesfetmek/
- Markdown: https://www.muhammetsafak.com.tr/blog/modern-cssi-yeniden-kesfetmek.md

### Bir e-fatura entegrasyonunda numara çakışmasını çözmek

- Üretimde iki worker aynı fatura numarasını üretti. Race condition ile yasal 'gap' arasındaki ikilemi gerçek bir projede nasıl çözdüğümün günlüğü.
- Yayın: 2026-06-03
- Günlük
- Etiketler: #PHP, #Laravel, #RabbitMQ, #MySQL
- https://www.muhammetsafak.com.tr/blog/e-fatura-entegrasyonunda-numara-cakismasi/
- Markdown: https://www.muhammetsafak.com.tr/blog/e-fatura-entegrasyonunda-numara-cakismasi.md

### AI ile self-review — neyi hızlandırıyor, nerede yetmiyor

- 'Niye' değil 'ne kadar' yazısı: tool workflow'a hangi katmanlarda giriyor, hangi bug pattern'lerini yakalıyor ve nerede sınırına dayanıyor.
- Yayın: 2026-05-28
- Günlük
- Etiketler: #Araçlar, #Git, #Go
- https://www.muhammetsafak.com.tr/blog/ai-ile-self-review-neyi-hizlandiriyor-nerede-yetmiyor/
- Markdown: https://www.muhammetsafak.com.tr/blog/ai-ile-self-review-neyi-hizlandiriyor-nerede-yetmiyor.md

### Hangi Projede Hangi Metodoloji? — 18 Yıllık Bir Geliştiricinin Notları

- Waterfall mı, Agile mı, Hybrid mi? Soru yanlış. 18 yıllık production tecrübesinden bir karar matrisi, üç gerçek vaka ve metodoloji dininden çıkış.
- Yayın: 2026-05-27
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/hangi-projede-hangi-metodoloji-karar-matrisi/
- Markdown: https://www.muhammetsafak.com.tr/blog/hangi-projede-hangi-metodoloji-karar-matrisi.md

### Kendi diff'imi bir tool'a soruyorum — CommitBrief'i niye yazdım

- Self-review körlüğüyle yüzleştiğim bir öğleden sonra terminalden çıkmadan kendi diff'imi denetleyen bir tool yazdım: CommitBrief.
- Yayın: 2026-05-27
- Günlük
- Etiketler: #Araçlar, #Git, #Go
- https://www.muhammetsafak.com.tr/blog/kendi-diffimi-bir-tool-a-soruyorum-commitbrief/
- Markdown: https://www.muhammetsafak.com.tr/blog/kendi-diffimi-bir-tool-a-soruyorum-commitbrief.md

### PHP Öldü mü? 2026 Tablosu, Veriyle

- 18 yıllık bir PHP geliştiricisinin gözünden: W3Techs, Stack Overflow, JetBrains ve Packagist verileriyle PHP'nin 2026 fotoğrafı ve zayıf yanları.
- Yayın: 2026-05-24
- Diller
- Etiketler: #PHP, #Kariyer
- https://www.muhammetsafak.com.tr/blog/php-oldu-mu-2026-tablosu-veriyle/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-oldu-mu-2026-tablosu-veriyle.md

### PHP'de Sabit, Enum ve Readonly: 10 Aracın Tek Karar Ağacı

- define'dan asymmetric visibility'ye — modern PHP'de değişmezliği doğru kurmak için üç eksende bir mental model ve somut karar matrisi.
- Yayın: 2026-05-23
- Diller
- Etiketler: #PHP, #OOP
- https://www.muhammetsafak.com.tr/blog/php-sabit-enum-readonly-sekiz-aracin-karar-agaci/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-sabit-enum-readonly-sekiz-aracin-karar-agaci.md

### Production'da Git: Senior'ın Pratik Rehberi

- Workflow seçiminden bisect ile bug avına, rebase disiplininden worktree ve signed commit'lere — Git'i bir yıllarca kullandıktan sonra fark ettiklerim.
- Yayın: 2026-05-23
- Araçlar & Teknolojiler
- Etiketler: #Git
- https://www.muhammetsafak.com.tr/blog/production-git-senior-pratik-rehberi/
- Markdown: https://www.muhammetsafak.com.tr/blog/production-git-senior-pratik-rehberi.md

### Bu günlüğün on iki yılı: geriye dönüp bakmak

- 2014'ten 2026'ya bu günlükte yazılan her şey bir araya geldiğinde anlattığı gelişim hikâyesi ve kapanış.
- Yayın: 2026-05-03
- Günlük
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/bu-gunlugun-on-iki-yili-geriye-donup-bakmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/bu-gunlugun-on-iki-yili-geriye-donup-bakmak.md

### Görünür olmak: yazmak neden bir kariyer yatırımıdır

- 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.
- Yayın: 2026-04-05
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/gorunur-olmak-yazmak-neden-bir-kariyer-yatirimidir/
- Markdown: https://www.muhammetsafak.com.tr/blog/gorunur-olmak-yazmak-neden-bir-kariyer-yatirimidir.md

### Polyglot olmak bir hedef değil bir sonuçmuş

- Ç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.
- Yayın: 2026-03-01
- Günlük
- Etiketler: #Go, #Python, #PHP
- https://www.muhammetsafak.com.tr/blog/polyglot-olmak-bir-hedef-degil-bir-sonucmus/
- Markdown: https://www.muhammetsafak.com.tr/blog/polyglot-olmak-bir-hedef-degil-bir-sonucmus.md

### Laravel'le on iki yıl: bir framework'le büyümek

- 2014'ten 2026'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.
- Yayın: 2026-02-01
- Framework & Kütüphane
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravelle-on-iki-yil-bir-frameworkle-buyumek/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravelle-on-iki-yil-bir-frameworkle-buyumek.md

### 2026'da PHP ile uygulama geliştirmek: ekosistemin hali

- PHP'nin 2026'daki gerçek durumu: dil olgunluğu, ekosistem sağlığı ve 'öldü' söyleminin neden hâlâ yanlış olduğu.
- Yayın: 2026-01-04
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/2026da-php-ile-uygulama-gelistirmek-ekosistemin-hali/
- Markdown: https://www.muhammetsafak.com.tr/blog/2026da-php-ile-uygulama-gelistirmek-ekosistemin-hali.md

### On bir yılın ardından: bir geliştiricinin değişen önceliği

- 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.
- Yayın: 2025-12-07
- Günlük
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/on-bir-yilin-ardindan-bir-gelistiricinin-degisen-onceligi/
- Markdown: https://www.muhammetsafak.com.tr/blog/on-bir-yilin-ardindan-bir-gelistiricinin-degisen-onceligi.md

### Yapay zeka çağında kod yazmanın değişen el becerisi

- Yapay zeka araçları kod yazmanın ne kadarını devraldı, geliştiriciye ne kaldı? Değişen el becerisi üzerine bir değerlendirme.
- Yayın: 2025-11-02
- Günlük
- Etiketler: #Araçlar
- https://www.muhammetsafak.com.tr/blog/yapay-zeka-caginda-kod-yazmanin-degisen-el-becerisi/
- Markdown: https://www.muhammetsafak.com.tr/blog/yapay-zeka-caginda-kod-yazmanin-degisen-el-becerisi.md

### Mentorluk ve bilgi paylaşımı: başkasını büyütürken büyümek

- 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ı.
- Yayın: 2025-10-05
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/mentorluk-ve-bilgi-paylasimi-baskasini-buyuturken-buyumek/
- Markdown: https://www.muhammetsafak.com.tr/blog/mentorluk-ve-bilgi-paylasimi-baskasini-buyuturken-buyumek.md

### Bir özelliği fikirden üç platforma: uçtan uca akışım

- Bir özelliği API, web ve mobilde aynı anda teslim ettiğimde izlediğim olgunlaşmış, tekrarlanabilir süreci anlatıyorum.
- Yayın: 2025-09-07
- Günlük
- Etiketler: #Laravel, #React Native
- https://www.muhammetsafak.com.tr/blog/bir-ozelligi-fikirden-uc-platforma-uctan-uca-akisim/
- Markdown: https://www.muhammetsafak.com.tr/blog/bir-ozelligi-fikirden-uc-platforma-uctan-uca-akisim.md

### PHP 8.5 yolda: dilin olgunlaşan yüzü

- 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.
- Yayın: 2025-08-03
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/php-85-yolda-dilin-olgunlasan-yuzu/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-85-yolda-dilin-olgunlasan-yuzu.md

### Go'nun standart kütüphanesiyle ne kadar uzağa gidilir

- Go'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.
- Yayın: 2025-07-06
- Diller
- Etiketler: #Go
- https://www.muhammetsafak.com.tr/blog/gonun-standart-kutuphanesiyle-ne-kadar-uzaga-gidilir/
- Markdown: https://www.muhammetsafak.com.tr/blog/gonun-standart-kutuphanesiyle-ne-kadar-uzaga-gidilir.md

### Uzman mı, genelci mi: T-tipi bir kariyer

- Derin uzmanlaşma ile geniş genelcilik arasındaki gerilimi ve T-tipi kariyer modelinin bu denklemi nasıl çözdüğünü aktarıyorum.
- Yayın: 2025-06-01
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/uzman-mi-genelci-mi-t-tipi-bir-kariyer/
- Markdown: https://www.muhammetsafak.com.tr/blog/uzman-mi-genelci-mi-t-tipi-bir-kariyer.md

### Expo'da güncellemeleri OTA ile yönetmek

- 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.
- Yayın: 2025-05-04
- Günlük
- Etiketler: #React Native
- https://www.muhammetsafak.com.tr/blog/expoda-guncellemeleri-ota-ile-yonetmek/
- Markdown: https://www.muhammetsafak.com.tr/blog/expoda-guncellemeleri-ota-ile-yonetmek.md

### React 19 ve form'ların yeni hali (actions)

- React 19'un kararlı sürümüyle gelen form actions modelini, mevcut yaklaşımlarla kıyaslayarak değerlendiriyorum.
- Yayın: 2025-04-06
- Arayüz
- Etiketler: #React
- https://www.muhammetsafak.com.tr/blog/react-19-ve-formlarin-yeni-hali-actions/
- Markdown: https://www.muhammetsafak.com.tr/blog/react-19-ve-formlarin-yeni-hali-actions.md

### Polyglot bir kod tabanını sürdürmek: bağlam değiştirme maliyeti

- Birden çok dilde aynı anda çalışmanın görünmeyen bilişsel bedeli ve bunu nasıl yönettiğimi aktarıyorum.
- Yayın: 2025-03-02
- Günlük
- Etiketler: #Go, #PHP, #TypeScript
- https://www.muhammetsafak.com.tr/blog/polyglot-bir-kod-tabanini-surdurumek-baglan-degistirme-maliyeti/
- Markdown: https://www.muhammetsafak.com.tr/blog/polyglot-bir-kod-tabanini-surdurumek-baglan-degistirme-maliyeti.md

### Laravel 12: sürüm ritmi olgunlaşırken

- Laravel 12 ile gelen değişiklikleri ve framework'ün yıllık sürüm temposunun proje planlamasına etkisini değerlendiriyorum.
- Yayın: 2025-02-02
- Framework & Kütüphane
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-12-surum-ritmi-olgunlasirken/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-12-surum-ritmi-olgunlasirken.md

### Tailwind CSS 4: yeni motor ve yapılandırma

- 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.
- Yayın: 2025-01-05
- Arayüz
- Etiketler: #CSS, #Tailwind CSS
- https://www.muhammetsafak.com.tr/blog/tailwind-css-4-yeni-motor-ve-yapilandirma/
- Markdown: https://www.muhammetsafak.com.tr/blog/tailwind-css-4-yeni-motor-ve-yapilandirma.md

### Kendi ürününü tek başına kurmak: Looplio deneyimi

- 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.
- Yayın: 2024-12-01
- Günlük
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/kendi-urununu-tek-basina-kurmak-looplio-deneyimi/
- Markdown: https://www.muhammetsafak.com.tr/blog/kendi-urununu-tek-basina-kurmak-looplio-deneyimi.md

### PHP 8.4 yolda: property hook'lar ve asimetrik görünürlük

- PHP 8.4 ile gelen property hook'lar ve asimetrik görünürlük; bu eklemelerin sınıf modellemesini nasıl değiştireceği.
- Yayın: 2024-11-03
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/php-8-4-yolda-property-hooklar-ve-asimetrik-gorunurluk/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-8-4-yolda-property-hooklar-ve-asimetrik-gorunurluk.md

### Bir özelliği üç katmanda (API, web, mobil) birden teslim etmek

- Tek bir özelliği API, web ve mobil katmanlarında birlikte teslim etmenin uçtan uca akışı; Looplio üzerinde edindiğim pratik.
- Yayın: 2024-10-06
- Günlük
- Etiketler: #Laravel, #React Native
- https://www.muhammetsafak.com.tr/blog/bir-ozelligi-uc-katmanda-api-web-mobil-birden-teslim-etmek/
- Markdown: https://www.muhammetsafak.com.tr/blog/bir-ozelligi-uc-katmanda-api-web-mobil-birden-teslim-etmek.md

### Home (Cloud) Server Pi5 Upgrade

- Raspberry Pi 5 ile ev bulut sunucusu kurulumu: CasaOS, NextCloud, RAID depolama ve Cloudflare Tunnel.
- Yayın: 2024-09-22
- Günlük
- Etiketler: #Linux
- https://www.muhammetsafak.com.tr/blog/home-cloud-server-pi5-upgrade/
- Markdown: https://www.muhammetsafak.com.tr/blog/home-cloud-server-pi5-upgrade.md

### Expo ile mobil uygulamayı mağazaya göndermek

- Expo ve EAS Build ile bir React Native uygulamasını App Store ve Google Play'e gönderme sürecinin gerçek deneyimi ve hazırlık adımları.
- Yayın: 2024-09-01
- Günlük
- Etiketler: #React Native
- https://www.muhammetsafak.com.tr/blog/expo-ile-mobil-uygulamayi-magazaya-gondermek/
- Markdown: https://www.muhammetsafak.com.tr/blog/expo-ile-mobil-uygulamayi-magazaya-gondermek.md

### React Native'de performans: liste render'ı

- React Native'de büyük listeleri akıcı tutmanın somut teknikleri; FlatList, memo ve keyExtractor kullanımı ile gerçek deneyimler.
- Yayın: 2024-08-04
- Günlük
- Etiketler: #React Native
- https://www.muhammetsafak.com.tr/blog/react-native-de-performans-liste-renderi/
- Markdown: https://www.muhammetsafak.com.tr/blog/react-native-de-performans-liste-renderi.md

### Biri Github Actions mı dedi?

- GitHub Actions ile CI/CD'ye giriş: iş akışları (workflow) nasıl kurulur ve süreçler nasıl otomatikleştirilir?
- Yayın: 2024-07-23
- Son güncelleme: 2026-09-07
- Araçlar & Teknolojiler
- Etiketler: #GitHub Actions
- https://www.muhammetsafak.com.tr/blog/biri-github-actions-mi-dedi/
- Markdown: https://www.muhammetsafak.com.tr/blog/biri-github-actions-mi-dedi.md

### Basic Authentication

- HTTP Basic Authentication nedir, nasıl çalışır ve ne zaman kullanılır? Temel kimlik doğrulama yönteminin işleyişi.
- Yayın: 2024-07-14
- Web Geliştirme
- https://www.muhammetsafak.com.tr/blog/basic-authentication/
- Markdown: https://www.muhammetsafak.com.tr/blog/basic-authentication.md

### JWT Authentication

- JWT (JSON Web Token) ile kimlik doğrulama: token yapısı, çalışma mantığı ve tipik kullanım senaryoları.
- Yayın: 2024-07-13
- Web Geliştirme
- Etiketler: #JWT
- https://www.muhammetsafak.com.tr/blog/jwt-authentication/
- Markdown: https://www.muhammetsafak.com.tr/blog/jwt-authentication.md

### API'de idempotency: aynı isteği güvenle tekrar etmek

- Tekrarlanan API isteklerinin yan etki üretmemesini tasarlamak; idempotency anahtarları ve uygulama katmanında pratik çözümler.
- Yayın: 2024-07-07
- Son güncelleme: 2026-09-07
- Web Geliştirme
- Etiketler: #API
- https://www.muhammetsafak.com.tr/blog/api-de-idempotency-ayni-istegi-guvenle-tekrar-etmek/
- Markdown: https://www.muhammetsafak.com.tr/blog/api-de-idempotency-ayni-istegi-guvenle-tekrar-etmek.md

### Yan projeler ve açık kaynak: kariyere kattıkları ve gerçek maliyeti

- 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.
- Yayın: 2024-06-02
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/yan-projeler-ve-acik-kaynak-kariyere-kattiklari-ve-gercek-maliyeti/
- Markdown: https://www.muhammetsafak.com.tr/blog/yan-projeler-ve-acik-kaynak-kariyere-kattiklari-ve-gercek-maliyeti.md

### Go'da test yazmak: tablo testleri (table-driven tests)

- Go'nun standart test kütüphanesi ve tablo testi (table-driven test) desenini uygulamalı olarak kavramak; dilin sade test felsefesini benimsemek.
- Yayın: 2024-05-05
- Diller
- Etiketler: #Go, #Test
- https://www.muhammetsafak.com.tr/blog/go-da-test-yazmak-tablo-testleri-table-driven-tests/
- Markdown: https://www.muhammetsafak.com.tr/blog/go-da-test-yazmak-tablo-testleri-table-driven-tests.md

### Mobil ve web'i aynı takvim mantığıyla beslemek (Looplio günlüğü)

- Looplio'da tek bir iş mantığını hem React Native hem web istemcisine tutarlı biçimde sunmanın pratik kararları ve öğretileri.
- Yayın: 2024-04-07
- Günlük
- Etiketler: #Laravel, #React Native
- https://www.muhammetsafak.com.tr/blog/mobil-ve-webi-ayni-takvim-mantigiyla-beslemek-looplio-gunlugu/
- Markdown: https://www.muhammetsafak.com.tr/blog/mobil-ve-webi-ayni-takvim-mantigiyla-beslemek-looplio-gunlugu.md

### Laravel 11 ile gelen yeni, ince iskelet yapısı

- Laravel 11'in sadeleşen iskelet yapısı, kaldırılan varsayılanlar ve bunların günlük geliştirme pratiklerine somut etkisi.
- Yayın: 2024-03-03
- Framework & Kütüphane
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-11-ile-gelen-yeni-ince-iskelet-yapisi/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-11-ile-gelen-yeni-ince-iskelet-yapisi.md

### React Native'de gezinme (navigation) ve ekran mimarisi

- React Native Navigation Stack, Tab ve Drawer yapılarını Looplio bağlamında kurmanın pratik kararları ve ekran mimarisi yaklaşımı.
- Yayın: 2024-02-04
- Günlük
- Etiketler: #React Native
- https://www.muhammetsafak.com.tr/blog/react-native-de-gezinme-navigation-ve-ekran-mimarisi/
- Markdown: https://www.muhammetsafak.com.tr/blog/react-native-de-gezinme-navigation-ve-ekran-mimarisi.md

### İş değiştirme kararı: kalmak mı, gitmek mi

- 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.
- Yayın: 2024-01-07
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/is-degistirme-karari-kalmak-mi-gitmek-mi/
- Markdown: https://www.muhammetsafak.com.tr/blog/is-degistirme-karari-kalmak-mi-gitmek-mi.md

### Bir yılda dört dil: polyglot pratiğin getirdiği zihin esnekliği

- Bir yıl içinde PHP, Go, Python ve TypeScript arasında gidip gelmenin düşünme biçimine etkisi üzerine bir değerlendirme.
- Yayın: 2023-12-03
- Günlük
- Etiketler: #Go, #Python, #TypeScript, #PHP
- https://www.muhammetsafak.com.tr/blog/bir-yilda-dort-dil-polyglot-pratigin-getirdigi-zihin-esnekligi/
- Markdown: https://www.muhammetsafak.com.tr/blog/bir-yilda-dort-dil-polyglot-pratigin-getirdigi-zihin-esnekligi.md

### PHP 8.3: typed class constants ve gelen eklemeler

- 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ı.
- Yayın: 2023-11-05
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/php-8-3-typed-class-constants-ve-gelen-eklemeler/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-8-3-typed-class-constants-ve-gelen-eklemeler.md

### TypeScript'te tip düzeyinde programlama: utility types

- TypeScript'in yerleşik utility type'ları ve tip dönüştürme mekanizmaları: tip sistemini bir araç olarak ileri düzeyde kullanmak.
- Yayın: 2023-10-01
- Diller
- Etiketler: #TypeScript
- https://www.muhammetsafak.com.tr/blog/typescriptte-tip-duzeyinde-programlama-utility-types/
- Markdown: https://www.muhammetsafak.com.tr/blog/typescriptte-tip-duzeyinde-programlama-utility-types.md

### Hype'ı filtrelemek: her yeni teknolojiyi öğrenmek zorunda değilsin

- Sürekli yeni araç 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.
- Yayın: 2023-09-03
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/hypei-filtrelemek-her-yeni-teknolojiyi-ogrenmek-zorunda-degilsin/
- Markdown: https://www.muhammetsafak.com.tr/blog/hypei-filtrelemek-her-yeni-teknolojiyi-ogrenmek-zorunda-degilsin.md

### ElasticSearch ve Kibana ile Büyük Veriye Giriş

- Elasticsearch ve Kibana ile büyük veriye giriş: metin arama, analiz ve görselleştirmenin temelleri.
- Yayın: 2023-08-10
- Araçlar & Teknolojiler
- Etiketler: #ElasticSearch
- https://www.muhammetsafak.com.tr/blog/elasticsearch-ve-kibana-ile-buyuk-veriye-giris/
- Markdown: https://www.muhammetsafak.com.tr/blog/elasticsearch-ve-kibana-ile-buyuk-veriye-giris.md

### React Native ve Expo ile mobil uygulamaya ilk adım

- Web geliştiricisinin mobil dünyaya geçiş deneyimi: Looplio'yu React Native ve Expo ile kurarken öğrendiklerim ve beklentilerimin nasıl değiştiği.
- Yayın: 2023-08-06
- Günlük
- Etiketler: #React Native
- https://www.muhammetsafak.com.tr/blog/react-native-ve-expo-ile-mobil-uygulamaya-ilk-adim/
- Markdown: https://www.muhammetsafak.com.tr/blog/react-native-ve-expo-ile-mobil-uygulamaya-ilk-adim.md

### RabbitMQ (PHP ile)

- PHP ile RabbitMQ kullanımı: mesaj kuyruğu oluşturma, mesaj gönderme (publish) ve tüketme (consume).
- Yayın: 2023-07-22
- Araçlar & Teknolojiler
- Etiketler: #PHP, #RabbitMQ
- https://www.muhammetsafak.com.tr/blog/php-rabbitmq/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-rabbitmq.md

### Laravel Queue ve Supervisor ile Asenkron İşlemler

- Laravel'de Queue ve Supervisor ile asenkron iş kuyruğu kurulumu ve arka plan işlemleri.
- Yayın: 2023-07-02
- Son güncelleme: 2026-09-07
- Framework & Kütüphane
- Etiketler: #PHP, #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-queue-ve-supervisor-ile-asenkron-islemler/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-queue-ve-supervisor-ile-asenkron-islemler.md

### PHP'de tasarım desenlerini abartmadan kullanmak

- Tasarım desenleri amaç değil araç. PHP'de hangi deseni ne zaman kullanmak gerektiği ve ne zaman gereksiz karmaşıklık yarattığı üzerine.
- Yayın: 2023-07-02
- Diller
- Etiketler: #PHP, #OOP
- https://www.muhammetsafak.com.tr/blog/phpde-tasarim-desenlerini-abartmadan-kullanmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/phpde-tasarim-desenlerini-abartmadan-kullanmak.md

### Frontend'de durum yönetimi: Pinia ile Vuex sonrası

- Vue ekosisteminde Pinia'nın Vuex'in yerini alması: daha az şablon kod, daha iyi TypeScript desteği ve olgunlaşan durum yönetimi anlayışı.
- Yayın: 2023-06-04
- Arayüz
- Etiketler: #Vue.js
- https://www.muhammetsafak.com.tr/blog/frontendde-durum-yonetimi-pinia-ile-vuex-sonrasi/
- Markdown: https://www.muhammetsafak.com.tr/blog/frontendde-durum-yonetimi-pinia-ile-vuex-sonrasi.md

### 2014'teki kendime: ilk yıllara dair tavsiyeler

- Bu günlüğün başladığı yıla, 2014'e dönüp bakmak: erken kariyer yıllarında neye fazla, neye az önem verdiğim ve değiştirmek istediğim şeyler.
- Yayın: 2023-05-07
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/2014-teki-kendime-ilk-yillara-dair-tavsiyeler/
- Markdown: https://www.muhammetsafak.com.tr/blog/2014-teki-kendime-ilk-yillara-dair-tavsiyeler.md

### Laravel'de gerçek zamanlı özellikler: WebSocket ve broadcasting

- Laravel Broadcasting ile anlık güncelleme eklemek: olay tabanlı yayın, Pusher entegrasyonu ve istemci tarafında dinlemek.
- Yayın: 2023-04-02
- Web Geliştirme
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravelde-gercek-zamanli-ozellikler-websocket-ve-broadcasting/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravelde-gercek-zamanli-ozellikler-websocket-ve-broadcasting.md

### Yapay zekanın kod yazmaya etkisini ilk kez ciddiye almak

- ChatGPT'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.
- Yayın: 2023-03-05
- Günlük
- Etiketler: #Araçlar
- https://www.muhammetsafak.com.tr/blog/yapay-zekanin-kod-yazmaya-etkisini-ilk-kez-ciddiye-almak/
- Markdown: https://www.muhammetsafak.com.tr/blog/yapay-zekanin-kod-yazmaya-etkisini-ilk-kez-ciddiye-almak.md

### PHP de Trait Nedir? Ne İçin Kullanılır?

- PHP'de trait nedir, ne için kullanılır? Çoklu kalıtım ihtiyacını trait'lerle çözmeyi örneklerle anlatıyorum.
- Yayın: 2023-02-17
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/php-trait-nedir-ne-icin-kullanilir/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-trait-nedir-ne-icin-kullanilir.md

### Laravel 10: daha sıkı tipler ve Process katmanı

- Laravel 10'un getirdiği tip disiplini ve yeni Process facade'i: framework'ün olgunlaşan kod tabanını günlük geliştirmeye yansıtmak.
- Yayın: 2023-02-05
- Framework & Kütüphane
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-10-daha-siki-tipler-ve-surec-process-katmani/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-10-daha-siki-tipler-ve-surec-process-katmani.md

### API'leri OpenAPI ile belgelemek

- Belgeyi koddan türetmek ve istemcilerle tek doğru kaynağı paylaşmak: OpenAPI spesifikasyonunu günlük geliştirme akışına entegre etmek.
- Yayın: 2023-01-01
- Web Geliştirme
- Etiketler: #API
- https://www.muhammetsafak.com.tr/blog/apileri-openapi-ile-belgelemek/
- Markdown: https://www.muhammetsafak.com.tr/blog/apileri-openapi-ile-belgelemek.md

### ChatGPT'yi bir geliştirici olarak ilk kez kullanmak

- OpenAI'nin yeni çıkan ChatGPT aracını birkaç gün denedikten sonra bir geliştiricinin dürüst ilk izlenimleri: nerede etkileyici, nerede güvenilmez.
- Yayın: 2022-12-04
- Günlük
- Etiketler: #Araçlar
- https://www.muhammetsafak.com.tr/blog/chatgpti-bir-gelistirici-olarak-ilk-kez-kullanmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/chatgpti-bir-gelistirici-olarak-ilk-kez-kullanmak.md

### PHP 8.2 yolda: readonly sınıflar ve yeni tipler

- PHP 8.2 ile gelen readonly sınıflar, DNF tipler ve tek başına tip bildirimleri; bu eklemelerin domain modellemesine etkisi.
- Yayın: 2022-11-06
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/php-8-2-yolda-readonly-siniflar-ve-yeni-tipler/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-8-2-yolda-readonly-siniflar-ve-yeni-tipler.md

### Kod tabanında isimlendirme: bir mimari mesele

- İsimlendirme neden salt stil meselesi değil, tasarım kararının kendisidir. Yıllar içinde gözlemlediğim örüntüler.
- Yayın: 2022-10-02
- Diller
- Etiketler: #OOP
- https://www.muhammetsafak.com.tr/blog/kod-tabaninda-isimlendirme-bir-mimari-mesele/
- Markdown: https://www.muhammetsafak.com.tr/blog/kod-tabaninda-isimlendirme-bir-mimari-mesele.md

### TypeScript ile uçtan uca tip güvenliği: API'den arayüze

- Tip sözleşmesini backend API'den frontend arayüzüne kırılmadan taşımak ve bu süreçteki pratik yöntemler.
- Yayın: 2022-09-04
- Diller
- Etiketler: #TypeScript
- https://www.muhammetsafak.com.tr/blog/typescript-ile-uctan-uca-tip-guvenligi-apiden-arayuze/
- Markdown: https://www.muhammetsafak.com.tr/blog/typescript-ile-uctan-uca-tip-guvenligi-apiden-arayuze.md

### Python ile otomasyon: tekrarlayan işleri betiğe dökmek

- 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.
- Yayın: 2022-08-07
- Diller
- Etiketler: #Python
- https://www.muhammetsafak.com.tr/blog/python-ile-otomasyon-tekrarlayan-isleri-betege-dokmek/
- Markdown: https://www.muhammetsafak.com.tr/blog/python-ile-otomasyon-tekrarlayan-isleri-betege-dokmek.md

### Kıdem: ünvanla gelmeyen sorumluluk

- Ü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.
- Yayın: 2022-07-03
- Günlük
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/blog/kidem-unvanla-gelmeyen-sorumluluk/
- Markdown: https://www.muhammetsafak.com.tr/blog/kidem-unvanla-gelmeyen-sorumluluk.md

### React 18 ve concurrent render

- React 18'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.
- Yayın: 2022-06-05
- Arayüz
- Etiketler: #React
- https://www.muhammetsafak.com.tr/blog/react-18-ve-eszamanli-concurrent-render/
- Markdown: https://www.muhammetsafak.com.tr/blog/react-18-ve-eszamanli-concurrent-render.md

### Modern PHP'de value object tasarlamak

- İlkel tipler yerine anlamı koda gömmek: PHP'de value object tasarımının neden ve nasılı üzerine.
- Yayın: 2022-05-01
- Son güncelleme: 2026-09-07
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/modern-phpde-deger-nesneleri-value-object-tasarlamak/
- Markdown: https://www.muhammetsafak.com.tr/blog/modern-phpde-deger-nesneleri-value-object-tasarlamak.md

### API tasarımını sözleşme öncelikli (contract-first) yürütmek

- Önce sözleşme, sonra kod yaklaşımının ekipler arası beklentiyi nasıl hizaladığı ve pratikte ne anlama geldiği.
- Yayın: 2022-04-03
- Web Geliştirme
- Etiketler: #API
- https://www.muhammetsafak.com.tr/blog/api-tasarimini-sozlesme-oncelikli-contract-first-yurutmek/
- Markdown: https://www.muhammetsafak.com.tr/blog/api-tasarimini-sozlesme-oncelikli-contract-first-yurutmek.md

### Go 1.18 generic'ler: uzun bekleyişin sonuna doğru

- Go 1.18 ile gelen generic desteği bir dilin nasıl yeniden şekillenebileceğini gösteriyor. İlk izlenimler ve trade-off'lar.
- Yayın: 2022-03-06
- Diller
- Etiketler: #Go
- https://www.muhammetsafak.com.tr/blog/go-1-18-genericler-uzun-bekleyisin-sonuna-dogru/
- Markdown: https://www.muhammetsafak.com.tr/blog/go-1-18-genericler-uzun-bekleyisin-sonuna-dogru.md

### Docker sanallaştırma: kurulum ve temel kullanım

- Docker'ın container mimarisini, temel komutlarını ve volume/network kavramlarını uygulamalı olarak anlatan bir başlangıç rehberi.
- Yayın: 2022-02-22
- Son güncelleme: 2026-09-07
- Araçlar & Teknolojiler
- Etiketler: #Docker
- https://www.muhammetsafak.com.tr/blog/docker-sanallastirma-teknolojisi-kurulum-kullanim/
- Markdown: https://www.muhammetsafak.com.tr/blog/docker-sanallastirma-teknolojisi-kurulum-kullanim.md

### Laravel 9: yeni sürüm ritmi ve PHP 8 uyumu

- 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ı.
- Yayın: 2022-02-06
- Framework & Kütüphane
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-9-yeni-surum-ritmi-ve-php-8-uyumu/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-9-yeni-surum-ritmi-ve-php-8-uyumu.md

### Polyglot bir geliştirici olmak: dili probleme göre seçmek

- Birden çok programlama diline hâkim olmanın bir kimlik meselesi değil, araç seçimi meselesi olduğu üzerine kişisel notlar.
- Yayın: 2022-01-02
- Günlük
- Etiketler: #Go, #Python, #PHP
- https://www.muhammetsafak.com.tr/blog/polyglot-bir-gelistirici-olmak-dili-probleme-gore-secmek/
- Markdown: https://www.muhammetsafak.com.tr/blog/polyglot-bir-gelistirici-olmak-dili-probleme-gore-secmek.md

### Bir yazılımcı olarak araç setimi sadeleştirmek

- Senior'dan staff seviyesine geçerken araç yığınımı gözden geçirdim. Daha az araç, daha net karar aldığımı fark ettim.
- Yayın: 2021-12-05
- Günlük
- Etiketler: #Araçlar
- https://www.muhammetsafak.com.tr/blog/bir-yazilimci-olarak-arac-setimi-sadestirmek/
- Markdown: https://www.muhammetsafak.com.tr/blog/bir-yazilimci-olarak-arac-setimi-sadestirmek.md

### PHP 8.1 yolda: enum'lar ve readonly ile daha güvenli modeller

- PHP 8.1 henüz çıkmadı; ama gelen enum ve readonly özelliklerinin domain modellemesine nasıl etki edeceğini inceliyorum.
- Yayın: 2021-11-07
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/php-8-1-yolda-enumlar-ve-readonly-ile-daha-guvenli-modeller/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-8-1-yolda-enumlar-ve-readonly-ile-daha-guvenli-modeller.md

### REST'ten sonra: GraphQL'i denemek

- Gerçek bir over-fetching sorununu GraphQL ile çözerken REST'in nerede yeterli, GraphQL'in nerede anlam kazandığını tartıyorum.
- Yayın: 2021-10-03
- Web Geliştirme
- Etiketler: #API, #GraphQL
- https://www.muhammetsafak.com.tr/blog/restten-sonra-graphqli-denemek/
- Markdown: https://www.muhammetsafak.com.tr/blog/restten-sonra-graphqli-denemek.md

### PHP'de Veri Türleri Dönüşümü ve Tür Dayatma İşlemleri

- PHP'de veri türü dönüşümü ve tür dayatma: gettype, settype, var_dump ve dönüşüm işlemleri.
- Yayın: 2021-09-22
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/php-veri-turleri-donusumu-tur-dayatma-islemleri/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-veri-turleri-donusumu-tur-dayatma-islemleri.md

### Laravel'de test yazma alışkanlığı: Pest'e geçiş

- PHPUnit'ten Pest'e geçerken test yazmayı külfetten alışkanlığa çeviren sözdizimi ve yapı farklarını anlatıyorum.
- Yayın: 2021-09-05
- Araçlar & Teknolojiler
- Etiketler: #Laravel, #Test
- https://www.muhammetsafak.com.tr/blog/laravelde-test-yazma-aliskanligi-peste-gecis/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravelde-test-yazma-aliskanligi-peste-gecis.md

### MySQL Depolama Motorları (InnoDB vs MyISAM)

- MySQL depolama motorları: InnoDB ile MyISAM arasındaki farklar, avantajlar ve hangi durumda hangisi seçilmeli?
- Yayın: 2021-08-01
- Araçlar & Teknolojiler
- Etiketler: #MySQL
- https://www.muhammetsafak.com.tr/blog/mysql-depolama-motorlari-innodb-vs-myisam/
- Markdown: https://www.muhammetsafak.com.tr/blog/mysql-depolama-motorlari-innodb-vs-myisam.md

### Tek sayfa uygulamada SEO sorunu ve SSR seçenekleri

- İstemci taraflı render'ın arama motorları için yarattığı görünürlük sorununu ve sunucu taraflı render seçeneklerini karşılaştırıyorum.
- Yayın: 2021-08-01
- Arayüz
- Etiketler: #JavaScript
- https://www.muhammetsafak.com.tr/blog/tek-sayfa-uygulamada-seo-sorunu-ve-ssr-secenekleri/
- Markdown: https://www.muhammetsafak.com.tr/blog/tek-sayfa-uygulamada-seo-sorunu-ve-ssr-secenekleri.md

### TypeScript'te generic'ler ve tip çıkarımı

- TypeScript'te generic'leri kullanarak yeniden kullanılabilir, tip-güvenli soyutlamalar kurmak ve tip çıkarımından yararlanmak.
- Yayın: 2021-07-04
- Diller
- Etiketler: #TypeScript
- https://www.muhammetsafak.com.tr/blog/typescriptte-genericler-ve-tip-cikarimi/
- Markdown: https://www.muhammetsafak.com.tr/blog/typescriptte-genericler-ve-tip-cikarimi.md

### Laravel Octane: kalıcı süreçle gelen performans

- Laravel Octane'in istek başına önyükleme maliyetini nasıl ortadan kaldırdığı ve bunun beraberinde getirdiği trade-off'lar.
- Yayın: 2021-06-06
- Son güncelleme: 2026-09-07
- Framework & Kütüphane
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-octane-kalici-surecle-gelen-performans/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-octane-kalici-surecle-gelen-performans.md

### Go'da hata yönetimi: error değeriyle yaşamak

- İstisna (exception) mekanizması olmayan Go'da hata yönetimini dil deyimi olarak benimsemenin pratik yolu.
- Yayın: 2021-05-02
- Son güncelleme: 2026-09-07
- Diller
- Etiketler: #Go
- https://www.muhammetsafak.com.tr/blog/goda-hata-yonetimi-error-degeriyle-yasamak/
- Markdown: https://www.muhammetsafak.com.tr/blog/goda-hata-yonetimi-error-degeriyle-yasamak.md

### PHP'de enum ihtiyacı: 8.1 öncesi çözümler

- PHP 8.1 native enum getirmeden önce sabit kümeleri nasıl temsil ediyorduk ve her yaklaşımın trade-off'ları nelerdi.
- Yayın: 2021-04-04
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/phpde-enum-ihtiyaci-8-1-oncesi-cozumler/
- Markdown: https://www.muhammetsafak.com.tr/blog/phpde-enum-ihtiyaci-8-1-oncesi-cozumler.md

### API hata sözleşmesi: istemciye anlamlı hata döndürmek

- 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.
- Yayın: 2021-03-07
- Web Geliştirme
- Etiketler: #API
- https://www.muhammetsafak.com.tr/blog/api-hata-sozlesmesi-istemciye-anlamli-hata-dondurmek/
- Markdown: https://www.muhammetsafak.com.tr/blog/api-hata-sozlesmesi-istemciye-anlamli-hata-dondurmek.md

### Laravel'de eylem (action) sınıflarıyla controller'ı inceltmek

- İş mantığını controller'dan tek amaçlı action sınıflarına taşıyarak nasıl daha test edilebilir ve bakımı kolay kod yazılır.
- Yayın: 2021-02-07
- Framework & Kütüphane
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravelde-eylem-action-siniflariyla-controlleri-inceltmek/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravelde-eylem-action-siniflariyla-controlleri-inceltmek.md

### Vite ile geliştirme sunucusunu saniyelere indirmek

- Webpack tabanlı bir geliştirme ortamından Vite'a geçince derleme sürelerinin neden bu kadar kısaldığını inceliyorum.
- Yayın: 2021-01-03
- Araçlar & Teknolojiler
- Etiketler: #JavaScript, #Vite
- https://www.muhammetsafak.com.tr/blog/vite-ile-gelistirme-sunucusunu-saniyelere-indirmek/
- Markdown: https://www.muhammetsafak.com.tr/blog/vite-ile-gelistirme-sunucusunu-saniyelere-indirmek.md

### PHP 8.0 ile kod yazmak: attribute'lar ve nullsafe operatör

- PHP 8.0 çıktı. Attribute'ları ve nullsafe operatörü gerçek kodda nasıl kullandığımı, ne kazandırdığını paylaşıyorum.
- Yayın: 2020-12-06
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/php-8-0-ile-kod-yazmak-attribute-lar-ve-nullsafe-operator/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-8-0-ile-kod-yazmak-attribute-lar-ve-nullsafe-operator.md

### PHP 8.0'a hazırlık: union types, match, named arguments

- PHP 8.0 henüz çıkmadı ama RFC'ler ve beta sürümleri okunabilir. Üç önemli özelliği şimdiden anlamak için notlarımı paylaşıyorum.
- Yayın: 2020-11-01
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/php-8-0-a-hazirlik-union-types-match-named-arguments/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-8-0-a-hazirlik-union-types-match-named-arguments.md

### Python ile veri işleme betikleri yazmak

- Tekrarlayan dönüştürme işlerini Python'a devretmenin pratik gerekçesini ve somut betik örneklerini paylaşıyorum.
- Yayın: 2020-10-04
- Diller
- Etiketler: #Python
- https://www.muhammetsafak.com.tr/blog/python-ile-veri-isleme-betikleri-yazmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/python-ile-veri-isleme-betikleri-yazmak.md

### Inertia.js ile monolitten modern arayüze

- Inertia.js'in ayrı bir API yazmadan SPA hissi verme modelini, Laravel ile entegrasyonunu ve ne zaman doğru seçim olduğunu anlatıyorum.
- Yayın: 2020-09-06
- Framework & Kütüphane
- Etiketler: #Laravel, #Inertia.js
- https://www.muhammetsafak.com.tr/blog/inertia-js-ile-monolitten-modern-arayuze/
- Markdown: https://www.muhammetsafak.com.tr/blog/inertia-js-ile-monolitten-modern-arayuze.md

### Laravel 8: model factory'leri ve yeni dizin yapısı

- Laravel 8'in sınıf tabanlı factory yapısını ve yeni dizin düzenini, test ve tohum verisi üretimi odağıyla anlatıyorum.
- Yayın: 2020-08-02
- Framework & Kütüphane
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-8-model-factory-leri-ve-yeni-dizin-yapisi/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-8-model-factory-leri-ve-yeni-dizin-yapisi.md

### Vue 3 Composition API: neden ve ne zaman

- Vue 3 ile gelen Composition API'nin Options API'ye göre ne getirdiğini, ne zaman tercih edilmesi gerektiğini somut örneklerle tartışıyorum.
- Yayın: 2020-07-05
- Arayüz
- Etiketler: #Vue.js
- https://www.muhammetsafak.com.tr/blog/vue-3-composition-api-neden-ve-ne-zaman/
- Markdown: https://www.muhammetsafak.com.tr/blog/vue-3-composition-api-neden-ve-ne-zaman.md

### PHP'de İstisnalar ve Hata Yönetimi

- PHP'de istisnalar (exception) ve hata yönetimi: try-catch-finally yapıları ve özel istisnalar.
- Yayın: 2020-07-03
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/php-istisna-hata-yonetimi/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-istisna-hata-yonetimi.md

### Go'da HTTP servisi yazmak: standart kütüphane yeter mi

- Go'nun net/http paketiyle küçük bir HTTP servisi kurarken neyin geldiğini, neyin gelmediğini ve framework eşiğini tartışıyorum.
- Yayın: 2020-06-07
- Son güncelleme: 2026-09-07
- Diller
- Etiketler: #Go
- https://www.muhammetsafak.com.tr/blog/go-da-http-servisi-yazmak-standart-kutuphane-yeter-mi/
- Markdown: https://www.muhammetsafak.com.tr/blog/go-da-http-servisi-yazmak-standart-kutuphane-yeter-mi.md

### Python'a giriş: bir betik dili daha neden

- Polyglot pratiğimde Python'un doldurduğu boşluğu, öğrenme sürecimi ve PHP geliştiricisinin Python'a bakışını anlatıyorum.
- Yayın: 2020-05-03
- Günlük
- Etiketler: #Python
- https://www.muhammetsafak.com.tr/blog/python-a-giris-bir-betik-dili-daha-neden/
- Markdown: https://www.muhammetsafak.com.tr/blog/python-a-giris-bir-betik-dili-daha-neden.md

### Alpine.js: küçük etkileşimler için hafif bir seçim

- Alpine.js'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.
- Yayın: 2020-04-05
- Arayüz
- Etiketler: #JavaScript, #Alpine.js
- https://www.muhammetsafak.com.tr/blog/alpine-js-kucuk-etkilesimler-icin-hafif-bir-secim/
- Markdown: https://www.muhammetsafak.com.tr/blog/alpine-js-kucuk-etkilesimler-icin-hafif-bir-secim.md

### Laravel 7 ve Sanctum ile SPA kimlik doğrulama

- Laravel Sanctum'un SPA kimlik doğrulamasını nasıl çözdüğünü, token tabanlı yaklaşımdan farkını somut örneklerle anlatıyorum.
- Yayın: 2020-03-01
- Web Geliştirme
- Etiketler: #Laravel, #API
- https://www.muhammetsafak.com.tr/blog/laravel-7-ve-sanctum-ile-spa-kimlik-dogrulama/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-7-ve-sanctum-ile-spa-kimlik-dogrulama.md

### Laravel Livewire ile JavaScript yazmadan etkileşim

- Livewire'ın sunucu odaklı etkileşim modelini, hangi durumlarda doğru seçim olduğunu ve sınırlarını anlatıyorum.
- Yayın: 2020-02-02
- Framework & Kütüphane
- Etiketler: #Laravel, #Livewire
- https://www.muhammetsafak.com.tr/blog/laravel-livewire-ile-javascript-yazmadan-etkilesim/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-livewire-ile-javascript-yazmadan-etkilesim.md

### API yanıtlarını standartlaştırmak: tutarlı bir sözleşme

- 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?
- Yayın: 2020-01-05
- Web Geliştirme
- Etiketler: #API
- https://www.muhammetsafak.com.tr/blog/api-yanitlarini-standartlastirmak-tutarli-bir-sozlesme/
- Markdown: https://www.muhammetsafak.com.tr/blog/api-yanitlarini-standartlastirmak-tutarli-bir-sozlesme.md

### PHP 7.4 ile gelen typed properties ve ok fonksiyonları

- PHP 7.4 Kasım 2019'da yayınlandı. Typed properties ve arrow function'lar, dilin tip sistemini ve sözdizimini önemli ölçüde güçlendiriyor.
- Yayın: 2019-12-01
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/php-7-4-ile-gelen-typed-properties-ve-ok-fonksiyonlari/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-7-4-ile-gelen-typed-properties-ve-ok-fonksiyonlari.md

### Go'da eşzamanlılık: goroutine ve channel pratiği

- Go'nun eşzamanlılık modelini — goroutine ve channel'ı — uygulamalı kavramak. PHP'nin süreç modelinden gelince ne değişiyor?
- Yayın: 2019-11-03
- Son güncelleme: 2026-09-07
- Diller
- Etiketler: #Go
- https://www.muhammetsafak.com.tr/blog/goda-eszamanlilik-goroutine-ve-channel-pratigi/
- Markdown: https://www.muhammetsafak.com.tr/blog/goda-eszamanlilik-goroutine-ve-channel-pratigi.md

### Vue bileşenlerini test etmek

- 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ı.
- Yayın: 2019-10-06
- Araçlar & Teknolojiler
- Etiketler: #Vue.js, #Test
- https://www.muhammetsafak.com.tr/blog/vue-bilesenleri-test-etmek/
- Markdown: https://www.muhammetsafak.com.tr/blog/vue-bilesenleri-test-etmek.md

### TypeScript'e geçiş: JavaScript'te tip güvenliği

- 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?
- Yayın: 2019-09-01
- Diller
- Etiketler: #TypeScript
- https://www.muhammetsafak.com.tr/blog/typescripte-gecis-javascriptte-tip-guvenligi/
- Markdown: https://www.muhammetsafak.com.tr/blog/typescripte-gecis-javascriptte-tip-guvenligi.md

### API tasarımında sürümleme (versioning) kararları

- İstemcileri kırmadan bir API'yi nasıl evrimleştirirsiniz? Sürümleme stratejilerini trade-off'larıyla karşılaştırıyor, gerçek deneyimlerimi paylaşıyorum.
- Yayın: 2019-08-04
- Son güncelleme: 2026-09-07
- Web Geliştirme
- Etiketler: #API
- https://www.muhammetsafak.com.tr/blog/api-tasariminda-surumleme-versioning-kararlari/
- Markdown: https://www.muhammetsafak.com.tr/blog/api-tasariminda-surumleme-versioning-kararlari.md

### Laravel 6 ve LTS'in anlamı: sürüm stratejisi

- 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ı?
- Yayın: 2019-07-07
- Framework & Kütüphane
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-6-ve-ltsin-anlami-surum-stratejisi/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-6-ve-ltsin-anlami-surum-stratejisi.md

### Go'da ilk CLI aracımı yazmak

- Yeni öğrendiğim Go'yu gerçek bir CLI aracı yazarak pekiştirdim: dilin pratikteki hissi ve standart kütüphaneyle ne kadar uzağa gidilebildiği.
- Yayın: 2019-06-02
- Diller
- Etiketler: #Go
- https://www.muhammetsafak.com.tr/blog/goda-ilk-cli-aracimi-yazmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/goda-ilk-cli-aracimi-yazmak.md

### Tailwind CSS: utility-first yaklaşımına neden geçtim

- Tailwind CSS v1.0 ile utility-first CSS paradigmasını neden benimsedim, hangi trade-off'larla karşılaştım ve ne zaman gerçekten işe yarıyor?
- Yayın: 2019-05-05
- Arayüz
- Etiketler: #CSS, #Tailwind CSS
- https://www.muhammetsafak.com.tr/blog/tailwind-css-utility-first-yaklasimina-neden-gectim/
- Markdown: https://www.muhammetsafak.com.tr/blog/tailwind-css-utility-first-yaklasimina-neden-gectim.md

### Polyglot'a ilk adım: neden Go öğrenmeye başladım

- On yılı aşkın PHP deneyiminin ardından neden ikinci bir dil öğrenmeye karar verdim? Go'yu seçmemin gerekçesi ve bu süreçten beklentilerim.
- Yayın: 2019-04-07
- Günlük
- Etiketler: #Go
- https://www.muhammetsafak.com.tr/blog/polyglota-ilk-adim-neden-go-ogrenmeye-basladim/
- Markdown: https://www.muhammetsafak.com.tr/blog/polyglota-ilk-adim-neden-go-ogrenmeye-basladim.md

### React hooks ile bileşen yazmanın değişen yüzü

- React 16.8 ile gelen hooks API'si, sınıf bileşeninden fonksiyon bileşenine geçişi nasıl değiştirdi? Avantajları ve dikkat edilmesi gereken noktalar.
- Yayın: 2019-03-03
- Arayüz
- Etiketler: #JavaScript, #React
- https://www.muhammetsafak.com.tr/blog/react-hooks-ile-bilesen-yazmanin-degisen-yuzu/
- Markdown: https://www.muhammetsafak.com.tr/blog/react-hooks-ile-bilesen-yazmanin-degisen-yuzu.md

### Laravel'de servis sağlayıcı ve container'ı doğru kullanmak

- Laravel'in bağımlılık çözüm mekanizmasını gerçekten anlamak: servis sağlayıcı ve IoC container'ı doğru kullanmanın pratik rehberi.
- Yayın: 2019-02-03
- Framework & Kütüphane
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravelde-servis-saglayici-ve-containeri-dogru-kullanmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravelde-servis-saglayici-ve-containeri-dogru-kullanmak.md

### PHP 7.3: esnek heredoc ve liste atamaları

- PHP 7.3'ün getirdiği esnek heredoc sözdizimi ve liste atamalarının okunabilirliğe katkısını gerçek örneklerle değerlendiriyorum.
- Yayın: 2019-01-06
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/php-7-3-esnek-heredoc-ve-liste-atamalari/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-7-3-esnek-heredoc-ve-liste-atamalari.md

### 2018'in muhasebesi: bir PHP geliştiricisi nereye geldi

- 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.
- Yayın: 2018-12-02
- Günlük
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/2018in-muhasebesi-bir-php-gelistiricisi-nereye-geldi/
- Markdown: https://www.muhammetsafak.com.tr/blog/2018in-muhasebesi-bir-php-gelistiricisi-nereye-geldi.md

### Frontend'de Axios ile API tüketmek

- 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.
- Yayın: 2018-11-04
- Arayüz
- Etiketler: #JavaScript
- https://www.muhammetsafak.com.tr/blog/frontendde-axios-ile-api-tuketmek/
- Markdown: https://www.muhammetsafak.com.tr/blog/frontendde-axios-ile-api-tuketmek.md

### Laravel'de zamanlanmış görevler (task scheduling)

- Laravel'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.
- Yayın: 2018-10-07
- Web Geliştirme
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravelde-zamanlanmis-gorevler-task-scheduling/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravelde-zamanlanmis-gorevler-task-scheduling.md

### Laravel'de çok dilli (i18n) uygulama

- Laravel'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.
- Yayın: 2018-09-02
- Web Geliştirme
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravelde-cok-dilli-i18n-uygulama/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravelde-cok-dilli-i18n-uygulama.md

### npm ve modern JavaScript paket ekosistemi

- 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.
- Yayın: 2018-08-05
- Araçlar & Teknolojiler
- Etiketler: #JavaScript, #npm
- https://www.muhammetsafak.com.tr/blog/npm-ve-modern-javascript-paket-ekosistemi/
- Markdown: https://www.muhammetsafak.com.tr/blog/npm-ve-modern-javascript-paket-ekosistemi.md

### Laravel ile takvim/etkinlik özelliği kurmak

- Tarih, tekrar kuralı ve zaman dilimi içeren bir takvim özelliğini Laravel'de uçtan uca kurma deneyimimi paylaşıyorum.
- Yayın: 2018-07-01
- Günlük
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-ile-takvim-etkinlik-ozelligi-kurmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-ile-takvim-etkinlik-ozelligi-kurmak.md

### PHPUnit ile ilk testlerimi yazmak

- 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.
- Yayın: 2018-06-03
- Araçlar & Teknolojiler
- Etiketler: #PHP, #Test
- https://www.muhammetsafak.com.tr/blog/phpunit-ile-ilk-testlerimi-yazmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/phpunit-ile-ilk-testlerimi-yazmak.md

### Laravel'de bildirimler (notifications): e-posta ve SMS

- Laravel Notification sınıflarıyla aynı bildirim mantığını e-posta, SMS gibi birden çok kanaldan nasıl gönderdiğimi anlatıyorum.
- Yayın: 2018-05-06
- Web Geliştirme
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravelde-bildirimler-notifications-e-posta-ve-sms/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravelde-bildirimler-notifications-e-posta-ve-sms.md

### JavaScript'te async/await ile okunur asenkron kod

- Promise zincirlerinin yerini alan async/await sözdiziminin JavaScript'teki asenkron kodu nasıl okunabilir kıldığını örneklerle açıklıyorum.
- Yayın: 2018-04-01
- Diller
- Etiketler: #JavaScript
- https://www.muhammetsafak.com.tr/blog/javascriptte-async-await-ile-okunur-asenkron-kod/
- Markdown: https://www.muhammetsafak.com.tr/blog/javascriptte-async-await-ile-okunur-asenkron-kod.md

### Vue ile bileşen tabanlı arayüz mimarisine geçiş

- Sayfa odaklı düşünmekten bileşen (component) odaklı düşünmeye geçişi ve Vue.js'in bunu pratikte nasıl sağladığını anlatıyorum.
- Yayın: 2018-03-04
- Arayüz
- Etiketler: #Vue.js
- https://www.muhammetsafak.com.tr/blog/vue-ile-bilesen-tabanli-arayuz-mimarisine-gecis/
- Markdown: https://www.muhammetsafak.com.tr/blog/vue-ile-bilesen-tabanli-arayuz-mimarisine-gecis.md

### Laravel API kaynak (resource) sınıflarıyla yanıt biçimlemek

- Laravel API Resource sınıflarıyla veritabanı modelini istemciye doğrudan sızdırmadan temiz yanıtlar nasıl üretilir, örneklerle anlatıyorum.
- Yayın: 2018-02-04
- Web Geliştirme
- Etiketler: #Laravel, #API
- https://www.muhammetsafak.com.tr/blog/laravel-api-kaynak-resource-siniflariyla-yanit-bicimlemek/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-api-kaynak-resource-siniflariyla-yanit-bicimlemek.md

### PHP 7.2 ve modern PHP alışkanlıkları

- 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.
- Yayın: 2018-01-07
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/php-7-2-ve-modern-php-aliskanlikari/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-7-2-ve-modern-php-aliskanlikari.md

### Git akışı: branch, merge ve pull request disiplini

- Git ile dallanma (branching) alışkanlıkları, merge stratejileri ve pull request ile izlenebilir bir değişiklik geçmişi kurmak.
- Yayın: 2017-12-03
- Araçlar & Teknolojiler
- Etiketler: #Git
- https://www.muhammetsafak.com.tr/blog/git-akisi-branch-merge-ve-pull-request-disiplini/
- Markdown: https://www.muhammetsafak.com.tr/blog/git-akisi-branch-merge-ve-pull-request-disiplini.md

### Responsive tasarım: mobil öncelikli CSS

- 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.
- Yayın: 2017-11-05
- Arayüz
- Etiketler: #CSS
- https://www.muhammetsafak.com.tr/blog/responsive-tasarim-mobil-oncelikli-css/
- Markdown: https://www.muhammetsafak.com.tr/blog/responsive-tasarim-mobil-oncelikli-css.md

### Laravel policy ve gate ile yetkilendirme

- Laravel'de Gate ve Policy ile yetkilendirme mantığını tek yerde toplamak; 'kim neyi yapabilir' kararlarını temiz kurmak.
- Yayın: 2017-10-01
- Web Geliştirme
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-policy-ve-gate-ile-yetkilendirme/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-policy-ve-gate-ile-yetkilendirme.md

### JavaScript'te Promise ve asenkron akış

- JavaScript'te Promise nedir, callback yığınından nasıl kurtulunur; then, catch zincirleme ve temel asenkron akış kalıpları.
- Yayın: 2017-09-03
- Diller
- Etiketler: #JavaScript
- https://www.muhammetsafak.com.tr/blog/javascriptte-promise-ve-asenkron-akis/
- Markdown: https://www.muhammetsafak.com.tr/blog/javascriptte-promise-ve-asenkron-akis.md

### Laravel ile ödeme entegrasyonu (iyzico) deneyimi

- Laravel projelerinde iyzico ödeme entegrasyonu yaparken karşılaşılan gerçek sorunlar ve çözümleri; deneyim anlatısı.
- Yayın: 2017-08-06
- Günlük
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-ile-odeme-entegrasyonu-iyzico-deneyimi/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-ile-odeme-entegrasyonu-iyzico-deneyimi.md

### Üçüncü parti API tüketmek: Guzzle ile HTTP istemcisi

- PHP'de Guzzle HTTP istemcisi ile dış servislere bağlanmak; timeout, hata yönetimi ve güvenilir istek yapısı kurmak.
- Yayın: 2017-07-02
- Web Geliştirme
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/ucuncu-parti-api-tuketmek-guzzle-ile-http-istemcisi/
- Markdown: https://www.muhammetsafak.com.tr/blog/ucuncu-parti-api-tuketmek-guzzle-ile-http-istemcisi.md

### PHP'de closure ve use ile değişken yakalama

- PHP'de closure (anonim fonksiyon) nedir, use anahtar kelimesiyle değişken yakalama nasıl çalışır; günlük kullanım örnekleri.
- Yayın: 2017-06-04
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/phpde-closure-ve-use-ile-degisken-yakalama/
- Markdown: https://www.muhammetsafak.com.tr/blog/phpde-closure-ve-use-ile-degisken-yakalama.md

### Laravel Mix ile varlık derlemeyi basitleştirmek

- Laravel Mix, Webpack yapılandırması yazmadan JavaScript ve CSS varlıklarını derlemenizi sağlayan akıcı bir API sunuyor.
- Yayın: 2017-05-07
- Araçlar & Teknolojiler
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-mix-ile-varlik-derlemeyi-basitlestirmek/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-mix-ile-varlik-derlemeyi-basitlestirmek.md

### Vuex ile Vue uygulamasında durum yönetimi

- Vuex ile bileşenler arası paylaşılan durumu tek bir kaynakta toplamak; state, mutation, action ve getter kavramları.
- Yayın: 2017-04-02
- Arayüz
- Etiketler: #Vue.js
- https://www.muhammetsafak.com.tr/blog/vuex-ile-vue-uygulamasinda-durum-yonetimi/
- Markdown: https://www.muhammetsafak.com.tr/blog/vuex-ile-vue-uygulamasinda-durum-yonetimi.md

### Laravel ile e-posta gönderimi ve şablonları

- Laravel Mailable sınıfı ve Blade e-posta şablonları ile işlemsel e-postaları güvenilir ve bakımı kolay şekilde kurmak.
- Yayın: 2017-03-05
- Web Geliştirme
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-ile-e-posta-gonderimi-ve-sablonlari/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-ile-e-posta-gonderimi-ve-sablonlari.md

### Laravel 5.4 ve Blade ile bileşen düşünmek

- Laravel 5.4'te Blade şablon motoruna gelen @component direktifi ile görünümleri yeniden kullanılabilir parçalara bölmek.
- Yayın: 2017-02-05
- Framework & Kütüphane
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-5-4-ve-blade-ile-bilesen-dusunmek/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-5-4-ve-blade-ile-bilesen-dusunmek.md

### PHP 7.1: nullable tipler ve void dönüş tipi

- PHP 7.1 ile gelen nullable tip bildirimleri ve void dönüş tipi, fonksiyon imzalarını daha okunur ve net kılıyor.
- Yayın: 2017-01-01
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/php-7-1-nullable-tipler-ve-void-donus-tipi/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-7-1-nullable-tipler-ve-void-donus-tipi.md

### Sass ile sürdürülebilir CSS yazmak

- 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.
- Yayın: 2016-12-04
- Arayüz
- Etiketler: #CSS, #Sass
- https://www.muhammetsafak.com.tr/blog/sass-ile-surdurulebilir-css-yazmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/sass-ile-surdurulebilir-css-yazmak.md

### Vue Router ile tek sayfa uygulama (SPA) mantığı

- Vue Router ile sayfa geçişlerini istemci tarafına taşırken karşılaştığım temel kavramları ve pratik kurulumu aktarıyorum.
- Yayın: 2016-11-06
- Arayüz
- Etiketler: #Vue.js
- https://www.muhammetsafak.com.tr/blog/vue-router-ile-tek-sayfa-uygulama-spa-mantigi/
- Markdown: https://www.muhammetsafak.com.tr/blog/vue-router-ile-tek-sayfa-uygulama-spa-mantigi.md

### Postman ile API geliştirmeyi hızlandırmak

- API uçlarını tarayıcı olmadan denemek, koleksiyonlar oluşturmak ve Postman'i iş akışına dahil etmek hakkında öğrendiklerimi paylaşıyorum.
- Yayın: 2016-10-02
- Araçlar & Teknolojiler
- Etiketler: #API
- https://www.muhammetsafak.com.tr/blog/postman-ile-api-gelistirmeyi-hizlandirmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/postman-ile-api-gelistirmeyi-hizlandirmak.md

### REST API'de sayfalama, filtreleme ve sıralama

- Büyüyen veri kümelerini istemciye yönetilebilir sunmak için API'de sayfalama, filtreleme ve sıralama parametrelerini nasıl tasarladığımı anlatıyorum.
- Yayın: 2016-09-04
- Son güncelleme: 2026-09-07
- Web Geliştirme
- Etiketler: #API
- https://www.muhammetsafak.com.tr/blog/rest-api-de-sayfalama-filtreleme-ve-siralama/
- Markdown: https://www.muhammetsafak.com.tr/blog/rest-api-de-sayfalama-filtreleme-ve-siralama.md

### Laravel ile dosya yükleme ve görsel işleme

- Laravel'de dosya yükleme, doğrulama ve görseli yeniden boyutlandırma adımlarını kapsayan uçtan uca akışı anlatıyorum.
- Yayın: 2016-08-07
- Web Geliştirme
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-ile-dosya-yukleme-ve-gorsel-isleme/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-ile-dosya-yukleme-ve-gorsel-isleme.md

### PHP'de arayüz (interface) ve bağımlılık enjeksiyonu pratiği

- PHP'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.
- Yayın: 2016-07-03
- Diller
- Etiketler: #PHP, #OOP
- https://www.muhammetsafak.com.tr/blog/php-de-arayuz-interface-ve-bagimlilik-enjeksiyonu-pratigi/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-de-arayuz-interface-ve-bagimlilik-enjeksiyonu-pratigi.md

### Webpack'e geçiş: Gulp'tan modül paketlemeye

- Gulp ile kurduğum derleme hattını neden terk ettiğimi ve Webpack'e geçerken karşılaştığım zorlukları ve kazanımları aktarıyorum.
- Yayın: 2016-06-05
- Araçlar & Teknolojiler
- Etiketler: #JavaScript, #Webpack
- https://www.muhammetsafak.com.tr/blog/webpack-e-gecis-gulp-tan-modul-paketlemeye/
- Markdown: https://www.muhammetsafak.com.tr/blog/webpack-e-gecis-gulp-tan-modul-paketlemeye.md

### Laravel'de olaylar (events) ve dinleyiciler

- Laravel'in olay sistemiyle yan etkileri ana akıştan nasıl ayırdığımı ve pratikte ne kazandığımı örneklerle anlatıyorum.
- Yayın: 2016-05-01
- Framework & Kütüphane
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-de-olaylar-events-ve-dinleyiciler/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-de-olaylar-events-ve-dinleyiciler.md

### Vue.js ile ilk reaktif bileşen

- jQuery ile DOM manipülasyonundan Vue.js'in veri odaklı yaklaşımına geçiş deneyimimi ve ilk reaktif bileşeni nasıl yazdığımı anlatıyorum.
- Yayın: 2016-04-03
- Arayüz
- Etiketler: #JavaScript, #Vue.js
- https://www.muhammetsafak.com.tr/blog/vue-js-ile-ilk-reaktif-bilesen/
- Markdown: https://www.muhammetsafak.com.tr/blog/vue-js-ile-ilk-reaktif-bilesen.md

### SOLID'i PHP'de pratiğe dökmek: tek sorumluluk ilkesi

- SOLID'in SRP ilkesini soyut kalmadan PHP sınıflarına nasıl uyguladığımı somut örneklerle anlatıyorum.
- Yayın: 2016-03-06
- Diller
- Etiketler: #PHP, #OOP
- https://www.muhammetsafak.com.tr/blog/solid-i-php-de-pratige-dokmek-tek-sorumluluk-ilkesi/
- Markdown: https://www.muhammetsafak.com.tr/blog/solid-i-php-de-pratige-dokmek-tek-sorumluluk-ilkesi.md

### Laravel 5.2: çoklu kimlik doğrulama ve route grupları

- Laravel 5.2 ile birden fazla kullanıcı tipini tek uygulamada nasıl yönettiğimi; guard ve route gruplarını anlatıyorum.
- Yayın: 2016-02-07
- Framework & Kütüphane
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-5-2-coklu-kimlik-dogrulama-ve-route-gruplari/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-5-2-coklu-kimlik-dogrulama-ve-route-gruplari.md

### PHP 7'de skaler tip bildirimleri ve dönüş tipleri

- PHP 7 ile gelen skaler tip bildirimleri ve dönüş tipi tanımlamalarını pratikte nasıl kullandığımı anlatıyorum.
- Yayın: 2016-01-03
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/php-7-de-skaler-tip-bildirimleri-ve-donus-tipleri/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-7-de-skaler-tip-bildirimleri-ve-donus-tipleri.md

### PHP 7.0: yıllardır beklenen sürümle gelen hız ve tip bildirimleri

- PHP 7.0 bu hafta yayımlandı. Performans artışı, skaler tip bildirimleri ve dönüş tipleriyle ilk izlenimlerimi paylaşıyorum.
- Yayın: 2015-12-06
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/php-7-0-yillarca-beklenen-surum-hiz-ve-tip-bildirimleri/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-7-0-yillarca-beklenen-surum-hiz-ve-tip-bildirimleri.md

### Composer ile kendi paketimi Packagist'te yayımlamak

- Bir PHP paketini sıfırdan yapılandırıp Packagist'e göndererek başkalarının kullanımına açtım; adımları aktarıyorum.
- Yayın: 2015-11-01
- Araçlar & Teknolojiler
- Etiketler: #PHP, #Composer
- https://www.muhammetsafak.com.tr/blog/composer-ile-kendi-paketimi-packagistte-yayimlamak/
- Markdown: https://www.muhammetsafak.com.tr/blog/composer-ile-kendi-paketimi-packagistte-yayimlamak.md

### Laravel middleware ile isteklere ortak davranış eklemek

- Laravel'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.
- Yayın: 2015-10-04
- Framework & Kütüphane
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-middleware-ile-isteklere-ortak-davranis-eklemek/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-middleware-ile-isteklere-ortak-davranis-eklemek.md

### Eloquent ilişkileri: hasMany, belongsTo ve eager loading

- Laravel Eloquent'te hasMany ve belongsTo ilişkilerini kurmayı ve N+1 sorgusunu eager loading ile çözmeyi anlattım.
- Yayın: 2015-09-06
- Son güncelleme: 2026-09-07
- Framework & Kütüphane
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/eloquent-iliskileri-hasmany-belongsto-ve-eager-loading/
- Markdown: https://www.muhammetsafak.com.tr/blog/eloquent-iliskileri-hasmany-belongsto-ve-eager-loading.md

### Gulp ile front-end derleme hattı kurmak

- Gulp ile Sass derleme, JavaScript birleştirme ve tarayıcı yenilemeyi otomatikleştiren bir front-end iş akışı kurdum.
- Yayın: 2015-08-02
- Araçlar & Teknolojiler
- Etiketler: #JavaScript, #Gulp
- https://www.muhammetsafak.com.tr/blog/gulp-ile-front-end-derleme-hatti-kurmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/gulp-ile-front-end-derleme-hatti-kurmak.md

### ES6 ile tanışma: let, const ve ok fonksiyonları

- JavaScript'in yeni standardı ES6 ile gelen let, const, ok fonksiyonu ve şablon dizelerini örneklerle anlattım.
- Yayın: 2015-07-05
- Diller
- Etiketler: #JavaScript
- https://www.muhammetsafak.com.tr/blog/es6-ile-tanisma-let-const-ve-ok-fonksiyonlari/
- Markdown: https://www.muhammetsafak.com.tr/blog/es6-ile-tanisma-let-const-ve-ok-fonksiyonlari.md

### PHP 5.6 yenilikleri: variadic fonksiyonlar ve ** operatörü

- PHP 5.6 ile gelen değişken sayıda argüman (variadic) desteği ve üs alma operatörünü örneklerle anlattım.
- Yayın: 2015-06-07
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/php-5-6-yenilikleri-variadic-fonksiyonlar-ve-ust-uste-operatoru/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-5-6-yenilikleri-variadic-fonksiyonlar-ve-ust-uste-operatoru.md

### Laravel ile JSON API uçları yazmak

- Laravel'de arayüzden bağımsız JSON API uç noktaları oluşturmanın pratik yollarını anlattım.
- Yayın: 2015-05-03
- Web Geliştirme
- Etiketler: #Laravel, #API
- https://www.muhammetsafak.com.tr/blog/laravel-ile-json-api-uclari-yazmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-ile-json-api-uclari-yazmak.md

### RESTful API tasarımının temelleri

- Kaynak, HTTP yöntemi ve durum kodu üçgeninde bir API'yi tahmin edilebilir kılmanın pratik kurallarını anlattım.
- Yayın: 2015-04-05
- Web Geliştirme
- Etiketler: #API
- https://www.muhammetsafak.com.tr/blog/restful-api-tasariminin-temelleri/
- Markdown: https://www.muhammetsafak.com.tr/blog/restful-api-tasariminin-temelleri.md

### Laravel Homestead ile herkeste aynı geliştirme ortamı

- Laravel Homestead'ı kurup ekipte 'bende çalışıyordu' sorununu nasıl çözdüğümü adım adım anlattım.
- Yayın: 2015-03-01
- Araçlar & Teknolojiler
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-homestead-ile-herkeste-ayni-gelistirme-ortami/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-homestead-ile-herkeste-ayni-gelistirme-ortami.md

### Laravel 5'e geçiş: yeni dizin yapısı ve .env

- Laravel 4'ten 5'e geçerken dizin yapısı, .env dosyası ve uygulama yapısındaki değişiklikleri anlattım.
- Yayın: 2015-02-01
- Framework & Kütüphane
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-5e-gecis-yeni-dizin-yapisi-ve-env/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-5e-gecis-yeni-dizin-yapisi-ve-env.md

### MVC'yi gerçekten anlamak: controller'ı şişirmeyi bırakmak

- MVC'nin her katmanının gerçekte ne iş yaptığını ve controller'ı nasıl ince tutabileceğinizi anlatıyorum.
- Yayın: 2015-01-04
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/mvci-gercekten-anlamak-controlleri-sisirmeyi-birakmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/mvci-gercekten-anlamak-controlleri-sisirmeyi-birakmak.md

### PHP 5.5 generator (yield) ile büyük veri kümelerini gezmek

- Belleği şişirmeden büyük döngüler kurmanın dil düzeyindeki yolu: PHP 5.5 generator ve yield kullanımı.
- Yayın: 2014-12-07
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/php-55-generator-yield-ile-buyuk-veri-kumelerini-gezmek/
- Markdown: https://www.muhammetsafak.com.tr/blog/php-55-generator-yield-ile-buyuk-veri-kumelerini-gezmek.md

### Laravel ile form doğrulama (validation) pratiği

- Kullanıcı girdisini güvenle karşılamanın tekrar edilebilir kalıbı: Laravel doğrulama kuralları ve hata mesajları.
- Yayın: 2014-11-02
- Web Geliştirme
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-ile-form-dogrulama-validation-pratigi/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-ile-form-dogrulama-validation-pratigi.md

### Eloquent ORM ile veritabanı işlemlerini sadeleştirmek

- SQL'i elle yazmaktan model tabanlı erişime: Laravel Eloquent ORM'in uygulama tarafından görünümü ve günlük kullanımı.
- Yayın: 2014-10-05
- Framework & Kütüphane
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/eloquent-orm-ile-veritabani-islemlerini-sadestirmek/
- Markdown: https://www.muhammetsafak.com.tr/blog/eloquent-orm-ile-veritabani-islemlerini-sadestirmek.md

### Bootstrap 3 ile hızlı ve tutarlı arayüz kurmak

- Tasarımcı olmadan düzgün görünen arayüz üretmenin yolu: Bootstrap 3 grid sistemi ve hazır bileşenler.
- Yayın: 2014-09-07
- Arayüz
- Etiketler: #CSS, #Bootstrap
- https://www.muhammetsafak.com.tr/blog/bootstrap-3-ile-hizli-ve-tutarli-arayuz-kurmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/bootstrap-3-ile-hizli-ve-tutarli-arayuz-kurmak.md

### Git'e geçiş: FTP ile dosya atmayı bırakmak

- Sürüm kontrolüyle gelen güven: FTP'den Git'e geçişin değiştirdiği geliştirme alışkanlığı, temel commit ve branch kullanımı.
- Yayın: 2014-08-03
- Araçlar & Teknolojiler
- Etiketler: #Git
- https://www.muhammetsafak.com.tr/blog/gite-gecis-ftp-ile-dosya-atmayi-birakmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/gite-gecis-ftp-ile-dosya-atmayi-birakmak.md

### Blade şablon motoru: tekrar eden HTML'i bitirmek

- Görünüm katmanını mantıktan ayırmanın pratik kazancı: Blade layout, section ve partial kullanımı.
- Yayın: 2014-07-06
- Framework & Kütüphane
- Etiketler: #Laravel
- https://www.muhammetsafak.com.tr/blog/blade-sablon-motoru-tekrar-eden-htmli-bitirmek/
- Markdown: https://www.muhammetsafak.com.tr/blog/blade-sablon-motoru-tekrar-eden-htmli-bitirmek.md

### Laravel 4 ile ilk projeme başlarken

- Ham PHP'den bir framework'e geçişin getirdiği düzen: Laravel 4 ile ilk izlenimler, kurulum ve temel yapı.
- Yayın: 2014-06-01
- Framework & Kütüphane
- Etiketler: #PHP, #Laravel
- https://www.muhammetsafak.com.tr/blog/laravel-4-ile-ilk-projeme-baslarken/
- Markdown: https://www.muhammetsafak.com.tr/blog/laravel-4-ile-ilk-projeme-baslarken.md

### jQuery ile AJAX: sayfayı yenilemeden veri göndermek

- Form gönderimini sayfa yüklemeden ayırmanın 2014'teki standardı: jQuery $.ajax kullanımı ve pratik örnekler.
- Yayın: 2014-05-04
- Arayüz
- Etiketler: #JavaScript, #jQuery
- https://www.muhammetsafak.com.tr/blog/jquery-ile-ajax-sayfayi-yenilemeden-veri-gondermek/
- Markdown: https://www.muhammetsafak.com.tr/blog/jquery-ile-ajax-sayfayi-yenilemeden-veri-gondermek.md

### PHP'de namespace ile kodu düzenli tutmak

- İsim çakışmalarını bitiren, kütüphane çağına uygun kod organizasyonu: PHP namespace kullanımı ve use ifadesi.
- Yayın: 2014-04-06
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/phpde-namespace-ile-kodu-duzenli-tutmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/phpde-namespace-ile-kodu-duzenli-tutmak.md

### PSR-4 ve otomatik yükleme: include zincirinden kurtulmak

- Sınıfları elle dahil etmeyi bırakıp standart otomatik yüklemeye geçmek: PSR-0 ve PSR-4 farkı, Composer entegrasyonu.
- Yayın: 2014-03-02
- Diller
- Etiketler: #PHP
- https://www.muhammetsafak.com.tr/blog/psr-4-ve-otomatik-yukleme-include-zincirinden-kurtulmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/psr-4-ve-otomatik-yukleme-include-zincirinden-kurtulmak.md

### Composer'a geçiş: PHP bağımlılıklarını elle yönetmeyi bırakmak

- require yığınından modern bağımlılık yönetimine geçişin pratiği: composer.json, autoload ve paket kurma.
- Yayın: 2014-02-02
- Araçlar & Teknolojiler
- Etiketler: #PHP, #Composer
- https://www.muhammetsafak.com.tr/blog/composera-gecis-php-bagimliliklarini-elle-yonetmeyi-birakmak/
- Markdown: https://www.muhammetsafak.com.tr/blog/composera-gecis-php-bagimliliklarini-elle-yonetmeyi-birakmak.md
