1 puan yazan GN⁺ 2024-06-29 | 1 yorum | WhatsApp'ta paylaş
  • Onu bu kadar iyi yapan neydi?
    • İyi pratikleri dayatan biri mi vardı?
    • Harika bir mühendis grubunun parçası mıydınız?
    • Yoksa başka bir şey mi?

GN⁺ görüşü

  • Bu yazı, yazılım geliştirme ortamında iyi pratiklerin nasıl sürdürüldüğüne dair ilgi çekici bir soru ortaya koyuyor
  • İyi pratiklerin zorunlu kılındığı ortamlarla daha özerk ortamlar arasındaki farkı anlamaya yardımcı olabilir
  • Benzer işlevlere sahip diğer projeler arasında Google'ın Code Review sistemi veya GitHub'ın Pull Request sistemi bulunuyor
  • Yeni teknolojileri veya açık kaynağı benimserken, bunların ekip kültürü ve mevcut süreçlerle nasıl entegre edilebileceğini düşünmek gerekir
  • İyi pratikleri sürdürmek, ekip verimliliğini ve kod kalitesini artırmada önemli bir unsurdur

1 yorum

 
GN⁺ 2024-06-29
Hacker News görüşü
  • Google’ın monoreposu araçlar açısından son derece iyiydi

    • Tüm kod tabanının bir anlık görüntüsü birkaç saniye içinde oluşturulabiliyordu
    • Build’ler tamamen yeniden üretilebilirdi ve build kümesinde çalıştırılıyordu
    • Build yapılandırma dili çok basit ve özdü
    • Kod araması anında yapılabiliyordu
    • Dosya geçmişi anında yükleniyordu
    • Satır bazlı blame birkaç saniye içinde yükleniyordu
    • Neredeyse tüm dosyalarda anında sembol araması yapılabiliyordu
    • Tutarlı stil, paylaşılan kültür, otomatik linter’lar ve pre-submit süreçleriyle zorunlu kılınıyordu
    • Dosya/sürüm/satıra deep link veren kısayollar sayesinde kod paylaşımı kolaydı
    • Çok sayıda pre-submit kontrolü kod/test kalitesini garanti ediyordu
    • Kod incelemesi ve kod değişikliği sırasında test eşleştirmesi zorunluydu
  • AOL’un sunucu kodu çok iyiydi

    • Unix programlama ve event loop kullanımını derinlemesine anlayan kişiler tarafından yazılmıştı
    • C dilinde yazılmıştı ve aylarca çökmeden çalışması beklenirdi
    • Anormal kapanma durumunda sahibine e-postayla core backtrace gönderirdi
    • Bellek sızıntısı olduğunda operasyon ekibi hemen müdahale ederdi
    • Her şey yeniden başlatma olmadan çalışan sunucuya tekrar yüklenebiliyordu
    • Sunucular TCP kontrol portu ve TCL yorumlayıcısı kullanılarak yönetiliyordu
    • "No Threads Kernel" ile onlarcadan yüzlerce fiziksel makineye ölçeklenmişti
    • 200 Unix geliştiricisi ortak bir anlayışa sahipti
    • Teknik yazarlar geliştiricilerle röportaj yapıp dış geliştiricilere aktarılabilecek kitaplar yazıyordu
    • Disk’e yazmadan ağ mesajı alışverişi yapma ilkesini izliyorlardı
  • Önceki iş yerimdeki kod tabanı çok iyiydi

    • Mühendisler çok yetenekliydi ve egoları yoktu
    • Ekip 4 kıdemli ve 3 principal mühendisten oluşuyordu
    • Her yeni gereksinim ortaya çıktığında bunu medeni bir şekilde tartışıyorlardı
    • Junior üyeler bile mevcut kodu kolayca takip edebiliyordu
  • Postgres kod tabanı çok iyi organize edilmişti

    • Bellek güvenliği konusunda endişelenmek gerekmiyordu
    • İnsan faktörüne saygı duyarak makroları dikkatli kullanıyordu
    • Postgres kod tabanı geliştirme için altın standart kabul ediliyordu
    • pgrx ekibine teşekkür ediliyordu
  • Büyük ölçekli bir Python servisinin entegrasyon testi framework’ü çok iyiydi

    • Mevcut entegrasyon testi framework’ünün üzerine kurulmuştu
    • Test bileşenleri için net anlamlar tanımlıyordu
    • Test bileşenleri başlangıç seti olarak inşa edilmişti
    • Kod incelemeleriyle yeni bileşenlerin bu anlamlara uyması sağlanıyordu
    • Uzun vadede ise iyi çalışmadı
  • Google3 kod tabanı çok büyüktü ve iyi çalışıyordu

    • Her değişiklikte bağımlılıklar yeniden çalıştırılıyordu
    • Commit’ler verimli değiştirilemez snapshot’lardı
    • GitHub’dan çok daha iyiydi
  • En iyi kod tabanı bizzat benim yazdığımdı

  • Cocotron kod tabanı çok etkileyiciydi

    • Mac Cocoa uygulamalarını Windows’a port etmenin bir yolunu arıyordum
    • Tek bir kişi gerekli tüm API’leri uygulamıştı
    • Karmaşık özel GUI uygulamalarında başarıyla kullanılmıştı
    • Odaklanma önemlidir
  • Facebook’un kod tabanı sürekli kod yükseltmelerine imkân tanıyordu

    • Dil tasarımı ve araçlara çok emek veriliyordu
    • Eski kod sürekli olarak yükseltiliyordu
    • Diğer şirketlerin kod tabanlarında büyük yeniden yazımlar sonrası geçiş zordu
  • CouchDB’nin HTTP API’si tek bir dosyanın içindeydi

    • Veritabanı ve web programlamayı öğrenmek için iyi bir başlangıç noktasıydı
    • Daha sonra ekip tarafından refactor edildi
    • İlhamdan gerçek kullanıma geçiş sürecini görmek ilginçti