Yerimden bizim temel ürün, birkaç 'modüller' ile bir web uygulaması üzerinde büyük refactor planlıyoruz. Modülleri gerçekten modülleri değil, her şey monolitik: Ben o ana kaygılarından biri çünkü aktardı. Uygulama smarty çiftleşmiş ve MySQL veritabanı erişim için Armut kullanarak PHP ile yazılmış. Bu uygulamaya ay alacağını değil eğer güzel olurdu rağmen biz gerçekten, veritabanı bağımsızlığı ile ilgili değiliz.
Bizim ana kaygıları geliştirme zamanı / maliyet sonra, çünkü ilgisiz yerlerde ve (her modül temelde önceki birinden kopyala / yapıştır olduğu en yaygın işlevselliği almak için güvenmek bir ses ortak mimariye sahip değil haşhaş hataların katlanarak artıyor vardır ) uyum.
Ben esas ASP.NET MVC web MVC ilkesi ile biraz tecrübe, var. Ben sunduğu temiz ayırma ve test edilebilir gibi. Bir yerel makinede bu çalışırken Ancak, uygulama sadece olması gerektiği çok daha yavaştır.
Alright, enough introduction, off to the questions: - Should I rely on caching modules? Does this remove most of the overhead using a good architecture provide? Something like APC.
- Uygulama ağırlıklı olarak okunur. Yazma (bir kayıt tek bir alanını değiştirmek) çoğunlukla tek değerlerdir. Bu iyi olan PHP için herhangi OR / M?
- Ayrıca esnek bir MVC framework arıyor. Ben Zend, CakePHP, belki Symfony biliyor musun?
Zor kısmı tam bir rewrite yapmak mümkün olma lüksü yok olmasıdır. Biz aşamalı bir anda çok dağınık kod tabanını geliştirmek gerekecek. Bu yeni kod yazma, ya da hata tespit ederken yapılmalıdır. Ben gerçekten, gerçekten yapabilmek istiyorum bir şey (bu bazen olur) daha sonra tekrar haşhaş önlemek için, bu düzeltmeden önce yeni bir hata için bir regresyon test yazmak değildir.
Şu anda düşünüyorum yığını içerir:
- Seçim MVC çerçevesi
- (Log4php?) Açılıyor
- Seçtiğiniz bir OR / M (dinamik olmak zorunda değildir, kod üretimi çok ince)
- Seçim IoC konteyner
- Biz gerekirse belki soyutlanmış Smarty Şablon, böylece biz onu dışarı geçiş yapabilirsiniz.
- Seçtiğiniz opcode önbellek (şimdi birini kullanıyorsanız, sistem yöneticisinin sormak zorunda, hangisi unuttum)
Beni endişelendiren asıl nokta PHP temiz kod oluşturma performans etkileri olduğunu. O (farklı dosyalarda zorunlu ayrılık) ile aksi hat kodu için soyutlamalar oluşturmak NET / Java web yığını gibi bir şey aksine bir çözümlü dil bulunuyor görünce başka bir seviyede yeni sorunlar yaratabilir.
Not: retag daha uygun etiketleri ile geldi, ben güncel olanları emin değilim.