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
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
Tek mimari kuralı, üç dil: archlint artık Go + TypeScript + Python
Polyglot bir repoda 'domain altyapıyı import etmesin' kuralı her dilde aynı; değişen, import'un nasıl çözüldüğü. archlint'e TypeScript ve Python ekledim — tek architecture.json üç dilin sınırlarını CI'da zorluyor.
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.
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.
Bu alanda geliştirdiklerim
SentryFixer: Sentry hatasını koda karşı okuyup düzeltme planı çıkarmak
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.
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.
Bu alanda üretime çıkan işler
BabelQueue
Devam ediyorFounder & 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.
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.