Olay tabanlı bir bileşen kullanırken, bakım aşamasında genellikle biraz ağrı hissediyorum.
Yürütülen kodun tamamı bölündüğünden, çalışma zamanında dahil edilecek tüm kod parçasının ne olacağını anlamak oldukça zor olabilir.
Bu, birisi yeni olay işleyicileri eklediğinde ince ve hata ayıklaması zor sorunlara yol açabilir.
Yorumlardan düzenleme: Yerleşik bazı iyi uygulamalarda bile, uygulama çapında bir etkinlik veri yolu ve uygulamanın diğer bölümüne iş delege eden işleyicilere sahip olmak gibi, kodun okunması zorlaştığı bir an var çünkü birçok farklı yerden kayıtlı işleyiciler (özellikle bir otobüs olduğunda doğrudur).
Daha sonra sıra diyagramı karmaşık görünmeye başlar, ne olduğunu anlamak için zaman harcaması artar ve hata ayıklama oturumu dağınık hale gelir (işleyicilerde yinelenirken işleyiciler yöneticisinde kesme noktası, özellikle asenkron işleyici ve üstünde bazı filtreleme ile).
//////////////
Örnek
Sunucudaki bazı verileri alan bir hizmetim var. İstemcide bu hizmeti geri arama kullanarak çağıran temel bir bileşene sahibiz. Bileşenin kullanıcılarına uzantı noktası sağlamak ve farklı bileşenler arasında eşleşmeyi önlemek için, bazı olayları tetikliyoruz: biri sorgu gönderilmeden önce, biri yanıt geri geldiğinde diğeri de hata durumunda. Bileşenin varsayılan davranışını sağlayan, önceden kaydedilmiş temel bir işleyici grubumuz var.
Artık bileşenin kullanıcıları (ve biz de bileşenin kullanıcısıyız), davranış üzerinde bazı değişiklikler yapmak için bazı işleyiciler ekleyebilir (sorguyu, günlükleri, veri analizini, veri filtrelemeyi, veri masajını, UI fantezi animasyonunu, zincirleme çoklu sıralı sorguları değiştirebilir) , her neyse). Bu nedenle, bazı işleyiciler diğerlerinden önce / sonra yürütülmelidir ve bunlar uygulamadaki birçok farklı giriş noktasından kaydedilir.
Bir süre sonra, bir düzine veya daha fazla işleyicinin kayıtlı olması ve bununla çalışılması sıkıcı ve tehlikeli olabilir.
Bu tasarım ortaya çıktı çünkü miras kullanmak tam bir karmaşa olmaya başlamıştı. Etkinlik sistemi, kompozitlerinizin ne olacağını henüz bilmediğiniz bir tür kompozisyonda kullanılır.
Örnek sonu
//////////////
Diğer insanların bu tür kodlarla nasıl başa çıktıklarını merak ediyorum. Hem yazarken hem de okurken.
Bu kodu çok fazla acı çekmeden yazmanıza ve korumanıza izin veren herhangi bir yönteminiz veya aracınız var mı?