Programcılar neden dolaylı koddan kaçınmalı?

Bu makale, dolaylı kodla bozulan okunabilirliği tartışmaktadır.

Yazar | Matthew Rocklin

Çevirmen | Crescent Moon, sorumlu editör | Guo Rui

Üretildi | CSDN ( İD: CSDNhaberler)

Aşağıdaki çeviridir:

Sık sık bazı kod yazarlarının ayrıntıları soyutlama için harici bir işleve koyduğunu görüyorum. Lütfen aşağıdaki örneğe bakın.

Dolaylı kodu eklemeden önce:

# main.py eğer x.startswith ("foo"): do_something_with (x)

Dolaylı kodu ekledikten sonra:

# main.py is_foolike (x) ise: do_something_with (x) # utils.py def is_foolike (x): return x.startswith ("foo")

Bu yaklaşımın nedenleri şunları içerebilir:

  • Kod birçok kez tekrarlanırsa, bu soyutlama kodu daha kompakt hale getirebilir;

  • Kod birden çok kez tekrarlanırsa, bu mantığı merkezi olarak yönetmek için bir yer bulmalısınız, böylece gelecekte onu merkezi olarak değiştirebilirsiniz;

  • Bu soyutlama, düzyazıdaki dipnotlar gibi, işlevin ana noktalarıyla hiçbir ilgisi olmayan ayrıntıları gizler;

  • Bu soyutlama, bir işlem kümesini adlandırmak için satır içi belgeler olarak işlev adlarını kullanır;

  • Kod daha temiz ve daha soyut görünüyor.

Okul öğretmeninin bize öğrettiği buydu - bazı işlevleri bulun, bunları soyutlayın ve devam edin.

Dolaylı durumlardan kaçının

Ancak bu dolaylı kod ekleme davranışının da bir bedeli vardır. Başkaları bu kodu okuduğunda, birden çok dosyada tanımlanan birden çok işlev arasında geçiş yapmaları gerekir. Doğrusal olmayan bu okuma süreci okuyucu için daha fazla enerji tüketir.

Kod yazma sürecinde bu dolaylı kodun eklenmesinde sorun yoktur.Kodu yazan kişinin, kodu yazan kişinin zihninde oluşturulmuş soyut bir modeli vardır.Bu nedenle bu soyutlamayı koda yazmak mantıklı ve iyi hissettirir. Bununla birlikte, başkalarının bir kod parçasını hızlı bir şekilde kontrol etmesi ve anlaması gerektiğinde, büyük sorunlarla karşılaşırlar. Bu iki önemli durumda olur:

1. Kod gözden geçirme süresi boyunca. Başkalarının, ana projeyle birleştirilmeden önce kodun makul olup olmadığını kontrol etmesi gerektiğinde. Bu gözden geçirenlerin harcaması gereken zaman, kod yazmak için zamanın yaklaşık onda biridir.

2. Gelecekte hata ayıklama. Kodda herhangi bir sorun varsa, gelecekte tamamen yabancı olan geliştiricilerin bu koda bakması ve kodun içeriğini bulması gerekecektir. Bu kodu birkaç dakika içinde anlamalı ve ilgili içeriği belirlemelidirler. Kodun arkasındaki tüm düşünme sürecini anlamak için zamanları yoktur ve dolaylı kod, Çok Anlama sürecini yavaşlatın.

Orijinal geliştirme süreciyle karşılaştırıldığında, modern topluluk kodunda inceleme ve hata ayıklama genellikle bir darboğazdır. Bu nedenle, geliştiricileri genellikle soyutlamadan kaçınmaya ve kodun içine işlev tanımları yazmaya teşvik ediyorum.

Hala işlevi kullanmalıyız

Açık olması gereken şey, karmaşık mantığı birden çok işleve bölmek için birçok nedenimiz var, özellikle tekrarlanan kodla karşı karşıya kaldığımızda veya gelecekte bazı önemli politikalar değişebileceğinde. Bu nedenle bir denge bulmamız gerekiyor.

Umarım çoğu durumda kod yazarları, orijinal yazara ek olarak, kodu okuyan herkesin dolaylı kodun ek maliyetini hissedeceğini anlayacaktır.

orijinal: http : // matthewrocklin .com / blog / work / 2019/06/23 / kaçınma-indirection

Yazar: Matthew Rocklin, özellikle verimli ve ölçeklenebilir bilgi işlemle ilgili olarak çoklu kitaplık ekosistemlerini ve koordinasyon Python figürlerini koruyor.

Bu makale bir CSDN çevirisidir, lütfen yeniden basımın kaynağını belirtin.

SON

Japonya'nın devasa Osprey eğimli rotorlu uçak satın alımı nadirdir ve yalnızca Amerika Birleşik Devletleri'nde eğitilebilir.
önceki
Stephanie Shirley: 1960'larda Teknolojide Tek Kadın | Halk Tarihi
Sonraki
AMP araçlarının zorunlu uygulaması, geliştiriciler Google'ı "engellemek" istiyor
"Uyuşturucu Karşıtı 2" tema şarkısı "Brothers Don't Doubt" Andy Lau ilk nakarat
JavaScript'teki işlevsel programlama ile nesne yönelimli programlama arasındaki fark nedir?
Bu siyah teknoloji ürünü kulaklık kullanışlı ve modaya uygun ve müzik dinlerken oturmaktan korkmuyorsunuz.
5G dalgası geliyor! Çıkışta programcılar için fırsatlar nelerdir?
190622 Cai Xukun, Pekin Havaalanında göründü ve sevimli görünüyordu ve yıldız hareketi dönemini hayal etti.
Yerli üreticiler yılın ilk yarısında cep telefonu çemberinde parlıyor (2. bölüm)
"TFBOYS" "Paylaşım" 190622 İnce ve ince veya küçük eller, her Wang Junkai'nin sevdiği
Ekranı kaydırın! Bu Python öğrenme gönderisi, programcıların% 90'ı tarafından kullanılıyor
190622 Her Wang Junkai'nin sevdiği ince ve ince veya küçük etli eller
"Justin" "Paylaş" 190622 Lehua Seven NEXT Yıldönümü Değerlendirmesi Justin'in müzik rüyasının başlangıcını yeniden yaşayalım
Le Mans efsanesini olağanüstü hızla yazmak 2019 RICHARD MILLE 24 Saat Le Mans
To Top