У меня есть большая система, которую я закодировал, и я хочу сделать код (смею сказать) более простым и легким для чтения. К сожалению, до этого я не использовал функции много.
У меня есть много разных запросов MySQL, которые выполняются в моем коде, я чувствую, что если я сделаю различные дисплеи в функции и сохраню их в отдельном файле, это сделает код намного проще в обслуживании (на самом деле, я знаю, что это будет).
Единственное, что мне интересно, это то, что это обычная практика, и если вы думаете, что в конечном итоге это повредит мне в плане производительности и других факторов. Вот пример того, что я сейчас использую:
$result = mysql_query("SELECT * FROM table");
while($row = mysql_fetch_array($result)){
/* Display code will go here */
}
Как вы можете себе представить, это может затянуться. Я думаю о создании функции, которая примет переменную результата, и выполнит это, а затем вернет результаты следующим образом:
$result = mysql_query("SELECT * FROM table");
dsiplayinfo($result);
Как вы думаете, это правильный путь?
[изменить]
Функции будут очень разными, потому что каждый из них должен отображать данные по-разному. Существуют разные поля базы данных, которые должны отображаться в каждом сценарии. Считаете ли вы, что этот подход по-прежнему остается хорошим даже с этим фактором? AKA Модульная конструкция не полностью выполнена, но простота обслуживания.
Использование большего количества функций может быть полезным, и это может быть вредно. Теоретически это больше влияет на модульный дизайн, то есть вы можете использовать функцию много раз в нескольких приложениях, не переписывая ее.
Я честно призываю вас больше к более крупным соглашениям, таким как MVC Frameworks. Kohana - отличный. Он использует такие вещи, как помощники для дополнительной внешней функциональности, модели для запроса базы данных и контроллеры для выполнения всей вашей логики - и конечный результат передается в представление, которое будет отформатировано с помощью HTML/CSS и приправлено Javascript.
Одна вещь, которую вы хотите иметь в виду, - это принцип СУХОЙ: не повторяйте себя.
Если вы обнаруживаете, что есть блок кода, который вы используете несколько раз, или очень похожи, что можно сделать одинаковым, то это идеальный кандидат для перехода в функцию.
Да, также рассмотрите возможность поиска в ORM или агностическом интерфейсе базы данных. Это также может помочь уменьшить дублирование (и, конечно же, облегчить перенос на новую БД, если это когда-нибудь появится).
В принципе, в любое время, когда вы видите похожий код (будь он по структуре или по функциональности), у вас есть возможность включить его в функции, которые могут использоваться совместно. Хорошее эмпирическое правило: "Не повторяйте себя" (DRY)