2 puan yazan GN⁺ 2023-11-02 | 1 yorum | WhatsApp'ta paylaş
  • 1989'da Rob Pike'ın programlamaya dair 5 kuralını anlatan bir makale
  • Kural 1: Programın zamanının çoğunu nerede harcayacağını varsayma; darboğazlar beklenmedik yerlerde ortaya çıkabilir. Darboğaz kanıtlanana kadar hız hack'lerinden kaçın.
  • Kural 2: Hız için ayarlama yapmadan önce her zaman ölç. Yalnızca kodun bir bölümünün geri kalan üzerinde anlamlı bir etkisi varsa optimize et.
  • Kural 3: n küçükken karmaşık algoritmalar yavaştır. Çoğu durumda da böyledir. Karmaşık algoritmaları yalnızca n sık sık büyük olduğunda kullan; o zaman bile önce Kural 2'yi uygula.
  • Kural 4: Basit algoritmalar ve veri yapıları tercih edilir. Karmaşık olanlara göre hatalara daha az açıktırlar ve uygulanmaları daha kolaydır.
  • Kural 5: Doğru veri yapısı programlama için belirleyicidir. Veri iyi yapılandırılmışsa algoritmalar kendiliğinden ortaya çıkar.
  • Pike'ın 1. ve 2. kuralları, Tony Hoare'un "erken optimizasyon tüm kötülüklerin kaynağıdır" aforizmasını yansıtır.
  • Ken Thompson, Pike'ın 3. ve 4. kurallarını "şüphe duyduğunda kaba kuvvet kullan" diye yeniden ifade etti.
    1. ve 4. kurallar, KISS (Keep It Simple, Stupid) tasarım felsefesini hayata geçirir.
    1. kural, Fred Brooks'un 'The Mythical Man-Month' kitabındaki sözüyle örtüşür ve sık sık "akıllı nesneler kullanan aptal kod yaz" diye kısaltılır.

1 yorum

 
GN⁺ 2023-11-02
Hacker News görüşleri
  • 1989’da Rob Pike’ın programlama kuralları hakkında bir yazı
  • Yorumcular, programlamanın özünün algoritmalardan çok veri yapıları olduğu konusunda hemfikir
  • LeetCode mülakatlarının algoritmalardan ziyade veri yapılarına odaklanmamasına yönelik eleştiri
  • n küçük olduğunda karmaşık algoritmaların yavaş olduğu ve çoğu durumda n’in küçük olduğu görüşü
  • Yorumcular, uygun veri yapısını seçmenin ve işleri iyi düzenlemenin önemini vurguluyor
  • Veritabanlarının kötüye kullanımı ve ORM tarafından üretilen DB şemalarının olumsuz etkileri üzerine tartışma
  • Rehber ilkeler, aşırı mühendisliği ve erken optimizasyonu önlemeye yönelik bir strateji olarak görülüyor
  • Bazı yorumcular, performanstaki küçük israfın birikip programı yavaşlatabileceğini savunuyor
  • "Erken optimizasyon tüm kötülüklerin kaynağıdır" alıntısı ve bağlamı üzerine tartışma
  • Bazı yorumcular, iyi programcıların neyin yavaşlayacağını öngörebildiğini ve önceden öğretici bahisler yapabildiğini ileri sürüyor
  • Basit veri üzerinde karmaşık algoritmaların büyük performans artışları sağlayabileceği ve hatta işleri basitleştirebileceği yönünde karşı argüman
  • Yazı, bazı okurların tasarım ve karmaşıklığa yaklaşımı üzerinde kalıcı bir etki bırakıyor
    1. kuralın yorumu üzerine tartışma; "akıllı nesneler kullanan aptal kod yaz" ifadesi konusunda bazı görüş ayrılıkları