Pull to refresh

Фреймворки делают разработчиков тупыми?

Reading time 3 min
Views 17K
Original author: K. Siva Prasad Reddy
Предлагаю вам перевод записи блога, автор которой подметил глобальные тенденции современного программирования. Хотя речь идет о Java, с которым я никогда не работал, я нашел много до боли знакомого.

На прошлой неделе я проводил несколько интервью, чтобы нанять Senoir Java developers с опытом около пяти лет. После них я почувствовал, что фреймворки делают жизнь разработчиков проще, но в тоже время делают их тупее. Каждый указывает практически все новые фреймворки в своем резюме в виде «Мощный опыт работы с Spring, Hibernate, Web Services и так далее».

Вот как проходили собеседования.

Я: Вы использовали Spring в своем последнем проекте. Какие преимущества использования Spring?
Претендент: Мы можем настраивать beans в XML, а Spring возьмет на себя создание экземпляра и отдаст его нам.
Я: Если Spring только для создания объектов, зачем он вообще нужен – я могу напрямую создать экземпляр, используя «new». Почему мне стоит настраивать имена классов в XML и получать объект из Spring?
Претендент: Если завтра мы захотим сделать другую реализацию нашего интерфейса, мы сможем добавить ее и обновить XML, чтобы использовать ее. Нам не нужно изменять класс в Java и компилировать его.
Я: Но вы пишете новый класс, очевидно, что вам нужно скомпилировать проект. После изменения, XML, в 99% случаев будет запакован в файл war или ear. Вы запустите скрипт ANT и создадите war с новыми изменениями. Таким образом, ваша точка зрения «если это XML, мне не надо компилировать» – беспочвенна.
Претендент: Ммм, но паттерн Dependency Injection требует идти этим путем.
Я: Хорошо, я закончил. Наш HR с вами свяжется :-)

Другое собеседование:

Я: Вы можете рассказать о своем последнем проекте и технологиях, которые вы использовали?
Претендент: Это XYZ система. Мы использовали Spring, Hibernate, REST WebServices.
Я: Хорошо, можете рассказать что-нибудь о RESTful архитектуре?
Претендент: Мы можем разработать RESTful приложение, используя @RequestMapping(value="/url", method=«POST»). Также мы можем использовать методы PUT и DELETE.
Я: Это верно, но в чем концепция RESTful?
Претендент: В том, что я говорю: если вы используете @RequestMapping(value="/url", method=«POST») – вы можете разработать RESTful приложение.
Я: Ладно. Насколько хорошо вы разбираетесь в Hibernate?
Претендент: Я использую Hibernate последние два года и мне комфортно с ним работать.
Я: Какие преимущества Hibernate над JDBC?
Претендент: Используя Hibernate, нам не нужно писать ничего для взаимодействия с базой, Hibernate с этим разберется.
Я: Как Hibernate узнает о требованиях вашего проекта?
Претендент: Если использовать его, он займется сохранением, обновлением и получением данных из базы.
Я: Эээээ… Ладно… В свободное время вы читаете какие-либо блоги, связанные с технологиями?
Претендент: Да, почему бы и нет. Так я изучаю Hibernate изнутри.
Я: Очень хорошо, было приятно с вами поговорить. Наш HR с вами свяжется :-)

Все собеседования проходят подобно этим.

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

Если вы действительно разбираетесь в Servlets и JSP – вам будет очень просто понять любой веб-фреймворк Java, как Struts, SpringMVC и так далее.

Но если вы не очень понимаете основы, очевидно, что для каждого вопроса ответ будет: «документация фреймворка решит эту проблему».

Крайне рекоммендую тем, кто хочет начать свою карьеру как разработчик Java, изучить Core Java, Servlets, иногда JSP.
Тогда только вы сможете понимать фреймворки на достойном уровне.
Tags:
Hubs:
+76
Comments 138
Comments Comments 138

Articles