Küçük programlama hileleri: küçük bilgi parçaları neden günlük kazanç sağlar
Will Keleher, günlük mühendislik verimliliğinin büyük bölümünün küçük ve kendi başına duran bilgi parçalarından geldiğini savunuyor: git pickaxe aramalarından logaritmik metrik kovalarına kadar.
Küçük bilgi parçaları neden önemli
Will Keleher yeni bir blog yazısında günlük mühendislik verimliliğinin şaşırtıcı bir bölümünün küçük bilgi parçalarından geldiğini savunuyor: bir dil özelliğinin var olduğunu bilmek, açıklanamayan bir TCP gecikmesinin muhtemelen Nagle algoritmasıyla ilgili olduğunu fark etmek, zor durumdan çıkaran doğru git komutunu hatırlamak ya da bir dosyayı yeniden yazmanın bir yolunu bilmek.
Kabukta ve Git'te
Örnekleri terminalde başlıyor. Ctrl+R komut geçmişinde arama yapar; fzf kurmak bunu bulanık bir aramaya dönüştürür; atuin kabuk geçmişini aranabilir bir SQLite veritabanıyla değiştirir; per-directory-history ise yalnızca bulunduğunuz dizinde çalıştırılan komutlarla tüm önceki komutlar arasında arama yapmayı değiştirmenizi sağlar. Git'te git log -S pattern — yani pickaxe — verilen bir metni ekleyen veya silen tüm commit'leri listeler; yazara göre bu özellikle eski kod tabanlarında son derece faydalıdır. git log -G benzerdir ama bir satırın taşındığı durumları da gösterir. git checkout - ise önceki HEAD'e döner; tıpkı cd - komutunun önceki dizine dönmesi gibi.
Ayrıca find'a muhtemelen ihtiyacınız olmadığını savunuyor: pek çok find komutu **/*.md gibi glob'larla değiştirilebilir; çoğu kabuk bunu hazır destekler, bash için önce shopt -s globstar gerekir. zsh'in gelişmiş otomatik tamamlama özelliğinin varsayılan olarak açık olmadığını ve kısa bir yapılandırma gerektirdiğini de not ediyor.
Veritabanları, metrikler ve JavaScript
Hilelerin bir kısmı yanıtı daha hızlı almaya yönelik. SQL'de FROM olmadan SELECT çalışır ve bir fonksiyonun nasıl davrandığını sınamanın ya da SELECT TRUE <> NULL ifadesinin ne döndürdüğünü hatırlamanın hızlı bir yoludur. Hem PostgreSQL hem de MySQL explain analyze destekler; bu komut sorguyu gerçekten çalıştırır ve düz explain'den çok daha fazla performans bilgisi verir. Metriklerde ise Math.floor(Math.log10(count)) gibi logaritmik bir kova kaydetmek, yalnızca ortalamayı değil değerlerin dağılımını da görmenizi sağlar.
JavaScript tarafında Array.flatMap, Object.entries ve Promise.withResolvers'ı bilinmeye değer modern özellikler olarak sayıyor; ayrıca etkisi orantısız büyük bir Node.js hilesine işaret ediyor: bir https.Agent oluşturup fetch çağrılarına vermek, harici bir kaynağa açık bağlantı tutar ve gecikme üzerinde çarpıcı bir etki yaratabilir.
Şirket bilgisi de aynı malzemeden yapılır
Keleher, bir şirketin içinde daha da fazla bilginin bu biçimi aldığını not ediyor: belirli bir sorunu ayıklarken hangi veri kaynağının kullanılacağı, bir alanı iyi bilen ve yardım etmekten mutlu olan kişinin kim olduğu, iyi dokümantasyonun nerede durduğu, hangi işaretin bir servisin elle ölçeklendirilmesi gerektiğini gösterdiği, sıralı yeniden başlatma komutunun ne olduğu ve hangi aracın sıkıcı bir sorunu betiklenebilir hâle getirdiği. Önceki şirketinde mühendislik ekibiyle Slack'te her gün bir hile paylaştı; hem teknik hem de şirkete özgü olanlar.
SiTech — AI destekli web geliştirme
Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.