Перевод небольшой заметки Yakov Fain с сайта javalobby.org о том, как обилие фреймворков на любой вкус лишают разработчиков необходимости знать, как всё устроено «под капотом». Думаю, эта проблема не ограничивается только Java, а всё ещё актуальна для любого языка, не смотря на то, что статья достаточно старая.
Когда я собеседовал Java-разработчиков, я часто натыкался на людей, которые не понимали как работают и взаимодействуют некоторые компоненты распределённого приложения. Обычно, это было связано с тем, что они использовали те или иные фреймворки, которые скрывают от разработчиков важные элементы своей реализации. В этом нет ничего плохого до тех пор, пока программист понимает, как работает остальные части приложения.
Сегодня один из моих бывших клиентов попросил меня провести интервью на позицию Senior Java EE разработчика. После собеседования я понял, что разговаривал с представителем какого-то нового вида. Его можно назвать Framework Coder. В его резюме были все необходимые технологии (JSP, Struts, EJB, базы данных, серверы приложений), которые он использовал в множестве проектов. Самое страшное, что он даже не лгал — он действительно работал на всех этих проектах, почти ничего не зная о Java SE или Java EE.
На большинство моих вопросов он отвечал одинаково: «Я вызывал метод самодельного фреймворка».
— Как Вы вызывали компонент сессии (EJB) из JSP?
— У нас был фреймворк и я передавал нужные параметры в метод специального класса.
— Да, но если потребуется вызвать компонент из JSP напрямую, как бы Вы это сделали?
— <Молчание>
— Как Вы подключались к базе данных?
— У нас был XML файл, в котором хранились параметры для БД, вроде имени пользователя или пароля.
— Но где эти данные на самом деле определялись/находились?
— Мы просто передавали параметры в специальный класс фреймворка.
— Как используются интерфейсы в Java?
— В них удобно хранить сигнатуры методов.
— Какую IDE Вы использовали для написания JSP?
— Dreamweaver.
— Почему?
— В нашей компании все пользовались им.
— Куда помещалась бизнес-логика Вашего приложения?
— Мы работали по спецификации, которая указывала, где писать код.
Я уверен, что этот парень найдёт работу, ведь в США рынок Java сейчас на пике. Но наша профессия деградирует и это плохо.
* — Я решил оставить фразы вроде Framework Coder или Senior developer без перевода, т.к. их значение и так очевидно, а устоявшегося русского аналога я не знаю.
UPD. Как подсказывает rozboris, автор — русский, давно переехал в США и сейчас публикует подкасты о Штатах, а также написал несколько книг о разработке ПО.
Когда я собеседовал Java-разработчиков, я часто натыкался на людей, которые не понимали как работают и взаимодействуют некоторые компоненты распределённого приложения. Обычно, это было связано с тем, что они использовали те или иные фреймворки, которые скрывают от разработчиков важные элементы своей реализации. В этом нет ничего плохого до тех пор, пока программист понимает, как работает остальные части приложения.
Сегодня один из моих бывших клиентов попросил меня провести интервью на позицию Senior Java EE разработчика. После собеседования я понял, что разговаривал с представителем какого-то нового вида. Его можно назвать Framework Coder. В его резюме были все необходимые технологии (JSP, Struts, EJB, базы данных, серверы приложений), которые он использовал в множестве проектов. Самое страшное, что он даже не лгал — он действительно работал на всех этих проектах, почти ничего не зная о Java SE или Java EE.
На большинство моих вопросов он отвечал одинаково: «Я вызывал метод самодельного фреймворка».
— Как Вы вызывали компонент сессии (EJB) из JSP?
— У нас был фреймворк и я передавал нужные параметры в метод специального класса.
— Да, но если потребуется вызвать компонент из JSP напрямую, как бы Вы это сделали?
— <Молчание>
— Как Вы подключались к базе данных?
— У нас был XML файл, в котором хранились параметры для БД, вроде имени пользователя или пароля.
— Но где эти данные на самом деле определялись/находились?
— Мы просто передавали параметры в специальный класс фреймворка.
— Как используются интерфейсы в Java?
— В них удобно хранить сигнатуры методов.
— Какую IDE Вы использовали для написания JSP?
— Dreamweaver.
— Почему?
— В нашей компании все пользовались им.
— Куда помещалась бизнес-логика Вашего приложения?
— Мы работали по спецификации, которая указывала, где писать код.
Я уверен, что этот парень найдёт работу, ведь в США рынок Java сейчас на пике. Но наша профессия деградирует и это плохо.
* — Я решил оставить фразы вроде Framework Coder или Senior developer без перевода, т.к. их значение и так очевидно, а устоявшегося русского аналога я не знаю.
UPD. Как подсказывает rozboris, автор — русский, давно переехал в США и сейчас публикует подкасты о Штатах, а также написал несколько книг о разработке ПО.