Küçük uzmanlaşmış php scriptler karşı monolitik PHP kodlama avantajları / dezavantajları nelerdir?

4 Cevap php

Ben tarihsel kodlama PHP monolitik bir yaklaşım kullandık.

Yani, ben bir ortalama 70k-250k büyüklüğü ve kullanımı ile, bir index.php yazmak

mod_rewrite

geri kalanını kapatmak için

REQUEST_URI

neler olup bittiğini kontrol etmek index.php geçti parametrelere.

Alternatif birçok küçük php komut, belirli bir amaç için her uzman yazmak olacaktır. Ben daha aktif ajax bazı betikleri bu yarar olabileceğini düşünüyorum.

Bu düşünce sürecinde beni tuttu Bir şey nasıl yapılır kullanarak bilmiyorum, özellikle koşullu içeren opcode önbellek performansını etkileyecek olduğunu.

Ben genellikle nedeniyle bu konuda benim paranoya tamamen mümkünse kaçınılması içerir, ama bu kodu çoğaltma veya monolitik kalıyorum ya sonuçlanır.

Zaten mod_rewrite kullanarak kulüpler gibi, iki yöntem arasında dönüştürme basit olmalıdır.

Ben yorumlarınızı bekliyoruz.

EDIT: benim hedef uygulamalar biri şu anda (bazı iyi donanım var) saniyede 80-100 sayfa hit işler. Bunların çoğu ajax istekleri vardır. Her şey çalışıyor ve çabuk olduğunu, ama bunu eleştiri olmadan bir php programcısı olarak geliştirilen ve ihtiyaç var.

4 Cevap

Modüler kodu anlamak ve bakımı daha kolaydır. Büyük bir monolitik Codebase kartların bir ev gibi olabilir. Bu uygulamada gayet güzel çalışıyor, ancak alt öğelerinden herhangi değişen imkansız hale gelir. Eğer açık soyutlamalar kodunuzu bölmek, bu değişiklikleri yapmak çok daha kolay olabilir ve hiç geliştiricileri eklerseniz kendinize bir kabus tasarruf edeceğiz.

Dahil dosyaları kullanarak değil performans primleri kadar dosyaları dahil bakımı ve kullanan büyük bir uygulama hata ayıklama kolaylığı ile galip olan.

Tamir kaybıdır. Başka bir uygulamadan kopyalama ve yapıştırma kod bakım cehennem.

(Ben tamamen katılıyorum hangi ile) diğer yorumlar yanı sıra, bir başka bakış: - tüm dosya yorumlanır yüklenecek olan olursa olsun, ister bir monolitik yaklaşım, aşırı tahrik eğer, değerli RAM maliyeti deneyim yaptık gerekli ya da değil, ve tek başına olduğu her şeyi, 8 ila 16 kapalı bir sürü yiyor, ya da 32 MB başına örnek olsun.

Kodu test ve bakımı hakkında unutmayın. Eğer sadece tek bir dosya olan bir projeye birim testleri yazmak mümkün eğer ben görüntüyü yapamam. Daha İleri daha çok sadece yaptığınız değişikliklerle kırılmış olabilir hangi işlevsellik tahmin harded oluyor. Bazı modülünü değiştirirseniz modüler mimari durumunda o zaman sadece buna bağlıdır Bu modülü ve modülleri kırabilir. Hatta küçük değişiklikler (bir kerede tüm sayfaları kıracak teklifi kapatmak için unutmak olabilir) tek bir dosya projeler için ölümcül olabilir. Ben size yaptığınız hatta küçük değişikliklerden sonra tüm işlevselliğini tekrar test gerektiğini düşünüyorum. Eğer birim testleri kullanmak mümkün değil ecpecialy Ve bu test için bir ağrı olabilir.

Ayrıca ben tek bir dosyada depolanan tüm kod, o zaman daha kötü bir kodu olacak eğer. Böyle kod global değişkenler kullanmak eğiliminde olacaktır. Bu durumda başka bir projede böyle kod yeniden zor. Neden bunu kopyalamak, ama siz tüm hataları kopyalamak şey kopyaladığınız zaman hatırlıyorum. Sadece kütüphaneleri (unit-testler sayesinde söylemek) iyi test set kullanabilirsiniz projeyi imagane. Yeni bug sonra göründüğünde sadece tek bir yerde sabit bulunuyor.

Bir şey daha, tek bir dosya kullanarak bir ekip halinde çalışırken ağrı olacaktır. Sadece 2 geliştiriciler olsa bile onlar değişiklikleri birleştirmek için fazla zaman kaybetmeyin.

Herhangi bir şekilde, proje hiç büyük değil eğer tek dosya appoch kullanabilirsiniz.