Что значит хорошо знать фреймворк?

Имел небольшой опыт работы с Yii1, но сейчас приступил к изучению Yii2 и планирую изучить Symfony и Laravel (если хватит времени, т.к. есть свободных полгода, но об этом написал ниже). Изучаю по документации на сайте и по исходникам (начал с базовых классов и продвигаюсь). По исходникам значительно понятнее и интереснее.

Но я ни разу не устраивался на работу, где требовалось знание фреймворка, поэтому не понимаю что значит хорошо знать фреймворк. Концепции, паттерны и общие моменты понятны, но в фреймворке много разных мелочей. Например, в Yii2 более 100 классов и более 1000 методов в них (в сумме). На данный момент я изучил 14 классов от начала и до конца, т.е. по сути помню код любого метода и все свойства и отлично понимаю работу этих классов. Могу написать эти классы с нуля почти 1 в 1.

Но насколько нужно такое погружение? Не является ли это излишним? Что значит "хорошо знать фреймворк"? На что смотрят при собеседовании в этом плане?

Например, в Yii2 контроллеры весьма функциональны (если даже не говорить о разделении на console/web). Программист, хорошо знающий фреймворк, должен знать весь такой функционал или только основную часть, а остальное узнает, если будет необходимо?
  • Вопрос задан
  • 3626 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
Хорошо знать фреймворк - это понятие довольно субъективное, и каждый человек может в него вкладывать свой смысл. Если Вы планируете искать работу с акцентом на изучаемые фреймворки думаю Вам будет достаточно:
1. Знание общих принципов работы фреймворка (что как устроено внутри), но тут нужно понимать что не стоит изучать каждый класс от корки до корки, т.к. это бессмысленная работа, фреймворки постоянно развиваются и модифицируются. Например, Вы должны знать что такое DI, как оно организовано в фреймворке, и как с ним работать. Но не нужно прям досконально знать код.
2. Чтение документации это хорошо, но практика всегда нужна. Вы не просто должны знать фреймворк по документации, Вы должны иметь опыт работы с ним. Как вариант можете придумать для себя какой-нибудь тестовый проект и реализовать его.
3. Паттерны, архитектурные принципы и т.п. тоже важны, если Вы их знаете - тогда это плюс.
4. СУБД. Для большинства проектов базы используются, поэтому помимо фремворка Вы должны так же хорошо ориентироваться в них, уметь писать сложные запросы, проектировать их и т.п.
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
romy4
@romy4
Exception handler
это значит, что когда тебе сказали запили фичу, то ты не сидишь ломая голову и изучая чужие примеры, пиля костыли, спрашивая на этом форуме, а делаешь сам зная какие модули надо использовать и как, знаешь мануал на столько, что тебе не нужны подсказки вроде "а как мне сделать такую-то шнягу?", ты просто знаешь, что её можно сделать так и так двумя-тремя способами, надо только глянуть на страницу мануала подсмотреть синтаксис функций.
Ответ написан
Комментировать
@YuryBorodkin
Android dev
Довольно просто, хорошо знать - значит знать ЧТО гуглить, чтобы решить проблему. Учить его - да что за дичь? он устареет через год, потом будет еще стопицот других, еще моднее.
Ответ написан
Комментировать
Скажу не по фреймворку... но принцип везде один и тот же. Это то что объединяет всех Мастеров своего дела. Хорошо знать - значит детально знать базу, понимать как оно все работает и на базе накопленного опыта решать поставленные задачи быстро находя точки минимального воздействия.
Ответ написан
Комментировать
Insolita
@Insolita
Отчаянная домохозяйка
просто тупо изучать классы - нет никакого смысла, нужно садиться и решать какие-то задачи. А помимо самого фреймворка, обычно идёт как минимум 5-10 must-have расширений из коммьюнити, с которыми так же стоит ознакомиться.
Нужно понять lifecycle фреймворка - пройтись с xdebug по стеку выполнения рендеренига простой страницы.
Понять принципы роутинга, обработки запросов, конфигурации, авторизации. DI, событий. И сразу применять на практике. Yii2 не простой фреймворк для первого знакомства с фреймворками в принципе, хоть и достаточно с низким порогом вхождения, но у него много специфических плюшек, после которых перестроиться на другие фреймворки может быть тяжелее - в частности виджеты, поведения, и сама специфика конфигурации компонентов с магией
Ответ написан
Комментировать
@springimport
Согласен с Максим Федоров.

Я бы не стал изучать каждый класс ради понимания реализации. Проблема этого метода в том что фреймворки обновляются быстрее чем успеваешь их изучать.

"Все книги не перечитаешь".
Ответ написан
opium
@opium
Просто люблю качественно работать
значит что вы можете написать сайт на основе этого фреймворка
Ответ написан
Ваш ответ на вопрос

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

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