Не секрет, что большинство технической литературы в мире написано на английском языке. И Java-разработка здесь не исключение - значительная часть материалов или вообще недоступна на русском, или переведена так, что лучше учить с помощью гугл-транслейта. Тем радостнее для всего русскоязычного Java-сообщества будет то, что самая известная книга на эту тему "Java Persistence API with Hibernate" - примерно полгода назад была переведена на русский язык.
Если вы хотите стать Java-разработчиком - однажды вам придется учиться использовать
Hibernate.
Конечно, из любого правила есть исключения, все зависит от конкретного проекта и т.д. Но если смотреть на вашу карьеру в долгосрочной перспективе - в реальной работе вы с этой библиотекой непременно столкнетесь.
Представленную в статье книгу без преувеличения можно назвать фундаментальной: она является основным путеводителем по Hibernate среди всего, что об этой технологии было написано. Это объясняется достаточно легко, ведь среди ее авторов - основатель проекта Hibernate Гэвин Кинг и член команды разработчиков Hibarnate Кристиан Бауэр. Лично для меня это сразу выступило своеобразным гарантом качества: кому уж хорошо шарить в технологии, как не ее создателям:)
С другой стороны, далеко не всегда хороший специалист или даже создатель технологии могут написать легкую для понимания обучающую книгу. Как ни крути, а личный скилл и умение обучать друг с другом почти не коррелируют. В пример можно привести легендарное «Искусство программирования» Кнута или "Язык программирования С++" от его создателя Бьерна Страуструпа. И если высочайший уровень знаний авторов отрицать невозможно, то их книги читаются, мягко говоря, тяжеловато.
К счастью, создатели Hibernate и авторы этой книги создали вполне удобоваримый с точки зрения начинающего программиста продукт.
Для кого эта книга:
Как и в большинстве подобных книг, в аннотации написано, что она "для всех", в том числе и тех, кто учит Hibernate с нуля. На деле все-таки лучше иметь некоторую предварительную подготовку в виде сопутствующих технологий.
Ниже перечислен список того, что сильно облегчит Вам жизнь при чтении этой книги.
Если вы не знаете, что такое реляционные базы данных, не можете создать таблицу или написать даже простой SELECT-запрос и т.д. - лучше все-таки начать именно с этого. Это, кстати, будет полезно для тех, кто планирует участвовать в стажировке JavaRush. Начинайте с SQL'a, Hibernate потом. Благо, по SQL написан отличный Head-First (на мой вкус, один из лучших HeadFirst'ов во всей серии).
JDBC. Технология далеко не новая, но многие опытные разработчики по ряду до сих пор предпочитают ее хибернейту.
После этого, неплохо было бы прочитать (хотя бы поверхностно) про то, что такое ORM и зачем она нужна. Ведь Hibernate - это прежде всего ORM, то есть штука, которая превращает Java-объекты в записи базы данных (и наоборот).
К примеру, у вас есть класс User, есть класс Auto, и у каждого User'a есть список его машин List<Auto> autos.
Как записать все это в базу данных, чтобы еще и связи между юзерами и их машинами сохранились? Ведь юзер один, а машин у него может быть много:/ А как автоматически удалить из базы данных все машины юзера, если мы удалили его самого (то есть запретить БД хранить "бесхозные" машины)?
Вот Hibernate как раз и знает как:)
Кроме того, в Java есть и собственная реализация ORM-модели - Java Persistence API, или просто JPA. В книге она также рассматривается, но лучше предварительно бегло пробежаться и по ней. Не нужно читать тонны литературы на тему: если вы будете знать, что такое POJO, Entity, и какие требования предъявляются к Entity - будет уже неплохо.
Если вы не знакомы с форматом XML - самое время познакомиться с ним перед прочтением книги. Очень часто конфиг-файлы Hibernate (как и Spring), пишутся в XML-формате, и если он ввергает вас в ужас - читать книгу будет сложнее.
Если вы знакомы с паттернами проектирования (хотя бы по задачам JavaRush), то можно почитать про паттерн DAO и зачем он нужен. DAO очень легко реализуется при помощи Hibernate. Участники стажировки, кстати, будут создавать "даошки" при написании тестового задания (и на самом проекте тоже). Да и в реальной работе их создание - рутинная задача, поэтому лишним это не будет.
Предварительное знакомство со всем вышеперечисленным сильно упростит вашу учебу (да и в работе это, что называется, must-have).
В заключение - небольшое ИМХО о преимуществах и недостатках книги.
Плюсы:
Вполне хороший перевод с английского. Про важность этого пункта, думаю, писать отдельно не стоит. Конечно, оригинал всегда будет лучше, и если вы знаете английский на достаточном уровне - лучше читать именно его. Однако, для тех, кто с английским пока не в ладах, а останавливать из-за этого учебу не хочет - вариант отличный.
Очень широкое покрытие тем. Рассказано почти обо всех "внутренностях" библиотеки. О чем-то очень подробно, о чем-то более скупо. Но в целом, охват получился весьма приличный.
Простой и понятный язык.
Из
минусов могу выделить разве что примеры. На мой взгляд, они могли бы быть проще и лаконичнее. Да и учитывая объем свалившейся на читателя новой информации, начинающему может быть тяжело хотя бы просто скомпилировать и заставить работать все это дело. Не говоря уж о том, чтобы понять, что там в коде происходит. От себя могу порекомендовать - плюньте на клонирование примеров с гитхаба, и набирайте их своими руками. И руку набьете, и понимание будет намного лучше. А еще лучше - после прочтения очередной главы придумайте и реализуйте какую-нибудь задачу сами. Это будет намного продуктивнее, даже если задачка будет совсем простой.
Стоит ли покупать книгу? Однозначно да. Тем более, что ее бумажный тираж - всего 200 экземпляров:)
На основе материалов этой книги я достаточно легко написал свою первую
статью на Хабрахабре.
А администрации JavaRush, на мой взгляд, однозначно стоит добавить ее в список призов своего конкурса:)
Спасибо за внимание, и успехов в обучении!
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ