JavaRush /Java блог /Random /Кофе-брейк #153. Ошибки, которых следует избегать на техн...

Кофе-брейк #153. Ошибки, которых следует избегать на технических интервью. В чем разница между JPA и Hibernate?

Статья из группы Random

Ошибки, которых следует избегать на технических интервью

Источник: Medium Благодаря этой публикации вы узнаете о 10 самых распространенных ошибках, которые кандидаты на должность Java-разработчика допускают во время технического собеседования. Кофе-брейк #153. Ошибки, которых следует избегать на технических интервью. В чем разница между JPA и Hibernate? - 1За 8 лет работы по написанию Java-кода, руководству командами, разработке продуктов и проведению собеседований, я часто замечал, как во время интервью кандидаты допускают ошибки, которые сокращают их шансы получить работу. Сегодня я постараюсь объяснить, почему вам стоит обратить на них внимание.

1. Не задаете уточняющие вопросы

Многие кандидаты сразу переходят к решению поставленной перед ними задачи, даже не задавая уточняющие вопросы. Когда требования не полностью ясны, это увеличивает шансы, что добиться правильного результата будет сложнее. Более того: это не только затруднит приближение к правильному ответу, но и может направить вас по неправильному пути.

2. Кандидаты с чрезмерными обязательствами

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

3. Использование модной терминологии

Модные слова круты, если вы полностью понимаете их значение, в противном случае воздержитесь от хвастовства. Потому что если интервьюер почувствует, что вы плохо разбираетесь в том, о чем говорите, то это скорее навлечет на вас неприятности, а не добавит баллы. Например, если вы упомянули об OAuth 2.0, то вы должны знать связанные концепции аутентификации, авторизации, идентификации, доступа, токенов обновления, структуры JWT, конфиденциальных клиентов, временного кода и так далее. Точно так же, если вы говорите об обеспечении безопасности API с помощью Spring Security, то будьте готовы, что интервьюер начнет задавать вопросы о декодерах токенов (например, Nimbus Decoder), различиях в методах обеспечения безопасности API, Spel (язык выражений Spring), аннотациях @PreAuth, User Principal, конечных точках контроллера и многом другом.

4. Опишите прошлые проекты

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

5. Непринужденное поведение

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

6. Плохая коммуникация

Многие компании-разработчики программного обеспечения в Азии и Восточной Европе предоставляют услуги международным клиентам, где английский язык является основным средством общения. Если кандидат плохо разговаривает на английском языке, это усложняет поиск работы. Откройте LinkedIn или любую другую платформу и просмотрите объявления о вакансиях. Вы почти всегда найдете обязательное требование хорошего английского языка/коммуникативных навыков. Мы часто не уделяем должного внимания нетехническим аспектам, и обычно это то, что не в лучшую сторону выделяет нас от остальных.

7. Опишите себя

Вас обязательно попросят рассказать что-то о себе. Поэтому, если вы не будет готовы к этому вопросу, то это может ухудшить общее впечатление. Порепетируйте, потренируйтесь, подготовьте несколько историй, которыми можно поделиться на собеседовании.

8. Плохие заключительные вопросы

Когда кандидатов спрашивают, есть ли у них какие-либо вопросы, большинство из них либо ничего не задают, либо спрашивают о технологиях, которые используются в компании. Помните, что если вы проявляете интерес к компании, в которой будет работать, это характеризует вас с положительной стороны. Поэтому вы можете спросить у своего собеседника:
  1. Какой он видит эту компанию в ближайшие 5 лет?
  2. Собирают ли здесь от сотрудников фидбэки, чтобы на их основе вносить изменения в техническую/нетехническую политику компании?
  3. Как проходит обычный рабочий день?
  4. Как компания работала в условиях пандемии? Из-за этого увеличилась/уменьшилась клиентская база?
  5. Сообщает ли компания о своем финансовом положении сотрудникам?
  6. Над какими техническими проектами работала компания в текущем или прошлом году?
  7. Имеют ли отдельные лица право голоса в разработке и реализации проекта или все заранее решается сверху?
  8. На какие преимущества могут рассчитывать новые сотрудники, если сравнивать с другими работодателями?

9. Сдаетесь перед трудной задачей

Я был свидетелем собеседования, на которых кандидат не мог найти правильный ответ на одну из задач, и я думал, что его судьба решена. Однако кандидат не оставлял попыток и в конце концов вплотную подошел к разумному решению. И в итоге он получил оффер на работу. Никто не ищет идеального решения, старайтесь, пока не получится!

10. Не молчите подолгу

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

Заключение

Быть технически грамотным и хорошо подготовленным очень важно, однако, если вы хотите выиграть по-крупному и повысить свои шансы попасть на работу, вам пригодятся несколько дополнительных очков. Их можно набрать, если грамотно вести себя на интервью.

В чем разница между JPA и Hibernate?

Источник: Medium В этой статье указаны различия между платформами Java Hibernate и JPA, а также их типами. Кофе-брейк #153. Ошибки, которых следует избегать на технических интервью. В чем разница между JPA и Hibernate? - 2

Java JPA против Hibernate

Java Persistence API или JPA впервые представили 11 мая 2006 года. Эта спецификация Java предоставляет определенные функции и стандарт для инструментов ORM. Это позволяет пользователям проверять, управлять и сохранять данные между объектами Java и реляционными базами данных. JPA считается стандартной методологией объектно-реляционного отображения (Object Relational Mapping). JPA служит связующим звеном между объектно-ориентированной парадигмой и системой реляционных баз данных. И поскольку это спецификация Java, она не может работать сама по себе. Ее необходимо запускать. Из-за потребности JPA в сохранении данных для этого применяются инструменты ORM, такие как Hibernate. Пакет javax.persistence для сохраняемости данных содержит классы и интерфейсы JPA. Несколько основных характеристик JPA:
  1. JPA — это только спецификация, но не реализация.
  2. JPA — это сборник рекомендаций и предложений по разработке интерфейсов для реализации объектно-реляционного отображения.
  3. Нуждается в определенном количестве классов и интерфейсов.
  4. Обеспечивает интегрированное, более простое и легкое в использовании объектно-реляционное сопоставление.
  5. Поддерживает полиморфизм и наследование.
  6. Именованные и динамические запросы поддерживаются JPA.
А теперь немного о Hibernate. Это Java-инфраструктура объектно-реляционного сопоставления (ORM, Object Relational Mapping) с открытым исходным кодом, облегченная и упрощающая создание полноценных Java-приложений, взаимодействующих с базами данных. Она используется для сохранения объектов Java в системе реляционной базы данных. Основная задача Hibernate — преобразовать классы Java в таблицы базы данных. Ключевые характеристики Hibernate:
  1. Hibernate реализует стандарт JPA.
  2. Она упрощает преобразование типов данных Java в типы данных SQL.
  3. Она способствует работе JPA.
Наверное, вы хотите спросить, зачем требуется JPA. Ну что же, давайте поговорим о необходимости JPA, прежде чем мы углубимся в их различия и начнем жаркие дебаты. Как только что было сказано, JPA — это спецификация. Она предлагает прототип и стандартную функциональность для инструментов ORM. Все инструменты ORM, включая Hibernate, соответствуют одним и тем же стандартам, следуя одной и той же спецификации. В результате нам не составит труда изменить инструмент ORM для нашего приложения. Мы рассмотрели как основные идеи, так и обстоятельства, в которых они работают. А сейчас давайте быстро рассмотрим различия между JPA и Hibernate. JPA существует только как стандарт без реализации. Мы можем сколько угодно аннотировать классы с помощью JPA, но без реализации ничего не произойдет. Hibernate — это код реализации JPA, который унифицирует API в соответствии со спецификацией JPA и предлагает анонимную функциональность, если JPA является стандартом, которому необходимо следовать.

Различия между JPA и Hibernate

JPA:
  1. JPA описан в пакете javax.persistence.
  2. Это только один из стандартов Java.
  3. Операции с базой данных возможны благодаря широко распространенному API.
  4. JPA использует объектно-ориентированный язык запросов Java Persistence Query Language (JPQL) для выполнения операций с базой данных.
  5. Для взаимодействия с фабрикой диспетчера сущностей (entity manager factory) для единицы сохраняемости используется интерфейс EntityManagerFactory. Он предоставляет диспетчер сущностей.
  6. Для создания, чтения и удаления действий для экземпляров сопоставленных классов сущностей используется интерфейс EntityManager. Этот интерфейс связан с условием персистентности.
Hibernate:
  1. Информацию о Hibernate можно найти в пакете org.hibernate.
  2. Инструмент объектно-реляционного отображения (ORM) Hibernate используется для хранения объектов Java в реляционных базах данных.
  3. Hibernate — это реализация JPA. В результате Hibernate соответствует общему стандарту, установленному JPA.
  4. С его помощью типы данных SQL и таблицы базы данных преобразуются в типы данных Java.
  5. Для выполнения операций с базой данных он использует объектно-ориентированный язык запросов Hibernate Query Language (HQL).
  6. Для создания объектов Session используется интерфейс SessionFactory.
  7. Для добавления, чтения и удаления действий для экземпляров сопоставленных классов сущностей используется интерфейс сеанса. Он функционирует как интерфейс времени выполнения для приложений Java и Hibernates.

Заключение

Самая большая разница между Hibernate и JPA заключается в том, что Hibernate — это фреймворк (инструмент), а JPA — набор руководств по API. Hibernate реализует все рекомендации JPA.
Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Alex Уровень 27
24 августа 2022

Ошибки, которых следует избегать на технических интервью
осталось попасть на это самое интервью, что практически не реально в текущее время...