Я создаю файл PHP, который делает 2 mysql вызова базы данных, и остальная часть сценария то, если операторы для вещей как file_exists и другие простые переменные. У меня есть приблизительно 2 000 строк кода в этом файле до сих пор.
Это лучшая практика для включения отдельного файла, если оператор верен; или просто введите код непосредственно в если сам оператор?
Их максимальное количество строк кода для единственного файла, который должен придерживаться к с PHP?
Я бы сказал, что не должно быть проблем с производительностью, связанных с количеством строк в ваших php-файлах, оно может быть столько, сколько вам нужно.
Теперь, что касается шаблонов и передового опыта, я бы сказал, что вы должны судить сами, я видел много хорошо организованных файлов, состоящих из нескольких тысяч строк, и много действительно маленьких и трудночитаемых файлов. Мой совет:
2k строки звучат слишком много для меня... Хотя это зависит от того, какому стилю кода вы следуете, например, много перерывов в работе, много маленьких функций или хорошие комментарии к api-контракту могут увеличить размер, хотя это хорошая практика. Также хорошее форматирование кода может увеличить количество строк.
Что касается PHP, было бы неплохо узнать об этом: Это 2k строк с одним классом или одна большая включённая строка с не-OOP PHP кодом? Смешано ли это с шаблонными выражениями и логикой программы (как я часто встречаю в PHP-коде)?
Обычно я не считаю эти строки, когда разбивать. Они просто вошли в привычки. Если код путается, я реагирую и рефактор. До сих пор просматривая некоторый код, который мы как команда написали недавно, я вижу некоторые паттерны:
Still it depends what the kind the code I have. Например, если задействована нагрузка логики (if/else/switch/for), то LOC на функцию уменьшается. Если логика почти не задействована (простые глупые однопутевые операторы кода), то границы увеличиваются. В конце концов, самое важное правило: Понял бы человек код. Сможет ли он хорошо его прочитать
.Я не знаю никакого полезного способа разделить такой простой код, особенно если он семантически принадлежит друг другу.
Наверное, интереснее подумать о том, можно ли исключить часть кода с помощью рефакторинга. Например, если вы часто используете определенную комбинацию проверок с немного отличающимися переменными, это может помочь аутсорсинговать комбинацию проверок в функцию и вызывать ее при необходимости
.
Я помню, как однажды видел проект, который по большей части был хорошо написан, но у него была проблема такого рода. Например, код для разбора его конфигурационного файла был продублирован следующим образом:
if (file_exists("configfile")) {
/* tons of code here */
} else if (file_exists("/etc/configfile")) {
/* almost the same code again */
}
Это крайний пример, но вы поняли идею.
.2000 строк кода в одном файле не так уж и плохо с компьютерной точки зрения, но в большинстве ситуаций этого, вероятно, можно избежать, взгляните на шаблон проектирования MVC , это поможет вам лучше организовать ваш код.
Также имейте в виду, что включение (много) файлов замедлит выполнение вашего кода.
Количество строк не является хорошим индикатором производительности. Убедитесь, что ваш код организован эффективно, разбит на логические классы или блоки, и что вы не объединяете несвязанный код в отдельные модули.
Одна из проблем с таким языком, как PHP, заключается в том, что, за исключением некоторого творческого кэширования, каждая строка каждого включенного файла должна быть лексеонизирована, пропущена через дерево разбора и превращена в осмысленные инструкции каждый раз, когда запрашивается хостинговая страница. Компилируемые платформы, такие как .NET и Java, не страдают от этого киллера производительности.
Кроме того, поскольку в одном из других плакатов MVC упоминается как способ сократить количество файлов: хорошая организация кода - это функция опыта и здравого смысла, и она никоим образом не связана с каким-либо конкретным шаблоном или архитектурой. MVC интересен, но не является решением этой проблемы
.Нужно ли сосредоточиться на количестве строк? Нет, не обязательно. Просто убедитесь, что ваш код организован, эффективен и не лишне многословен.
Это действительно не имеет значения, при условии, что вы правильно задокументировали свой код, максимально модулизовали его и проверили на наличие неэффективности. Возможно, у вас есть 10,000 строчных файлов. Хотя я обычно делюсь на 500-1000 для каждого раздела приложения.
Возможно, вы захотите прочитать книгу типа Чистый код Боба Мартина . Вот несколько самородков из этой книги:
С PHP, если вы не используете подход "Класс", вы столкнетесь с проблемами дублирования. Сделайте себе одолжение и почитайте что-нибудь на эту тему; это сэкономит вам намного больше времени в расширении и сопровождении.