Какой фреймворк разобрать или как получить углубленные знания MVC?
На собеседованиях часто просят сделать тестовое задание, но не на фреймворке. Ту же гостевую книгу, или аналог pastebin, или URL shortener или простой бложик.
На современных фреймворках это делается быстро. Да и в самой компании скорей всего пишут на фреймворках, и соискателю в будущем и придется на них писать, но на собеседовании просят на голом php.
Подразумеваю, что те кто берут на работу хотят видеть не просто процедурный стиль реализации простого приложения, а ход мыслей, возможность расширения приложения, безопасность и т.д.
То есть хотят видеть собственную реализацию MVC. Это конечно мои догадки, но я бы на месте нанимателя именно так и сделал, смотрел бы на наиболее удачную (на мой взгляд) реализацию.
Какой микрофреймворк подойдет новичку, чтобы разобрать его по кусочкам и понять как он устроен, чтобы заглянуть к нему под капот и не ужаснуться (от сложности и непонимания), чтобы набрать оттуда идей и реализовать собственный микрофреймворк на котором делать несложные тестовые задания без лапшекода и велосипедов?
Тот же Laravel не простой, у него много под капотом и новичку разобрать как он работает изнутри не так просто. Поэтому навороченные современные фреймворки не подойдут: Laravel, Symphony, Yii.
А в видеоуроках авторы часто по-своему реализуют MVC, то есть структура папок, классов и файлов у всех разная. Вероятно авторы и пишут "свой фреймворк" нахватавшись различных фич от разных простых и не очень фреймворков.
Думаю стоит посмотреть серию видео-уроков по изучению PSR-7 микрофреймворков. В результате Вы научитесь с нуля создавать собственный компонентный фреймворк.
Какой долб... просит как тестовое задание реализовать свой MVC, тем более, для джуна?
Может там ещё и огород вспахать нужно?
Если конечно это будет оплачиваемое задание, то ок.
Без фреймворка могут попросить решить какую-то конкретную задачу, типа массив/строку перевернуть (если речь идёт о джуне), может какой-то алгоритм или какую-то задачу из целевой области.
А реализовать свой велосипед предлагают обычно шарлатаны, которые курсы проводят.
Конечно, с опытом Вы будете лазить во внутренности фреймворка, чтобы понять, почему происходит какая-то хрень, но не для того, чтобы узнать MVC.
Ну и главное, фреймворк называют MVC, так как он как бы призывает так писать код, но кроме какого-то мапинга URL на контроллер, он не делает ничего из MVC, уже Ваш код обращается к модели( да, обычно есть какие-то инструменты для работы с ней, но это другое), дальше Вы сами указываете как отобразить. Фреймворк для другого!!!
тут, вероятно, дело в том, что в большинстве вакансий на джуна, не указывается что требуется джун, по-видимому чтобы отсеять совсем новичков. В вакансии стоит "от года до трех лет" и далее перечисляются требования. А вот когда ищут опытного, то пишут, что нужен middle или senior.
К примеру, если вбить в поиск hh.ru (в Спб) "php", то находит около 600 вакансий, но если вбить "php junior", то находит 29 вакансий.
Поэтому и усложняют тестовые задания и расчет видимо идет на то, что 100 человек откликнуться, 10 выполнят тестовое, возьмут одного, кто лучше всего выполнил это тестовое + прошел устное собеседование.
Nikolino, деление условно, поэтому могут и не указывать. Не оплачиваемое задание больше чем на час можно брать после всех собеседований, чтобы потом не сказали, что "у Вас слишком длинный нос, как в анекдоте".
nozzy, не перестал, но уже не поддерживается, не развивается и сами разработчики не рекомендуют его использовать (в пользу Symfony 4)
Никто же не рекомендует писать на php4, он ведь языком программирования быть не перестал
набрать оттуда идей и реализовать собственный микрофреймворк
без лапшекода и велосипедов
Так вы всё-таки хотите научиться писать свой MVC или запомнить готовые? В первом случае понадобятся только книжки и статьи из википедии про тот самый MVC. Во втором - любой MVC с документацией. Чем больше фреймворк, тем меньше там лапшекода и велосипедов. Вы сначала определитесь.
Хочу выполнить тестовое задание так, чтобы максимально порадовать того, кто будет это тестовое задание проверять. Потому, что полагаю, что проверяющему меня тимлиду есть еще чем занять себя, кроме как подробно описывать мне где и почему я выполнил тестовое задание не правильно.
По-моему нельзя написать свой MVC фреймворк, досконально не изучив существующие решения, которые пришли что нужно делать именно так, а не иначе через несколько лет и переписывания собственных решений, которые когда-то давно казались логичными и правильными.
Поэтому хочу научиться писать сам, через подражание готовым и зарекомендовавшим себя решениям. Потому что у меня в силу неопытности нет понимания того, как делать правильно.
Nikolino, ну так в чем проблема? Разбирайте и анализируйте свой Laravel)) Ну или прочитайте задание и критерии оценивания и сделайте, как просит тимлид.
В любом случае надо выбрать между простотой, понятностью, скоростью и надежностью, сложностью, мощностью.
index0h, не реклама, этого автора уже упомянули выше.
В любом случае laravel vs symfony vs yii это холиварная тема. Но чаще всего от опытных коллег можно слышать что-то вроде: "изучай сначала либо Yii либо Laravel, затем переходи на Symfony, там всё сложнее".
А я вроде наоборот просил максимально Stupid Simple, а не посложнее)
чтобы разобрать его по кусочкам и понять как он устроен
Symfony, это в принципе компонентный фреймворк, не нравится какой-то компонент - заменяем на другой.
В отличии от Yii/Laravel тут магии меньше.
чтобы заглянуть к нему под капот и не ужаснуться
Symfony. Он как раз для этого хорош.
чтобы набрать оттуда идей и реализовать собственный микрофреймворк
Symfony. Смотрим что такое "MicroKernelTrait" и в перед.
на котором делать несложные тестовые задания без лапшекода и велосипедов?
Тут есть момент: собственный фреймворк имеет смысл пилить исключительно для самообучения. Про тестовые задания на нем - забудьте.
Тот же Laravel не простой, у него много под капотом и новичку разобрать как он работает изнутри не так просто.
Он основан на магии и статике, что ж вы хотели?
Поэтому навороченные современные фреймворки не подойдут
Не правильный вывод. Вот например посоветуй я вам CodeIgniter, он реально прост. Но не потому, что он хорошо спроектирован, вовсе это студенческая поделка с хреновой архитектурой. Он прост потому что в нем очень мало функциональности.
Вы бы посмотрели на него, вам бы понравилось, а просто ж все. Только научились бы кучке антипрактик, а потом переучивались через несколько лет.