PHP: Application Framework Question (вопрос для обсуждения)
Я разработчик по хобби, а это значит, что я делаю это на стороне, и я делаю это не слишком часто. Я читал и читал о фреймворках веб-приложений и заглядывал между CakePHP и CodeIgniter. В конце концов я решил погрузиться в CakePHP, так как мне показалось, что это больше похоже на мой переулок.
Проблема в том, что чем больше я погружаюсь в это, тем больше я не понимаю, почему я использую фреймворк. Итак, хардкорные разработчики обсуждают со мной или помогают мне понять следующее:
Я понимаю, что в долгосрочной перспективе платформы приложений помогают быстрее развертывать код или писать код быстрее. Понятно, однако, является ли ограничение этих структур тем фактом, что вы должны кодировать стандарты платформы? Чем больше я пытаюсь использовать CakePHP, тем более что мне приходится изучать базовый язык / стандарты поверх реального языка программирования. Например, мне нужно изучить стандарты и способы CakePHP для реализации "более быстрого" развертывания и интерпретации, но я также пытаюсь кодировать в стандарты PHP (которые несколько встроены в CakePHP), но в целом это то, что я вижу Для меня это немного накладные расходы, но если вы знаете CakePHP или предпочитаемый вами фреймворк, это ничего не значит, потому что вы, вероятно, знаете, как кодировать свой фреймворк?
Другой вопрос или обсуждение, поскольку сторонний разработчик и человек, которому нравится подход MVC, но который на самом деле не знает, как реализовать его с помощью фреймворка, лучше всего подойдет для кодирования таким же образом, как я (через функцию файл), делая свои собственные функции и т. д., но также использовать методы MVC для использования? Под этим я подразумеваю, вместо того чтобы изучать каркас приложения, я должен отделить стили контента от функций и т. Д., Как работает MVC, но использовать свои собственные функции или я должен изучить каркас приложения.
Примечание: я мог неправильно описать структуру приложения, хотя я не уверен. Кроме того, это должно было быть обсуждение, а не напыщенная речь; Я не знаю, чего не знаю, так что на самом деле я обращаюсь за разъяснениями.
Спасибо!
2 ответа
Я думаю, что здесь есть что вспомнить: чтобы быть продуктивным в чем-то с помощью инструмента, вам нужно сначала научиться пользоваться этим инструментом. Вы знаете, как ходить, и вы можете добраться из пункта А в пункт Б через час. Если вы хотите добраться туда быстрее, вам нужно научиться водить, а те дни, проведенные за обучением вождению, можно было бы использовать для прогулок. Но как только вы научитесь управлять автомобилем, вы станете намного эффективнее.
Это как то с рамками - машина это рамки.
С фреймворками в целом они используются для облегчения и ускорения процесса разработки. Для применения принципа СУХОЙ, чтобы дать вам надежные базовые инструменты (обработка текста, управление вводом, проверка формы, обработка электронной почты и сеансов и т. Д.), Чтобы вы могли сразу же поработать с ними, чтобы помешать вам заново изобрести колесо. Я отказался от использования фреймворка, но как только я понял его, это то, что я не могу отпустить, по моему опыту.
Я не думаю, что это ограничение (поскольку они расширяемые), я думаю, что это скорее "персональный стандарт" - способ, которым эти приложения предназначались для написания, как вы это делали, когда создавали свои собственные библиотеки. Как только вы знаете и любите свои рамки, эти накладные расходы волшебным образом исчезают.
Что касается MVC, я бы не стал использовать слово "должен", но это определенно хороший выбор, независимо от того, что вы делаете - если вы используете фреймворк, то отлично, а если нет, вы отделяете логику бизнеса от содержание, отлично! Это все о том, что вы чувствуете себя комфортно. То же самое происходит с Grid Frameworks, CSS Reset, использованием библиотеки и тому подобным - это вопрос выбора. Что мое? Используйте эти инструменты, потому что они для вас, чтобы использовать и создавать надежные приложения и веб-сайты. Они были проверены снова и снова, они работают, и они помогают вам не повторять себя и не изобретать велосипед (то, что было сделано тысячу раз). MVC также отлично подходит для масштабируемости и обслуживания.
Моя рекомендация - изучить основы. Есть причина, по которой вы выбрали Cake вместо Codeigniter (не знаю почему, хотя - здесь пользователь Codeigniter!), Поэтому придерживайтесь его и поработайте с ним некоторое время. Они все мощные, но весь потенциал не совсем виден с самого начала.
Кроме того, еще одна вещь: поскольку все приложения имеют пунктуальное использование, вы всегда будете создавать свои библиотеки, несмотря ни на что, и эти среды действительно упрощают их создание, использование и обслуживание. Таким образом, вы можете смешивать их все со всей мощью фреймворка.
Продолжайте пытаться - вы не пожалеете об этом!
Мои два цента, хотя.
Принципы MVC обычно применяются с использованием объектно-ориентированного программирования, но для вас вполне возможно использовать концепции с использованием процедурного программирования. Так работает основная часть Drupal.
Я использовал несколько разных фреймворков, а также написал свой собственный. Я предпочитаю использовать свой собственный для полного контроля над дизайном и реализацией. Я также написал это таким образом, чтобы я мог использовать основной код в многочисленных проектах. Мне также нужно для текущего проекта по вопросам авторского права.
Я группа разработчиков, где я работаю, использую CodeIgniter и клянусь купить его, я использовал его только для того, чтобы дурачиться и никогда не создавал сайты с ним. Но я предпочитаю это CakePHP. Когда я научился использовать CakePHP, я много прошел для основного кода, чтобы выяснить, как делать определенные вещи, и решил, что я не хочу, чтобы все эти накладные расходы были даже для самых простых запросов.
Делать это самому - большой опыт обучения. Многие люди думают, что он должен оставаться обучающим опытом и не использоваться для реального мира, но я не согласен. Общие рамки отлично подходят для быстрого создания прототипов, но я лично предпочитаю больше контроля над системой. Есть и другие MVC-фреймворки, возможно, взгляните на них.
Я не всегда согласен с обсуждениями, которые ведут некоторые разработчики фреймворков, но вы должны хотя бы узнать, почему они так поступили, так как это вас научит.
Нет ничего плохого в том, чтобы делать это с помощью функций, но как кто-то, кто только что (в прошлом году) сделал переключение процедурного программирования PHP на PHP OOP; ООП это путь. Думаю, я должен упомянуть, что я не новичок в ООП, просто в PHP. Но это все еще не было трудно учиться.
Количество кода, которое я повторно использую, а также то, насколько просто создавать новые страницы, стоило того времени, которое потребовалось, чтобы привести новый материал в соответствие с моими старыми методами.