MVC biçimine bir sınıf sisteminin tür bir hareket sistemi

2 Cevap php

Ben artık burada çalışan başka bir programcı tarafından geliştirilen oldukça büyük bir sistem üzerinde çalışıyorum.

Ve ben onu korumak ve nerede yaşadığını bilir manik seri katil olduğum için.

Ama bir kenara eğlenceli şeyler, sistem tür bir sınıf sistemi olarak geliştirildi ve tür değil ve ben kurulum zaten geliştirici sürümüne sahip ve oldukça hızlı bir şekilde yeni sürümlerini dağıtabilir edilir.

  1. Eğer yeni bir model için kısmi bir hareket ile ilgili herhangi bir ipucu var mı (ben tam bir geçiş yapamaz, sadece zaman alamadım)
  2. I (bir kesmek gibi bakmadan) sistemine bırakabilirsiniz ancak mevcut sınıf adları (kullanıcı, veri giriş vb) ile çatışma değil, herhangi bir sınıf isimlerini tavsiye edersiniz

Teşekkürler.

2 Cevap

İpucu # 0) mevcut kod gerçekten gerçekten gerçekten kötü mü, yoksa sadece kişisel tercihlerinize uygun değil mi? O eski ise, bu listeyi okumaya devam. Bu ikincisi ise, birkaç derin nefes alın, ve bunu yeniden yapmak gerektiğine karar önce şeyleri tanımak için en az bir ya da iki ay harcamak.

Eğer kodlama konum zaman doğru olmayan bir şey görürseniz İpucu # 1), bunu düzeltmek. Bu uzun sürer, ancak sistemin daha 'sabit' alır gibi sonunda size verimlilik artışı verecektir. Eğer gerçekten bunu düzeltmek için zamanımız yoksa, kendinize bir iyilik yapın ve bu gibi bir yorum eklemek: Eğer zamanınız varsa zaman x Daha sonra, basitçe kodunuzu aramak bu yüzden Rejig şey: / / TODO "TODO:" için Yapmanız gereken şeyler bir listesini almak. Siz de onlara "TODO-High", "TODO-Orta", "TODO-Low" gibi düzeyleri verebilir. Eğer editör / IDE olarak Eclipse Eclipse veya Zend Studio kullanıyorsanız, otomatik olarak bulmak için ayarlayabilirsiniz & yapabilirsiniz Tercihler-> Görevler sizin için bayrak bu.

İpucu # 2) MVC (sonunda) geçiş için umut varsa yapmak önemli bir şey mantığı HTML ayırmaktır. Bu şablonları kullanarak anlamına gelir. Bu görev uzun zaman alabilir, ama bu kez bitti, sizin geçiş kalanı çok daha kolay olacaktır.

Tip #3) Try to establish conventions. Example: Controller & View names must correspond to the URL, and live in directories corresponding to the URL. URL To Edit Place 1234: /places/edit/1234 Controller File: /htdocs/sitename/controllers/placesController.php Template File: /htdocs/sitename/views/places/edit.tpl

Zend, CakePHP, CodeIgniter / Kohana, Symfony: İpucu # 4) büyük çerçeveler için öğreticiler 'ile başlarken' okuyun. Biri sizin için başka daha iyi göründüğünü görmek. Hoşuna neden kendinize sorun. Sizin için çalışacak, ya da kendi çerçevesi (şüpheli) rulo gerekiyor. Eğer mümkünse, mevcut bir çerçeve kullanın. Zaten bug-test yüzlerce veya binlerce kişi tarafından olmuştur ve size tasarruf edeceğiz zamanı! Ben Zend Framework kendimi seviyorum, ve bunu almak ya da bir defada tek parça bırakın, çünkü bu, senin gibi "geçiş projeleri" için özellikle iyi. Yani, SADECE zerdüştlerin Görünüm nesne kullanmak, veya SADECE bu DBTable obje kullanmayı tercih olabilir. İstediğiniz kadar bunun kadar dışarı bırakmak için ücretsizdir. Bu, yavaş yavaş kendi hızda bir Zend-Dünyası'na geçiş anlamına gelir. EZ-Bileşenleri aynı şekilde çalışır.

Tip #5) Wrap classes that you use by extending them. For example, I use Zend_Acl, but actually use my own Acl class which extends Zend_Acl. This has two key implications: a) I can swap Zend_Acl for something else without changing my code, because it all refers to plain old 'Acl' b) I can modify how Zend_Acl works to suit my specific needs, because I can override whatever methods I like in my 'Acl' class.

İpucu # 6) buy-in yönetimi almak için deneyin. Bu üstlenmeden aslında tutarlılık artacak, çünkü onlara para kazandıracak & olacak onlara açıklayın kusurların sayısını düşürür yardımcı olur ve onları daha kolay ve bulmak için yapar kodu, anlaşılabilirliği düzeltmek.

Martin Fowler: İpucu # 7), "Mevcut Kanunu'nun Tasarım Geliştirilmesi Refactoring" gibi, konuyla ilgili kitaplar okumaya çalışın

zend has nice naming convention: http://framework.zend.com/manual/en/coding-standard.naming-conventions.html

Onlar hepsi sınıflara Zend_ önek eklenmiş ve onlar üçüncü parti sınıfları ile çatışmalar kaçının nasıl.

Bence her büyük proje, en azından çekirdek sınıfları için, benzer adlandırma kuralı uygulamak gerekir.