Kaç satır PHP kodu bir dosya için çok fazla?

8 Cevap php

Ben 2 MySQL veritabanı aramaları ve script kalanı yapan bir PHP dosyası oluşturma ediyorum file_exists ve diğer basit değişkenler gibi şeyler için ifadeleri. Ben şimdiye kadar bu dosyada kod yaklaşık 2000 hatları var.

Bir ifadesi doğruysa, ayrı bir dosya eklemek için iyi bir uygulama mı; ya da sadece eğer deyimi kendisini doğrudan kodunu yazın?

PHP ile uyulması gereken tek bir dosya için satır kod maksimum sayıda onların mı?

8 Cevap

Ben php dosyaların satır sayısı ile ilgili herhangi bir performans sorunu olmamalıdır söyleyebilirim, ihtiyacınız kadar büyük olabilir.

Now, for the patterns and best practices, I would say that you have to judge by yourself, I saw many well organized files of several thousand lines and a lot of actually small and difficult to read files. My advise would be:

  • Kaynak kodunun okunabilirliğini Yargıç, her zaman iyi organize.
  • Ağır veritabanı erişimi, yazma, değiştirme, html render, ajax ve böylece .. Bir şeyleri ayırmak veya nesne yönelimli yaklaşımı kullanmak isteyebilirsiniz: Dosya hem de yok eğer, bir ölçüde mantıklı bir ayrılık olması önemlidir.
  • Her zaman mantıksal ayırma ve kod arasındaki dengeyi arayın. Bu 10-line dosyaları bir sürü dağınık, ne de ekstra düzgün olmamalı

Tek bir dosyada kod 2000 satırlık bir görüş bilgisayar açıdan tam kötü değil ama çoğu durumda MVC design pattern, bu daha iyi kodunuzu düzenlemek için yardımcı olacak bir göz atın, belki önlenebilir.

Also, bear in mind that including (a lot of) files will slow down the execution of your code.

Hat sayısı performansının iyi bir göstergesi değildir. Kodunuzu, verimli bir şekilde organize mantıksal sınıflara veya bloklara bölünmüş ve tek modülleri içine ilgisiz kodu birleştirmek kalmamasıdır emin olun.

PHP gibi bir dil ile sorunlardan biri, bazı yaratıcı önbelleğe kısıtlama, her, her satırı, dosya simgelenebilinir gerekir dahil bir ayrıştırma ağacında ile sıkıştırılmış ve anlamlı talimatları içine hosting sayfası istendiğinde her zaman açık olmasıdır. . NET ve Java gibi Derleyen platformlar bu performans katil olmaz.

Ayrıca, kısa dosyaları tutmak için bir yol olarak MVC bahsedilen diğer posterleri bir yana: iyi kod organizasyon deneyim ve sağduyu bir fonksiyonudur ve herhangi belirli bir desen veya mimarlık bağlı hiçbir şekilde. MVC ilginç, ama bu soruna bir çözüm değildir.

Eğer satır sayısına odaklanmak gerekiyor? Hayır, şart değil. Sadece, kod organize emin verimli ve gereksiz yere ayrıntılı değil yapmak.

Bu gerçekten çok uzun, düzgün kodu belgelenmiş mümkün olduğunca modülerize ve herhangi bir verimsizlik kontrol gibi, fark etmez. Siz de 10.000 satır dosya olabilir. Ben genellikle bir uygulama her bölüm için yaklaşık 500-1000 bölmek rağmen.

Sen Clean Code by Bob Martin gibi bir kitap okumak isteyebilirsiniz. İşte bu kitaptan birkaç Nuggets:

  • A sınıfı bir sorumluluğa sahip olmalıdır
  • Bir fonksiyon bir şey yapmak ve de bunu yapmalıyım

PHP ile, Sınıf yaklaşımı kullanarak değilse; Eğer çoğaltma sorunlar çalıştırmak için gidiyoruz. Kendinize bir iyilik yapın ve konuyla ilgili bazı okuma yapmak; size uzanan ve bakım çok daha fazla zaman kazanacaksınız.

Eğer aşağıdaki hangi kodu stil bağlıdır rağmen 2k hatları, örneğin ... Benim için çok fazla ses Onlar iyi bir uygulama olsa çok linebreaks, birçok küçük işlevleri veya iyi api sözleşme yorumlar boyutunu artırabilir. Ayrıca iyi kod biçimlendirme satırları artırabilir.

PHP ile ilgili bilmek güzel olurdu: sadece tek bir sınıf ya da sadece büyük bir 2k hatları mi olmayan cepten PHP kodu ile içerir? O (gibi PHP kodu sık sık bulmak) şablon ifadeler ve programm mantığı ile karıştırılır?

Bölmek için Genellikle ben, bu satırları sayılmaz. Onlar sadece alışkanlıkları girdi. Kod kafa karıştırıcı alırsa ben tepki ve Refactor. Hala bir takım olarak biz son zamanlarda yazdığım bazı koduna baktım, bazı desenleri görebilirsiniz:

  • boyutu (yorum yapmadan) 20LOC daha büyük ve if / else maddelerinin kullanımı ise fonksiyon / metot ayıklamak
  • Başka bir sınıf için ayıklamak ise boyutu> 200-300LOC
  • Başka bir paket / klasöre ayıklamak ise eserler> 10

Hala kod tür ne var bağlıdır. Örneğin mantık yükler (if / else / switch / için) söz konusu ise, fonksiyonun başına LOC azalır. Ilgili herhangi bir mantık (basit aptal tek yol kod deyimleri) pek varsa limitleri artırmak. Sonunda en önemli kural şudur: Bir insan kodu anlamak istiyorum. O / o da okumak mümkün olacak.

Ben bütün anlamsal birlikte aittir, özellikle eğer bu kadar basit kod bölmek için herhangi bir yararlı bir yol bilmiyorum.

It is probably more interesting to think about whether you can eliminate some of the code by refactoring. For example, if you often use a particular combination of checks with slightly different variables, it might help to outsource the combination of checks into a function and call it wherever appropriate.
I remember seeing a project once that was well-written for the most part, but it had a problem of that kind. For example, the code for parsing its configuration file was duplicated like this:

if (file_exists("configfile")) {
  /* tons of code here */
} else if (file_exists("/etc/configfile")) {
  /* almost the same code again */
}

Bu uç bir örnek ama fikir olsun.