Python kullanarak En İyi Uygulamalar, Tasarım modelleri ve SOLID ilkelerine örnekler veren herhangi bir kaynak arıyorum.
Python kullanarak En İyi Uygulamalar, Tasarım modelleri ve SOLID ilkelerine örnekler veren herhangi bir kaynak arıyorum.
Yanıtlar:
Bunlarda bazıları örtüşüyor
Python'da Orta ve İleri Yazılım Marangozluğu
Pythonista Gibi Kod: Deyimsel Python
Python Deyimleri ve Verimliliği
Google Geliştiriciler Günü ABD - Python Tasarım Desenleri
Başka bir kaynak, örneğin Python Tarifleridir . İyi bir sayı en iyi uygulamaları izlemez, ancak orada yararlı olan bazı desenler bulabilirsiniz
Bruce Eckel'in " Python'da Düşünme " Tasarım Desenlerine büyük ölçüde eğildi
Buradan ve buradan başlayabilirsiniz .
Tasarım desenlerine daha derinlemesine bakmak için Tasarım Desenleri: Yeniden Kullanılabilir Nesneye Dayalı Yazılım Öğeleri'ne bakmalısınız . Kaynak kodu Python'da değil, ancak kalıpları anlamanız gerekmiyor.
Var olan veya olmayan nesneler üzerindeki öznitelikleri çağırırken kodunuzu basitleştirmek için kullanabileceğiniz bir şey Null Nesne Tasarım Deseni ( Python Yemek Kitabı'nda tanıtıldığım ) kullanmaktır.
Kabaca, Null nesneleriyle amaç, Python veya Null (veya Null işaretçileri) gibi diğer dillerde sık kullanılan ilkel veri türü için 'akıllı' bir değişiklik sağlamaktır. Bunlar, başka türlü benzer unsurlardan oluşan bir grubun bir üyesinin hangi nedenle olursa olsun özel olduğu önemli durum da dahil olmak üzere birçok amaç için kullanılır. Çoğu zaman bu, sıradan elemanlar ile ilkel Null değeri birbirinden ayırt etmek için koşullu ifadelerle sonuçlanır.
Bu nesne sadece öznitelik hatası eksikliğini yiyor ve varlığını kontrol etmekten kaçınabilirsiniz.
Bundan başka bir şey değil
class Null(object):
def __init__(self, *args, **kwargs):
"Ignore parameters."
return None
def __call__(self, *args, **kwargs):
"Ignore method calls."
return self
def __getattr__(self, mname):
"Ignore attribute requests."
return self
def __setattr__(self, name, value):
"Ignore attribute setting."
return self
def __delattr__(self, name):
"Ignore deleting attributes."
return self
def __repr__(self):
"Return a string representation."
return "<Null>"
def __str__(self):
"Convert to a string and return it."
return "Null"
Bununla, yaparsanız Null("any", "params", "you", "want").attribute_that_doesnt_exists()
patlamaz, ancak sessizce eşdeğer olur pass
.
Normalde şöyle bir şey yapardın
if obj.attr:
obj.attr()
Bununla sadece şunları yaparsınız:
obj.attr()
ve unut gitsin. Null
Nesnenin yoğun kullanımının, kodunuzdaki hataları gizleyebileceğini unutmayın.
Tasarım nesnelerini dinamik nesne yönelimli dillerde (yani Python) tartışan bu makaleyi (.pdf dosyasını seçin) de okumak isteyebilirsiniz . Sayfayı alıntılamak için:
Bu makalede, "Dörtlü Çete" veya "GOF" kitabındaki desenlerin, sık sık çağrıldığı gibi, dinamik, üst düzey, nesne yönelimli bir programlama dili kullanılarak benzer sorunlar ele alındığında nasıl ortaya çıktığı araştırılmaktadır. Bazı desenler kaybolur - yani doğrudan dil özellikleri tarafından desteklenirler, bazı desenler daha basittir veya farklı bir odağa sahiptir ve bazıları esasen değişmez.