Сколько строк кода PHP слишком многие для одного файла?

Я создаю файл PHP, который делает 2 mysql вызова базы данных, и остальная часть сценария то, если операторы для вещей как file_exists и другие простые переменные. У меня есть приблизительно 2 000 строк кода в этом файле до сих пор.

Это лучшая практика для включения отдельного файла, если оператор верен; или просто введите код непосредственно в если сам оператор?

Их максимальное количество строк кода для единственного файла, который должен придерживаться к с PHP?

8
задан Justin Johnson 28 December 2009 в 02:39
поделиться

8 ответов

Я бы сказал, что не должно быть проблем с производительностью, связанных с количеством строк в ваших php-файлах, оно может быть столько, сколько вам нужно.

Теперь, что касается шаблонов и передового опыта, я бы сказал, что вы должны судить сами, я видел много хорошо организованных файлов, состоящих из нескольких тысяч строк, и много действительно маленьких и трудночитаемых файлов. Мой совет:

  • Оцените читабельность исходного кода, всегда организуйте его хорошо.
  • Очень важно в какой-то степени иметь логическое разделение, если ваш файл делает и то, и другое: тяжелый доступ к базе данных, запись, модификация, html рендеринг, ajax и так далее... Вы можете захотеть разделить вещи или использовать объектно-ориентированный подход.
  • Всегда ищите баланс между логическим разделением и кодом. Он не должен быть ни грязным, ни лишним с большим количеством 10-строчных файлов
7
ответ дан 5 December 2019 в 12:09
поделиться

2k строки звучат слишком много для меня... Хотя это зависит от того, какому стилю кода вы следуете, например, много перерывов в работе, много маленьких функций или хорошие комментарии к api-контракту могут увеличить размер, хотя это хорошая практика. Также хорошее форматирование кода может увеличить количество строк.

Что касается PHP, было бы неплохо узнать об этом: Это 2k строк с одним классом или одна большая включённая строка с не-OOP PHP кодом? Смешано ли это с шаблонными выражениями и логикой программы (как я часто встречаю в PHP-коде)?

Обычно я не считаю эти строки, когда разбивать. Они просто вошли в привычки. Если код путается, я реагирую и рефактор. До сих пор просматривая некоторый код, который мы как команда написали недавно, я вижу некоторые паттерны:

  • extract function/method if size is more 20LOC (без комментариев) и использование if/else clause
  • extract to another class if size >200-300LOC
  • extract to another package/folder if artifacts >10

Still it depends what the kind the code I have. Например, если задействована нагрузка логики (if/else/switch/for), то LOC на функцию уменьшается. Если логика почти не задействована (простые глупые однопутевые операторы кода), то границы увеличиваются. В конце концов, самое важное правило: Понял бы человек код. Сможет ли он хорошо его прочитать

.
1
ответ дан 5 December 2019 в 12:09
поделиться

Я не знаю никакого полезного способа разделить такой простой код, особенно если он семантически принадлежит друг другу.

Наверное, интереснее подумать о том, можно ли исключить часть кода с помощью рефакторинга. Например, если вы часто используете определенную комбинацию проверок с немного отличающимися переменными, это может помочь аутсорсинговать комбинацию проверок в функцию и вызывать ее при необходимости
. Я помню, как однажды видел проект, который по большей части был хорошо написан, но у него была проблема такого рода. Например, код для разбора его конфигурационного файла был продублирован следующим образом:

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

Это крайний пример, но вы поняли идею.

.
0
ответ дан 5 December 2019 в 12:09
поделиться

2000 строк кода в одном файле не так уж и плохо с компьютерной точки зрения, но в большинстве ситуаций этого, вероятно, можно избежать, взгляните на шаблон проектирования MVC , это поможет вам лучше организовать ваш код.

Также имейте в виду, что включение (много) файлов замедлит выполнение вашего кода.

3
ответ дан 5 December 2019 в 12:09
поделиться

Количество строк не является хорошим индикатором производительности. Убедитесь, что ваш код организован эффективно, разбит на логические классы или блоки, и что вы не объединяете несвязанный код в отдельные модули.

Одна из проблем с таким языком, как PHP, заключается в том, что, за исключением некоторого творческого кэширования, каждая строка каждого включенного файла должна быть лексеонизирована, пропущена через дерево разбора и превращена в осмысленные инструкции каждый раз, когда запрашивается хостинговая страница. Компилируемые платформы, такие как .NET и Java, не страдают от этого киллера производительности.

Кроме того, поскольку в одном из других плакатов MVC упоминается как способ сократить количество файлов: хорошая организация кода - это функция опыта и здравого смысла, и она никоим образом не связана с каким-либо конкретным шаблоном или архитектурой. MVC интересен, но не является решением этой проблемы

.
2
ответ дан 5 December 2019 в 12:09
поделиться

Нужно ли сосредоточиться на количестве строк? Нет, не обязательно. Просто убедитесь, что ваш код организован, эффективен и не лишне многословен.

1
ответ дан 5 December 2019 в 12:09
поделиться

Это действительно не имеет значения, при условии, что вы правильно задокументировали свой код, максимально модулизовали его и проверили на наличие неэффективности. Возможно, у вас есть 10,000 строчных файлов. Хотя я обычно делюсь на 500-1000 для каждого раздела приложения.

0
ответ дан 5 December 2019 в 12:09
поделиться

Возможно, вы захотите прочитать книгу типа Чистый код Боба Мартина . Вот несколько самородков из этой книги:

  • Класс должен нести одну ответственность
  • Функция должна делать одну вещь и делать ее хорошо

С PHP, если вы не используете подход "Класс", вы столкнетесь с проблемами дублирования. Сделайте себе одолжение и почитайте что-нибудь на эту тему; это сэкономит вам намного больше времени в расширении и сопровождении.

0
ответ дан 5 December 2019 в 12:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: