Стоит ли изучать фреймворк PHP?

Недавно начал изучать php. Знаю основы языка, собираюсь продолжать изучение ООП и паттернов. Учу язык с целью работы в команде (в веб студии). Сразу скажу что практического опыта нет. Так вот вопрос: что делать сейчас?
а)"быдлокодить" пытаясь делать свою cms дабы набраться опыта.
б)изучать фреймворк и параллельно набираться опыта программируя с помощью него.
Всем спасибо!
upd: говоря фреймворк имею ввиду yii
  • Вопрос задан
  • 4833 просмотра
Пригласить эксперта
Ответы на вопрос 10
@ugodrus
Мой совет - продолжать "быдлокодить" еще хотя бы годик.

Немного своих размышлений на тему фреймворков. Правда нелепо быть свидетелем такого диалога?:
- А вы бегать умеете?
- Конечно. Я на костылях очень быстро передвигаюсь.

То же относится к фреймворкам. Как костыли вызывают атрофию мышц, фреймфорки вызывают атрофию креативного мышления. Фреймворк какой бы он ни был хорошим и удобным ставит вас в определенные рамки мышления и реализации кода. И чем меньше ваш кругозор в том или ином языке (чистом), тем более узким будет ваше видение ваших реализаций внутри фреймворка. И в конечном итоге в один прекрасный момент, столкнувшись с чем-то неординарным в работе, вы скорее всего будете судорожно искать в нете что-то готовое подходящее под ваши задачи, нежели делать это самому, т.к. нить связи с чистым языком у вас уже практически утрачена.

Я, например, занимаюсь php уже более 10 лет. При мне он развивался и крепчал. Даже без фреймфорков могу написать практически любое приложение. И только в начале этого года я принялся за Laravel. И решение такое было вызвано огромной необходимостью, т.к. занимаюсь разработкой в одиночку (без команды), и в последнее время ко мне стали часто обращаться с достаточно крупными проектами, требующими особого подхода в реализации, и вариант с готовой CMS там не прокатит, а уж тем более с системой свёрстанной "на коленке".

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

Фреймворк - последняя инстанция хорошего программера. Пока не научитесь бегать самостоятельно -не советую браться за костыли.
Ответ написан
Изучайте фреймворк только после того, как разберетесь с ООП и некоторым набором паттернов. Фреймворк - хорошая и полезнаю штука, но нужно хоть немножко понимать как он работает
Ответ написан
Комментировать
@realmag777
IT
Современные фреймворки отдаляют от программирования, они хороши для фирм (средних/больших) чтобы стандартизировать подход к разработке (клепать сайты) - но многие моменты превращают работу с фреймворком в магию, а не программирование. Всё что нужно для старта проекта это роутинг и авторизация. Всё! Можно писать бизнес логику. Те кто пишет серьёзные высоконагруженные проекты, или просто серьёзные - пишут с нуля основу, ну а в дальнейшем код пишется по обстановке, согласно бизнес-логике проекта.

https://www.phpclasses.org/blog/post/226-4-Reasons...
Ответ написан
Комментировать
@Akellacom
CTO
Изучать фреймворк, советую Yii\Yii2.
Ответ написан
Комментировать
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
Во-первых зависит от фреймворка т.к. некоторые из них ни что иное как быдлокод, во-вторых быдлокодить можно и используя фреймворк. По мне так лучше не изобретать велосипед и пользоваться готовым кодом только выбирать фреймворк не столько по популярности сколько по удобству и доступности в понимании.
Ответ написан
Комментировать
Чтобы набраться опыта - лучше браться за реальные задачи - с них профита будет в разы больше. Если реальных задач под рукой нет, то берете либо свою идею, либо любой понравившийся сайт и пытаетесь его сделать своими руками, использую либо чистый php, либо выбранный фреймворк (также советую yii). Пользы будет много больше, чем если просто читать доки и делать свою cms.
Также за реальными задачами можно обратиться к студиям в ваше городе - обзвоните их и скажите, что хотите учиться и спросите, нет ли у них задач, которые можно отдать вам на откуп. Реальный заказ вам не дадут, но какую нибудь мелочь для внутренних нужд могут и попросить сделать.
PS: быдлокодить не надо, не по христиански это.
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Laravel хотя бы получше будет. И в плане обучения (больше материалов) и вообще. Хотя как и в случае с Yii 90% всего что можно встретить по этому фреймворку на гитхабах лютый говнокод.

CMS это продукт готовый к использованию. То есть вы можете его реализовывать на базе фреймворка и это было бы правильнее так как фрейморк даст вам какую-то базовую структуру и уменьшит количество бойлерплейт кода.

Словом... нет смысла писать на голом PHP. И да, фреймворки типа Yii или Laravel ничего за вас не будут делать. То есть как, что-то они вам предоставят но изгадить архитектуру приложения всеравно легко и просто.
Ответ написан
Комментировать
customtema
@customtema
arint.ru
И А, и Б - оба ваших варианта хороши, в комплексе.

К этому дам немного советов.

1) Убедитесь, что знакомы с основами, например теорию БД, ru.wikipedia.org/wiki/HTTP и www.php.su/learnphp

95% вопросов от новичков на форумах имеют ответы по ссылкам, которые я только что показал вам.

2) Убедитесь, что вы сможете "освоить" фреймворк за 3-4 дня. Если нет - возвращайтесь к п. 1. Не надо тратить на это больше времени - оно того не стоит.

3) Не надо зависать на одном фреймворке или на одном языке программирования. Если вы занимаетесь PHP - сразу берите в нагрузку Python и JS.
Ответ написан
Комментировать
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
Те, кто называют фреймворки "костылями", похоже не понимают, что современные языки программирования сами по себе являются костылями. Зачем изучать алгоритмы сортировок, когда в PHP встроено 12 функций - на все случаи жизни? Зачем разбираться с выделением и очисткой памяти, если всё это делается автоматически? И т.д., и т.п.

Если хочешь действительно научиться программированию, то начни с базовых знаний. Например, с "Искусства программирования" Кнута.

И, разумеется, не надо начинать с написания собственного фреймворка "с нуля". Ты же не будешь видеть собственные ошибки. Даже не сможешь понять, что допустил ошибку. Потому лучше начни с разбора чужого кода...

Возьми тот же Yii2 и попробуй разобраться - что и как там работает и почему сделано именно так, а не иначе. После этого возьми другой фреймворк и сравни их... Да Kohana сдохла, но тот же FuelPHP (который является форком Коханы) вполне себе развивается.
Ответ написан
Комментировать
@LAV45
CMS, bugFix - познакомитесь с основными подходами организации структуры приложений.
framework - поможет вам лучше освоится с практическим применением патернов.

framework - эта только инструмент, как швейцарский нож. Умеет много но сам по себе ничего не делает.
CMS - эта уже полноценная экосистема которая решает вполне конкретные задачи.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы