Web geliştirme OO tasarım desenleri PHP nasıl ilgilidir?

5 Cevap php

Singleton, Dekoratör, Özet, Fabrika, ve liste uzayıp gidiyor. Web için PHP uygulamaları geliştirmek OO tasarım desenleri ne derece ilgili? Bu performans için bir şey yapıyor mu? Ya da çevik geliştirme uygulamaları için yalın kodunu tutmak için mi? Bu tasarım desenleri uygulamak için büyük hamisi kim? Bu bir müşteri ya da geliştirici mi?

Ben birden fazla soru soruyorum farkındayım, ama hepsi aynı konuyla ilgili. Ben zamanında derlenmiş beri bir betik dili ile OO tasarım desenleri için bir zorunluluk olduğunu emin değilim. Tüm ne düşünüyorsunuz? Bu önemli mi?

5 Cevap

Tasarım desenleri belirli sorunları çözmek için oluşturulur. Bu sorunlar (desenleri de dile göre farklılık olsa) PHP veya başka bir dil kullanmak ister oluşabilir. Desen çoğu nesne yönelimli tasarım kökleri var, ama usul ayarlarına adapte edilebilir. Eğer desen adresleri bir sorununuz, PHP veya başka bir dil olsun olduğunda tasarım deseni kullanın. Nasıl ve ne zaman değil zaman geçerlidir ve biliyorum - bir "tasarım deseni" sırf bir tasarım deseni kullanmayın.

Tasarım desenleri ne çok, temiz, anlaşılır bir şekilde kendi amacı gerçekleştirmek için kod düzenlemek olduğunu söyledi olması. Orada sorunu çözmek için başka yollar vardır, ama tasarım deseni iyi tanınan, net ve anlaşılabilir bir yöntemdir. Eğer belirli bir desen tarafından ele bir sorunu çözmek için gerekirse, genellikle desen kullanarak (ya da desen adapte) yerine bir alternatif seçerek kapalı iyi olurdu.

Desenleri, uygun kullanarak, hem mevcut ve gelecekteki geliştiriciler böylece faydalıdır - ve müşteri - - temizleyici, daha iyi kod anlaşılan daha az zaman çarkı, daha sağlam, sürdürülebilir kod yeniden icat. Onlar uygun faydalar kimse olmadığı zaman kalıplarını kullanarak; potansiyel alakasız bir sorunu çözmek için bir model adapte etmeye çalışıyor ve büyük olasılıkla daha basit şeyler daha karmaşık hale getirecek hayal kırıklığı içinde bir egzersiz.

Web için PHP uygulamaları geliştirmek OO tasarım desenleri ne derece ilgili?

IMO onlar sürece kullandığınız model eldeki sorunu için geçerli olduğu gibi, önemsiz olmayan herhangi bir PHP uygulaması için çok uygundur.

Bu performans için bir şey yapıyor mu?

Ille, ve hem olumlu ve olumsuz yönleriyle olduğu alabilir. En popüler tasarım desenleri doğrudan herhangi bir olumlu performans yararı eklemek için gidiş değildir, ve daha fazla miras veya sınıf yapı empoze bazı bir negligible performans maliyeti (I ihmal vurgulamak) ekleyebilirsiniz. Ne zaman uygulanabilir, bilinen kalıpları kullanarak faydaları bu önemsiz maliyeti ağır basmaktadır.

Ben bir desen doğrudan (bellek kullanımı ile ilgili) "performans" artıracak nerede aklınıza gelebilecek bir örnek tekil desen uygun kullanımı olacaktır. Eğer gerçekten sadece herhangi bir zamanda nesnenin bir örneğini gerekiyorsa, o zaman bu örneği kullanarak bellek kullanımını en aza indirmek.

Ya da çevik geliştirme uygulamaları için yalın kodunu tutmak için mi?

Ben desen doğru kullanımı yerine, daha rahat kod tutar söyleyebilirim "yalın." Iyi bilinen kalıplarını kullanan kod okumak daha kolaydır çünkü bu, çevik dahil olmak üzere herhangi bir geliştirme döngüsü, kolaylaştıracaktır.

Bu tasarım desenleri uygulamak için büyük hamisi kim? Bu bir müşteri ya da geliştirici mi?

Öncelikle geliştirici (bu çoğul bir geliştirici (ler), özellikle burada bir takım aynı kod bakmak başa gelmiştir.) Ki iyi yazılmış kod müşteri üzerinde dolaylı bir etkisi var tabii ki daha az hata ve yazılım olacak desenler muhtemelen tekerleği yeniden icat daha az gerçekleştirme süresi var olacaktır kullanır.

Evet, ama platformu için doğru desen seçmek zorundasınız. Bu zamana kadar en önemli OO tasarım deseni büyük çerçeveler (CakePHP, CodeIgniter, vb) kullanma tüm MVC (Model-View-Controller), olduğunu.

Olmayan bir NYP yaklaşımı vs bir OOP kullanılarak var olmayan cepten bir bit daha hızlı olmak, performance hafif bir fark olabilir, ama fark pratikte önemsiz olacaktır.

Ben OO tasarım desenleri kod organizasyonu için yararlı olacağını düşünüyorum, ama tasarım konuları sizin kadar bırakılır. Ben kullanıcı daha fazla fayda sağlayacağını düşünüyorum. Kullanıcı, OOP veya non-OOP kullanmak ister aynı sonucu görebilirsiniz.

Prosedürel programlama nelerdir algoritmaları (quicksort gibi), tasarım desenleri yönelimli tasarım nesne vardır. Onlar bazı ortak sorunları slove yol kanıtlanmıştır.

Ana beneficator bir devolper - ama bir yan etki olarak bir müşteri büyük olasılıkla daha iyi bir son ürünü elde edecektir.

Alakalı ya da değil zaman, bazı uygulama gereksinimlerine bağlıdır ve seçilip gelmiş yaklaşım. Bu veciz gelebilir, ancak uygulama analiz ve mevcut kalıpları ile tasarım ihtiyaçlarını karşılaştırmak başladığınızda nasıl ve ne zaman bunları kullanmak bilecek.