yazılım üzerine not tutmak_
Türkiye'den yazan geliştiriciler için: mimari kararlar, dil ve araç tercihleri, üretimde öğrenilen dersler. Haber değil, not.
- 2026-09-16Sorgu yavaşladığında sorgu planını okumakYavaş sorguya indeks atmadan önce planı okumak gerekir. EXPLAIN ANALYZE çıktısında hangi satıra bakılacağını ve tahmin ile gerçeğin ayrıştığı yeri bulmayı anlatan not.
- 2026-09-15Dosya yükleme ucunu güvenli yazmak: tür, boyut, isim, depolamaYükleme ucunda dört karar noktası: boyutu akışta sınırlamak, türü içerikten belirlemek, kullanıcı adını diske yazmamak ve dosyayı ayrı yerden doğru başlıklarla sunmak.
- 2026-09-14Takvim ve randevu verisi modellemek: tekrar kuralları ve istisnalarTekrar eden randevuyu RRULE, yerel duvar saati ve orijinal başlangıca bağlı istisnalarla saklamak; bu ve sonrakiler için seri bölme ve PostgreSQL EXCLUDE ile çakışma kontrolü.
- 2026-09-13Yapılandırılmış log: grep alışkanlığından sorgulanabilir kaydaMetin logundan JSON loga geçiş: önce alan sözlüğü, sonra istek bağlamı, sonra kademeli çeviri. jq ve Loki sorgu örnekleri ve kardinalite, maskeleme, birim tuzakları.
- 2026-09-12Çevrimdışı çalışabilen arayüz: yerel kuyruk, çakışma çözümü, senkronÇevrimdışı desteğin zor kısmı okuma değil yazma. Kalıcı bir yerel kuyruk, istemcide üretilen idempotency anahtarı ve alana göre seçilen çakışma kuralıyla kurulan yazma yolunun anatomisi.
- 2026-09-10Barkod görselini üretirken çözünürlük ve tarama başarısı ilişkisiBarkodun okunurluğunu piksel değil modül genişliği belirliyor. Nokta ızgarasına oturmayan modül, kırpılan sessiz alan ve raster ölçekleme hatalarını kodla nasıl önlersiniz.
- 2026-09-09İstek sınırlama (rate limiting): token bucket ve kayan pencereSabit pencere sayacı pencere kenarında iki katı isteği geçiriyor. Token bucket, kayan pencere kaydı ve ağırlıklı sayaç arasındaki farklar, Redis üzerinde bölünemez uygulaması ile.
- 2026-09-08Webhook alıcısı yazmak: imza doğrulama, tekrar gönderim, sıra bozulmasıÜretimde webhook alıcılarını bozan üç şey var: ham gövdeyi kaybettiren imza doğrulama, aynı olayı iki kez işlemek ve olayların sırayla geleceğini varsaymak. Üçünün de kod düzeyinde karşılığı var.
- 2026-09-07Zaman dilimi hataları: UTC saklamak tek başına yetmiyorUTC bir anı saklar, uygulamalar ise çoğu zaman niyet saklamak zorundadır. Geçmiş olay ile gelecekteki randevunun neden farklı tiplerde tutulması gerektiğini kodla anlatıyoruz.
- 2026-09-06Üretim ortamında hata ayıklama: bakmadan tahmin etmemekÜretimde hata bildirimi geldiğinde kodu açmadan önce yapılması gerekenler: korelasyon kimliği, yapılandırılmış log, istisna zinciri, süre ölçümü ve dağıtım kaydı ile arama alanını daraltmak.
- 2026-09-05Kendi araçlarını yazan geliştiricinin gizli maliyetiİç araçların asıl maliyeti ilk yazımda değil, sürdürme ve devir kaleminde birikiyor. Bu maliyeti kendi deponuzdan üç git komutuyla ölçmenin yolunu anlatıyoruz.
- 2026-09-04Veritabanı şeması değişikliğini sıfır kesintiyle yapmakALTER TABLE'ın aldığı kilit, milisaniyelik bir komutu kırk saniyelik kesintiye çevirebiliyor. Genişlet-daralt yöntemiyle şemayı bakım penceresi açmadan değiştirmenin adımları.
- 2026-09-03Olay güdümlü mimari küçük sistemde ne zaman aşırıya kaçarOlayla ayrıştırmanın kâğıt üzerindeki temizliği, çalışma anında nedensellik, sıralama ve atomiklik olarak fatura ediyor. Eşiği belirleyen üç soru ve kuyruğa geçmeden önceki ara basamak.
- 2026-09-02Yazılımcı olarak fiyatlandırma: proje mi, saat mi, değer miSaatlik, sabit ve değer bazlı fiyat arasındaki fark gelir değil risk dağılımıdır. Efektif saat ücretini ve kapsam kaymasını hesaplayarak model seçmenin yolu.
- 2026-09-01Belge üretimi (PDF/fatura) sunucu tarafında: yaklaşımlar ve tuzaklarSunucuda PDF üretmenin üç yolu, font ve para biçimlendirmesinde ilk günden yapılması gereken tercihler, belirlenebilir çıktı ve kuyruk kurulumu üzerine bir not.
- 2026-08-31Teknik borcu ölçmek: hissiyattan sayıya“Teknik borcumuz çok” bir ölçüm değil. Git geçmişinden çıkarılabilen dört vekil metrikle borcu takip edilebilir hale getirmenin ve çeyreklik bir refactor listesi üretmenin yolu.
- 2026-08-30Web erişilebilirliği: klavyeyle kullanılamayan arayüz bozukturFareyi bırakıp Tab tuşuyla gezinen bir kullanıcı, çoğu arayüzde beş dakika içinde sıkışır. Klavye erişilebilirliğinin en sık kırıldığı beş nokta ve düzeltmeleri.
- 2026-08-29Sır yönetimi: .env dosyasından sonrası.env bir sırrı koddan çıkarır ama döndürülebilir yapmaz. Dosya izninden platform deposuna ve kısa ömürlü kimliğe kadar, sır yönetiminin katmanları ve her katmanın gerçek maliyeti.
- 2026-08-28Sunucu tarafı render mı, istemci tarafı mı? Karar ağacıSSR, CSR, SSG ve ISR arasındaki seçim uygulamanın tamamı için değil rota düzeyinde veriliyor. Dört soruluk bir karar ağacı, ölçüm komutları ve en sık yapılan üç render hatası.
- 2026-08-27Statik analiz kurallarını ekibe dayatmadan benimsetmekLint kuralları neden CI'da sessizce kapatılıyor? Yeni koda çizgi çekmekten kaçış yollarını saymaya kadar, statik analizin ekipte tutunmasını sağlayan pratik yöntemler.
konular