İçeriğe geç
Muhammet Şafak
en

Uzmanlık

Python'u üç iş için kullanıyorum: otomasyon, veri işleme, araçlar

Bir dosyayı okuyup dönüştürmek için Composer açmak istemediğim yerde Python'a geçiyorum; derinliğim PHP'de, Python bu işleri devraldığı için elimde.

Başlangıç
2014 Başlangıç
yıl
12 yıl
yazı
7 yazı
proje
1 proje

Python ekosisteminde ben

Tam hikâye: Hakkımda

Python benim için bir uzmanlık alanı değil, dar ve net bir araç. Bir dosyayı okuyup dönüştürmek ya da tekrarlayan bir işi otomatikleştirmek gerektiğinde, kurulum töreni istemeyen bir dile geçmek işi hızlandırıyor. Bu sayfa, o dar alanın sınırlarını olduğu gibi anlatıyor.

Sayfanın kısalığı bir eksiklik değil, bir ölçü: iddiam ne kadarsa o kadar yazıyorum. Aynı soruyu daha geniş bir ekosistemde soruyorsanız PHP sayfası çok daha uzun — ve olması gerektiği gibi.

Python'u üç iş için açıyorum

Üçünün ortak yanı, işin standart kütüphaneyle birkaç satırda bitmesi: bu üçünün dışındaki işlerde başka bir dile gidiyorum.

  • Veri dönüştürme

    Bir formattan başka formata veri taşımak; dosyayı okuyup dönüştürüp yazan betikler bu kümede.

  • Otomasyon

    Tekrarlayan bir iş akışını betiğe dökmek; elle yapıldığında adım atlanan işler önce buraya geliyor.

  • Küçük yardımcı araçlar

    Tek işi olan, kurulum töreni istemeyen programlar. Aynı işi PHP ile yazabilirdim, bazılarını Go ile de yazardım; bu ölçekte ceremony fazla geliyor.

Python'u yalnızca yazmıyorum, çözümlüyorum da

Kural denetimi tarafında Python'u ayrıştırıyorum. Bir dilin kod düzenini denetleyebilmek için sözdizimini bilmek yetmiyor; içe aktarmanın nasıl yazıldığını ve nereye çözüldüğünü doğru modellemek gerekiyor. Kuralın kendisi diller arasında değişmiyor, kuralın uygulandığı yüzey değişiyor.

Bir işi ne zaman betiğe döküyorum

Üç soruyla karar veriyorum; evet yanıtları biriktikçe betiğin değeri artıyor.

01 Ne sıklıkla yapılıyor
Seyrek yapılan bir iş betiği hak etmiyor; sıklık arttıkça betiğin değeri artıyor.
02 Adımları sabit mi
Her koşumda değişen bir iş betiğe değil, karara ihtiyaç duyuyor. Sabit adım, otomasyonun ön koşulu.
03 Elle yapıldığında adım atlanabiliyor mu
Elle yapılan tekrar adım atlamaya açık. Atlanabilen bir adım varsa betiğin değeri hızdan değil, tutarlılıktan geliyor.

Ne iddia etmiyorum

Django, FastAPI ve Flask özgeçmişimdeki yetenek listesinde duruyor; ama bu sayfada anlattığım işlerin hiçbiri bir Python web framework'ünün üstünde yürümüyor ve bunu gizlemenin bir anlamı yok. Bir Python servisini devralmam gerekirse yapabilirim; "Python ile ürün taşıyorum" demem ise doğru olmaz.

Bu alandaki son yazılar

Tümünü gör

Bu alanda geliştirdiklerim

Tüm Labs kayıtları

Bir Sentry issue'sunu çalışan koda karşı analiz eden, düzeltmeyi diff ve regresyon testiyle sunan, onay almadan dosyaya dokunmayan Claude Code skill'i.

Şu an ne yapıyor

Bir Sentry issue'sunu çalışan koda karşı okuyup kök neden analizi ve düzeltme planı çıkarıyor; onay alınmadan tek bir dosyaya dokunmuyor. Claude Code kullanan ve prodüksiyon hatasını triyaj etmek isteyen herkes skill'i kurabilir.

Açık kaynak Python Bash Sentry API +3 daha
Temmuz 2026 — Devam ediyor

Dile özgü serileştirme yerine dondurulmuş bir JSON zarfı; polyglot kuyruk standardı BabelQueue'ya dönüştü.

Şu an ne yapıyor

Dondurulmuş JSON zarfı dört dilde — PHP, Python, Go, Node.js — aynı baytları okutuyor; sidecar ya da broker eklentisi gerekmiyor. Polyglot kuyruk kuran ekipler spesifikasyonu ve SDK'ları bugün kullanabilir.

Açık kaynak JSON Redis RabbitMQ +4 daha
Mart 2026 — Haziran 2026

Bu alanda üretime çıkan işler

Tüm projeler
BabelQueue kapak görseli — bir üreticiden kuyruğa, oradan başka bir dildeki tüketiciye akan kanonik JSON zarfı ve çok dilli SDK listesi

BabelQueue

Devam ediyor

Founder & Developer

BabelQueue, farklı dillerde yazılmış servislerin aynı kuyruğu serileştirme kilidine takılmadan paylaşmasını sağlayan, dilden bağımsız bir mesaj kuyruğu standardıdır. PHP'nin serialize()'ı gibi dile özgü formatlar yerine; her dilin doğal olarak okuyabildiği, schema_version 1'de dondurulmuş katı bir JSON zarfı tanımlar. Redis ve RabbitMQ üzerinde, sidecar ya da broker eklentisi olmadan, %2'nin altında ek yükle çalışır.

JSON Redis RabbitMQ +6 daha
Haziran 2026 — Devam ediyor

Birlikte kullandığım teknolojiler

  • Python

    Betik, veri dönüştürme ve otomasyonun varsayılanı; çoğu iş standart kütüphaneyle bitiyor.

Sık sorulanlar

6 soru

  • Python'u kaç yıldır kullanıyorsun?

    2014'den bu yana, 12 yıldır. Süre burada derinlik anlamına gelmiyor: Python bende hep aynı dar işi yaptı ve o işin dışına çıkmadı.

  • Python'u ne için kullanıyorsun?

    Üç iş için: bir formattan başka formata veri dönüştürmek, tekrarlayan bir iş akışını betiğe dökmek ve küçük yardımcı araçlar yazmak. Bu üçü dışındaki işlerde başka bir dile gidiyorum.

  • Neden bu işleri PHP ile yapmıyorsun?

    PHP web isteklerine cevap vermek için tasarlandı. Bir dosyayı okuyup dönüştürüp yazmak için composer.json açıp sınıf hiyerarşisi kurmak istemiyorum — bu görevler için ceremony fazla. Python'da aynı iş standart kütüphaneyle birkaç satır.

  • Django ya da FastAPI ile ürün geliştiriyor musun?

    Üçü de (Django, FastAPI, Flask) özgeçmişimdeki yetenek listesinde duruyor, ama bu sayfada anlattığım işlerin hiçbiri bir Python web framework'ünün üstünde yürümüyor. Bir Python servisini devralmam gerekirse yapabilirim; "Python ile ürün taşıyorum" demem doğru olmaz.

  • Python'la ilgili kaç yazın var?

    Bu sitede Python etiketli 7 yazı var — ekosistemlerin en azı. Bu sayfanın kısa olması da bundan; kanıtım ne kadarsa o kadar yazıyorum.

  • Polyglot çalışmak Python'un yerini nasıl belirliyor?

    Polyglot olmak benim için bir hedef değil, problemlere verilen yanıtların toplamı. Python bu toplamda dar ve net bir yer tutuyor: PHP'nin fazla tören, Go'nun fazla derleme istediği işler.

Birlikte çalışalım

Bu ekosistemde bir işiniz varsa, ne yaptığınızı anlatın; nasıl kurulacağını konuşalım.

Sitede Ara

Yazı, proje ve sayfalarda arama yapmak için yazmaya başlayın.

Esc ile kapat Pagefind ile güçlendirildi