LINUX.ORG.RU

посоветуйте книгу по работе с Java

 , ,


1

2

Должны быть обзорно описаны:

- фреймворки (знаю только что крут Spring, про остальное не знаю даже названий)

- инструменты рефакторинга

- АОП

- возможности по динамической замене классов

- сборщики мусора и их нюансы

- можно немного про инструменты проектирования

- можно про ORM

Детали не особо интересуют, интересует именно обзорная информация, но позволяющая понять суть, а не для директоров :)

Спасибо!

★★★★★

Последнее исправление: den73 (всего исправлений: 1)

Вряд ли есть такая книжка, не принято тут обзорные вещи делать.

Фреймворки. Их туча на каждый чих, так что лучше с областью определиться. Скажем, Спринг офигеть какой обширный. Исходно он начинался с контейнера для разруливания зависимостей, а сейчас там куча модулей под все случаи жизни. Какая область разработки интересует-то? Веб 1.0, Веб 2.0, видео/игровой сервер, десктоп?

Рефакторинг.

Нужно просто взять идею (https://www.jetbrains.com/idea/ , в самом низу страницы правая кнопка для Community Edition), и повтыкать в хэлп/менюшку Refactoring. Я, по сути, использую только ренейм, Shift+F6. Переименует классы, файлы, строковые константы и все, до чего дотянется.

АОП не нужен, чем он так заинтересовал?

Динамическая замена — не очень; опять же, если запустить Идею в режиме дебаг (Shift + F9), остановиться, изменить код, и нажать Compile (Ctrl + Shift + F9), то код заменится на лету. С ограничениями. Скажем, новый метод не добавить, нужно перезапускать приложение. Еще есть JRebel, но он платный, ни разу с ним не работал.

Сборщики неважны. О них любят много рассказывать, про подбор и тюнинг, на практике это почти никогда не нужно. На хабре есть несколько статей, из недавнего: http://habrahabr.ru/post/269621/ и http://habrahabr.ru/post/269707/ .

Вот что обычно нужно — это параметр запуска -Xmx

java -Xmx512m -jar myProgram.jar

Чтобы не вылазить за пределы 512 Мб памяти. Есть еще Xms и пачка других, но они не так важны.

Проектирование — есть темы про UML, только ни разу не видел от них пользы. Так что бумага, ручка, MSProject, Jira.

ORM. Для небольших приложений хватает и не-ORM-ов, скажем, Spring JDBC template. ORM-ы решают только в больших приложениях, иначе запуск приложения замедлится секунд на 10, так что лично меня они не радуют.

anonymous
()

Вряд ли есть такая книжка (с)

- фреймворки (знаю только что крут Spring, про остальное не знаю даже названий)

гугл. java persistence frameworks, например. По каждой теме тысячи блогопостов со сравнениями. По крайней мере названия и впечатления людей можно извлечь. Советую обращать внимание на даты, в мире всё меняется достаточно быстро, 10-летняя информация уже возможно не актуальна.

- инструменты рефакторинга

Я не видел таких инструментов кроме IDE. Просто заходи в меню Refactor своей IDE и увидишь все инструменты. Ну справку можешь почитать.

- АОП

Видел в документации спринговой главу про АОП, сильно не читал, но некий обзор там есть. Спринг сам по себе использует более низкоуровневый фреймворк, можно выяснить какой и почитать по нему документацию.

- возможности по динамической замене классов

Вероятно тебе нужна документация про ClassLoader-ы. Есть официальная документация, есть Javadoc-и, есть тысячи всяких туториалов и обзорных статей. Хотя насчёт именно замены я не уверен, что JVM такое поддерживает. Есть всякие хаки вроде JRebel и альтернативных JVM. Можно загрузить новый класс с другим именем. Если точнее обозначишь свою задачу, можно попробовать разобраться.

- сборщики мусора и их нюансы

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

- можно немного про инструменты проектирования

Такого не знаю, UML что ли? Непосредственно к Java вроде не относится, редакторов всяких полно, в том числе с кодогенераторами, хотя я к ним скептически отношусь, но может кому помогает...

- можно про ORM

ORM по сути в Java два — Hibernate и JPA. Ну и всякие мелкие обёртки-хелперы над JDBC, их полно.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Legioner

Так и запишем. Нет книжки. Может потом мне надо будет взять несколько уроков.

den73 ★★★★★
() автор топика

Есть две классические книги:
1) Joshua Bloch «Effective Java»
2) Brian Goetz «Java concurrency in practice»

Их надо употреблять до всяческих книг по фреймворкам и после освоения синтаксиса.

+ для понимания Java неплохо разобраться в алгоритмах работы GC, поколениях объектов и настройке этого всего (но книжку тут не знаю - только если кто-нибудь расскажет, или ковыряться в мануалах/сорцах)

shty ★★★★★
()
Последнее исправление: shty (всего исправлений: 1)

Чем ABCL не устраивает? У их есть пример интеграции с жабовской экосистемой.

Oxdeadbeef ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.