Задать вопрос
Ответы пользователя по тегу Java
  • Насколько полезен Hibernate? Сильно ли он упрощает работу?

    @svsanek
    Смотри. Что дает Hibernate - мапинг объектов на реляционную базу. И тут сразу куча вопросов - а как отображать ООП на реляционную модель (где нет наследования, инкапсуляции, полиморфизма). Отсюда много сложностей. Еще возникают такие вопросы - ты получил объект из базы, передал его в какой-нибудь UI - там 10 раз поменяли одно и то же поле - так 10 раз делать апдэйт базы или один? Хайбернейт должен догадаться или программист ему подсказать. Отсюда появляются всякие циклы жизни сущности, кэши и куча всякой дополнительной головной боли. Это если не касаться наследования, отношений один к одному, многие ко многим.
    Мой вердикт - хайбернейт несет много дополнительной нагрузки - не зря по нему столько книг написано.
    Но у него есть и плюсы

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

    Итак плюсы
    1. Ты продолжаешь работать с объектной моделью и забываешь про все эти 100000+ строк sql запросов.
    2. Тебе легко добавлять новые сущности, рулить транзакциями, про оптимизацию думают за тебя (кэши)
    3. Ты вообще забыл что такое джойны и по каким полям. Ты начинаешь верить в волжебство. Квэри билдеры просто сумасшедшие. А на груви код в одну строку просто сводит с ума!
    4. У тебя реально много таблиц (сущностей)
    5. Ты познал хайбернейт и оформил код конвеншн на проекте и вообще забыл, что такое проблемы

    Минусы
    1. Если у тебя 2 таблицы - нафига тащить тонну сложностей в свой проект. Посмотри книги по хайбернейту. Книга только по одной технологии джава. Целая книга!!!
    2. Ты должен четко понимать цикл жизни сущности. Когда она в сессии, когда нет, как она попадает в сессию, что с кэшем, а если у сущности релейшеншипы, а если лэйзи лоадинг. Просто тонна всего.
    3. Ты понимаешь, что ты перестаешь рулить запросами - и что-то оптимизировать нереально сложно. Что в sql правиться одной строчкой - используя хайбернейт неудивительно если ты перепишешь всю иерархию наследования с попутным рефакторингом контроллеров, юйа и т.д.
    4. В один момент ты можешь понять, что пропустил тему с лэйзи лоадингом и начал класть на лопатки оракл. А знающие люди подскажут сколько стоит это поправить.
    5. И да. Если тебе нужен перформанс - пиши запросы сам. ORM тут явно не подойдет.

    По-этому - просто составь табличку плюсов и минусов и реши.
    Хайбернейт крут, только когда он обоснован
    Ответ написан
    Комментировать
  • Что можно почитать по Java?

    @svsanek
    Лучше посмотри видеокурсы! Я в свое время копал в эту сторону, много чего пересмотрел - курсы от Linda.com, courcera - да кучу всего. На мой взгляд - самые лучшие курсы - www.youtube.com/channel/UCuIctN7x71qam9K_ZxS1W2A
    Просто бомба.
    Ответ написан
    Комментировать
  • Какие есть видео курсы по Java?

    @svsanek
    отличные android курсы на www.udacity.com прям от google. В этих курсах есть и про программирование на java. Впринципе если под андройд разрабатывать - на первое время хватит.
    Ответ написан
    Комментировать