Предлагаю вам перевод записи в блоге, автор которой отметил мировые тенденции в современном программировании.
Хотя это Java, с которой я никогда не работал, многое из этого показалось мне пугающе знакомым.
На прошлой неделе я провел несколько собеседований, чтобы нанять разработчиков Senoir Java с пятилетним опытом работы.
После них я почувствовал, что фреймворки облегчают жизнь разработчикам, но в то же время делают их тупее.
Почти все новые фреймворки в резюме почти все указывают как «Большой опыт работы с Spring, Hibernate, Web Services и т. д.».
Вот как прошли собеседования.
я : Вы использовали Spring в своем последнем проекте.
Каковы преимущества использования Spring? Челленджер : Мы можем настроить bean-компоненты в XML, а Spring позаботится о создании экземпляров и предоставит их нам.
я : Если Spring занимается только созданием объектов, то зачем он вообще нужен — я могу напрямую создать экземпляр с помощью «нового».
Зачем мне настраивать имена классов в XML и получать объект из Spring? Челленджер : Если завтра мы захотим сделать другую реализацию нашего интерфейса, мы можем добавить ее и обновить XML, чтобы использовать ее.
Нам не нужно модифицировать класс в Java и компилировать его.
я : Но вы пишете новый класс, очевидно, вам нужно скомпилировать проект. После изменения XML в 99% случаев будет упакован в файл war или Ear. Вы запустите сценарий ANT и создадите войну с новыми изменениями.
Так что ваша точка зрения «если это XML, мне не нужно компилировать» безосновательна.
Челленджер : Ммм, но шаблон внедрения зависимостей требует идти по этому пути.
я : Хорошо, я закончил.
Наш HR свяжется с вами :-) Еще одно интервью: я : Можете ли вы рассказать нам о своем последнем проекте и технологиях, которые вы использовали? Челленджер : Это система XYZ. Мы использовали Spring, Hibernate, REST WebServices. я : Хорошо, можете ли вы рассказать нам что-нибудь об архитектуре RESTful? Челленджер : Мы можем разработать приложение RESTful, используя @RequestMapping(value="/url", метод="POST").
Мы также можем использовать методы PUT и DELETE. я : Это правда, но в чем заключается концепция RESTful? Челленджер : Я говорю следующее: если вы используете @RequestMapping(value="/url", метод="POST") - вы можете разработать RESTful-приложение.
я : ХОРОШО.
Насколько хорошо вы понимаете Hibernate? Челленджер : Я использую Hibernate последние два года, и мне комфортно с ним работать.
я : Каковы преимущества Hibernate перед JDBC? Челленджер : Используя Hibernate, нам не нужно ничего писать для взаимодействия с базой данных, с этим справится Hibernate. я : Как Hibernate узнает о требованиях вашего проекта? Челленджер : Если вы его используете, он будет обрабатывать сохранение, обновление и извлечение данных из базы данных.
я : Ээээ.
Ладно.
В свободное время ты читаешь какие-нибудь блоги, связанные с технологиями? Челленджер : Да почему бы и нет. Итак, я изучаю Hibernate изнутри.
я : Очень хорошо, было приятно с вами поговорить.
Наш HR свяжется с вами :-) Все собеседования проходят так.
Я считаю, что фреймворки повышают продуктивность разработчиков.
Но разработчикам следует попытаться понять, как фреймворк это делает. И для этого не обязательно понимать всю внутреннюю структуру фреймворков.
Если вы действительно разбираетесь в сервлетах и JSP, вам будет очень легко понять любую веб-инфраструктуру Java, такую как Struts, SpringMVC и так далее.
Но если вы не совсем понимаете основы, очевидно, что на каждый вопрос ответом будет: «Документация фреймворка решит эту проблему».
Я настоятельно рекомендую тем, кто хочет начать свою карьеру в качестве Java-разработчика, изучить Core Java, сервлеты и иногда JSP. Только тогда вы сможете разбираться в фреймворках на достойном уровне.
Теги: #frameworks #java #интервью #тупые программисты #Карьера в IT-индустрии
-
Гамма, Цветовое Отображение И Linearworkflow
19 Oct, 24 -
«Агентство Особых Поручений»
19 Oct, 24 -
Чем Ты Пишешь Демонов?
19 Oct, 24