"Monolitik"

0 Cevap php

Ben PHP için yeni kulüpler ve ben çerçeveler karşı bir şey var nb (bir çerçeve kullanmadan ilk kez bir site oluşturmak için çalışıyorum, ben sadece bunun üstüne bir çerçeve öğrenme önce sıfırdan kod öğrenmek gerektiğini düşünüyorum. Sıralama) JQuery öğrenme önce Javascript öğrenme gibi.

Ben kavramı OOP gibi, bu yüzden orada başladı. Daha sonra sınıf şeyleri işlemek için ortak yöntemlerini içeren bir jenerik Sayfa sınıfının bir alt sınıfı olan o kolları sınıfı içine (ayıklanmış) komut girişi geçen, bütün komut sayfa türü gerekli olduğunu belirlemek bir catch sahip düşünüyorum HTTP kodları gönderme gibi ve aslında sayfayı görüntülemek için bir "sanal" ekran yöntemi ile.

Benim sorunum o kadar çok sayfa sınıfın kendi içinde oluyor olması için bir kod koku gibi görünüyor olmasıdır. Açıkçası, vb girişi sanitasyon, veritabanları konuşuyor gibi şeyler hepsi ayrı sınıflara olurdu, ama onlar görüntülenen sayfanın içeriğini belirlemek için gerekli her şeyi içeren büyük olacak gibi tek sayfa sınıflar görünüyor.

Ayrıca, I Page veya çocukların ya içinde olmayan özel yöntemler için herhangi bir ihtiyaç var inandırırım bir sorun biraz var. Ben bu nedeniyle PHP bir betik dili olarak benim düşünce bir yan etkisi olduğunu düşünüyorum. Bir senaryo bu yana, etkileşimli olmayan var ve komut dosyası (yani POST ve değişkenler GET) başladığında girdi verileri belirlenir. Bu sayfa yerine onu sağlayarak daha taking in veridir diğer nesneler dışında bir Sayfasında hiçbir dış etkileri ile, bir ortak yöntem gerek tabii, yapıcısı dışında olduğu görünüyor, ve üretmek Ben hissediyorum yöntemi, sadece yapıcısı içinde denilebilir.

Ben özel yöntemleri ünite test edilmesi gerekmez belirtmek görünüyor hangi this question koştu dışında bu, biraz savunulabilir bir pozisyon gibi hissediyorum. Benim örnekte, bu sadece birim kesinlikle bana yanlış gibi görünüyor tek bir "ekran" yöntemi aracılığıyla test olacaktır sayfa sınıf yol açacak.

Söyle bana: Benim tasarım gülünç koklamak mı? Nasıl aklı başında bir şey içine bu refactor?

0 Cevap