5 книг для Enterprise Java разработчика


Оглавление (нажмите, чтобы открыть):

«Писать на Java не работа, писать на Java — праздник»: книги для начинающих Java-программистов

Java — сильно типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Приложения Java обычно транслируются в специальный байт-код, поэтому они могут работать на любой компьютерной архитектуре с помощью виртуальной Java-машины. Дата официального выпуска — 23 мая 1995 года.

Несмотря на возраст, Java остаётся самым популярным и самым востребованным языком. Чтобы упростить его изучение, мы подготовили подборку книг по программированию на Java, которые пригодятся начинающим разработчикам.

Java: The Legend

В этой книге рассказывается о развитии языка Java. Рассматриваются его история, влияние, которое он оказал на другие языки, становление Java EE, а также его будущее: Java 9, Project Panama, Project Valhalla и интернет вещей.

Introduction to Programming Using Java (7-е издание)

Эта книга — учебник по программированию для начинающих, где в качестве языка выбран Java. Каждый раздел снабжён упражнениями, а в конце прилагается весь необходимый код.

Изучаем Java

Язык Java имеет крайне дружественный синтаксис, но это не значит, что разобраться в нем так уж легко. Книга «Изучаем Java» построена на визуализации и несколько отличается от классических учебников. Она имеет очень подробное изложение, массу живых примеров и упражнения для закрепления в каждом разделе. Подойдёт всем тем, кто ничего не слышал про программирование, в том числе и про объектно-ориентированное, так как Java — полностью объектно-ориентированный язык, и изучать его нужно именно в таком контексте.

В общем, «Изучаем Java» — это не только бестселлер, но и благодаря нестандартной форме обучения и подачи материала одна из лучших книг для начинающих в принципе.

Think Java

Эта книга отлично подойдёт в качестве учебного пособия для начинающих программистов. Сложность тем постепенно увеличивается: сперва обсуждаются базовые принципы, а затем — рекурсия и ООП. Все примеры кода выложены на GitHub.

Программирование на Java для начинающих

Книга довольно небольшая (около 190 страниц). В ней достаточно сжато подаются основы языка Java, но после прочтения книги станет возможным писать собственные приложения на Java. Пособие наполнено иллюстрациями, поясняющими результат исполнения кода. Книга подойдет для тех, кому нужно максимально быстро освоить синтаксис Java.

Java Programming for Kids

Цель этой книги — помочь в изучении Java. В ней описываются принципы создания приложений с графическим пользовательским интерфейсом на примере двух игр: «Крестики-нолики» и «Пинг-понг». Хотя книга и рассчитана на детей старше 12, программистам постарше она тоже подойдёт. Последняя глава — бонусная: в ней рассказывается, как публиковать свой код на GitHub.

Философия Java

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

Object-Oriented vs. Functional Programming

Споры между фанатами ООП и функциональщиками не прекращаются уже много лет. В своей книге автор обсуждает сходства этих парадигм программирования и тенденцию по их сближению. Примеры на Java помогут вам:

  • узнать, как лямбды (анонимные функции) помогают объектно-ориентированным языкам работать с параллелизмом и конкурентностью;
  • понять, как SOLID — 5 основных принципов ООП — сопоставляются с возможностями функционального подхода;
  • изучить главные шаблоны ООП и научиться применять их в функциональном программировании.

What’s New in Java 8

Эта книга — короткое введение в Java 8. Она поможет разобраться в основных фичах этой версии языка, таких как Project Lambda, Date-Time API, Streams и Nashorn.

Java. Библиотека профессионала. Том 1. Основы

Книга ориентирована на читателей, уже имеющих опыт в программировании на каком-либо языке. В десятом издании рассматривается Java SE 8.

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

Java for Python Programmers

Эта книга рассчитана на тех, кто уже знает Python. Сперва рассматривается простая Java-программа, затем рассказывается об основных конструкциях, которые присутствуют почти во всех языках. После основ разбираются уникальные фичи Java.

Java: A Beginner’s Guide

Краткое введение в Java от Oracle. Описываются его история и философия, а также основы разработки.

Также рекомендуем изучить стайлгайд от Google, спецификации Java SE и официальные руководства по стандартной и энтерпрайз-версиям языка.

Если вы знаете другие книги, которые стоит разместить в этой подборке, делитесь ими в комментариях.

Почему Java выбор для enterprise?

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

Так вот, почему же все считают Java языком программирования для enterprise решений? С чем это связано? Чем он плох для изучения в институте? Чем он плох для проектов с открытым исходным кодом?

Не сочтите меня невеждой, просто не люблю я все принимать за чистую монету =)

Спасибо за ответы, если они будут =)

  • Вопрос задан более трёх лет назад
  • 4748 просмотров

Так вот, почему же все считают Java языком программирования для enterprise решений? С чем это связано?

Java кроссплатформенна, разработка на Java, в отличие от того же C++, гораздо проще и быстрее (нет возни с указателями, выделением и освобождением памяти и пр.), также намного легче в освоении, чем тот же C++, при этом она не настолько «игрушечная», как популярные скриптовые языки (Python, Ruby и пр.), любой C++-программист без труда ее освоит. Это главные плюсы для большого бизнеса, так как риски срыва проектов достаточно низкие, надежность достаточно высокая (хотя и первое, и второе зависит еще и от наличия прямых рук у разработчиков, и от наличия вменяемого руководства (PM, архитектор)), язык популярен и достаточно просто для изучения, соответственно — достаточно большое количество спецов. Сопутствующие минусы, к примеру, требовательность к ресурсам, не так важны для enterprise — деньги-то есть (всегда можно докупить еще десяток новеньких серверов или проапгрейдить уже имеющиеся).

Чем он плох для проектов с открытым исходным кодом?

Как искать Java-разработчика: пособие для начинающих

Я занимаюсь подбором ИТ-специалистов более 7 лет, за это время я получила обширную экспертизу в этой области. Думаю, данный материал будет интересен как рекрутерам с опытом работы с данными специалистами, так и тем, кто только знакомится с миром ИТ, поэтому информацию постараюсь дать максимально просто.

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

Java-программист или Java-разработчик (не путать с JavaScript) занимается разработкой программного обеспечения (ПО) обычно в команде программистов. Написанный программный код программист сохраняет в специальном хранилище, которое называется системой контроля версий (Git и тп) . Кроме того, он должен исправлять свои ошибки в написанном коде, уведомление о которых поступает ему от тестировщиков.

Хороший программист (если мы нанимаем специалиста с опытом) имеет знания и практический опыт в технологиях Java, пишет качественный код, допускает не критичное количество ошибок, постоянно в курсе новых технологий и методов разработки, потому что он непрерывно занимается самообразованием.

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

Особенности:

  1. Айтишники в основном более интровертны и обычно любят говорить по делу. Предпочитают общаться по электронной почте и не любят, когда им звонят. Отчасти потому, что квалицированному специалисту постоянно названивают рекрутеры и отвлекают от работы, отчасти потому что они лучше воспринимают информацию и гораздо эффективнее общаются по переписке.
  2. Программист обычно сосредоточен на конкретной задаче, над которой он работает не отвлекаясь.
  3. Уровень интеллекта у айтишников в среднем достаточно высок, так как они получили хорошее математическое образование.
  4. Айтишники любят более неформальное общение и неформальный подход к работе.
  5. Они в основном совы и предпочитают работать с 11:00. Также многие достаточно свободолюбивы, не любят дресс-код итд. В таких условиях они обычно достигают лучших результатов.

1. Какова ситуация спроса и предложения на кадровом рынке по этой вакансии, что важно знать о компании, вакансии и условиях работы, чтобы выполнить задачу корректно и в срок, о чем важно спросить работодателя.

На рынке ИТ, в том числе и Java-разработчиков, даже в кризис правила игры определяет соискатель. Предложений достаточно для того, чтобы средний кандидат мог найти работу за 1-2 недели, выбирая между несколькими предложениями о работе. В среднем, на одну вакансию в сфере ИТ претендует 3 кандидата (из исследования hh.ru). Тем не менее, Java не является редкой технологией, эта платформа достаточно популярна у программистов, поэтому найти нужное количество кандидатов для собеседования возможно, но потока по этой вакансии у вас не будет.

При снятиии потребности у заказчика (работодателя) необходимо сразу получить полное описание вакансии, так как составить её самостоятельно без технических знаний в данной сфере рекрутер не сможет.

Обычно требования к джависту состоят из следующих блоков:

– Требование к образованию – чаще всего необходим кандидат с высшим техническим образованием.

– Знание и опыт коммерческой разработки на языке Java (не менее определённого количества лет), то есть студенческие и личные проекты работодателя не интересует.

– Часто указывается знание паттернов проектирования, но не всегда. Обычно успешный разработчик их знает и умеет применять.

– Знание определённого набора фреймворков (Hibernate, Spring итп.) и библиотек (например, JQuery). В каждой компании они требуются свои. Важно в этом пункте сразу уточнить у работодателя, что является обязательным, а что будет плюсом.

– Знание баз данных, например – MS SQL, Oracle и так далее.

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

– Наличие сертификатов по технологиям Java и другим – требуется редко. Сертификаты в данной сфере не показатель профессионализма, более того, если кандидат в первую очередь хвастается ими, а не своим опытом и знаниями, это обычно тревожный звоночек.

Обязательно уточните у работодателя следующее:

  1. Какой график предусмотрен для кандидата, есть ли переработки, имеется ли возможность график сдвигать?
  2. Присутствует ли дресс-код и насколько строгий?
  3. Где будет располагаться рабочее место кандидата, будет ли это опен спейс или в компании кабинетная система, будет ли он находиться среди коллег-айтишников или среди коллег из других подразделений?
  4. В вопросе компенсации важно иметь четкое представление, что есть оклад, что есть премия и бонусы, белая ли зарплата.
  5. Обязательно узнать обо всех аспектах соц. пакета, он обычно у айтишников очень широкий: кроме ДМС это может быть компенсация фитнеса, бесплатная столовая, 100% оплата больничного, и даже игровые приставки в офисе.
  6. На каком проекте или каких проектах будет работать данный сотрудник, сколько человек в команде, и вообще, лучше честно и прямо спросить: «Чем эта вакансия может заинтересовать кандидата, что мы можем рассказать кандидату, чтобы он загорелся». Это очень хороший вопрос, и адекватный нанимающий менеджер охотно расскажет про все преимущества.
  7. Подразумевается ли профессиональный и карьерный рост на данной позиции?
  8. Какие знания и навыки из описания вакансии обязательные (без которых резюме не будут смотреть) и какие желательные. Например, «знание Java – от 2 лет опыта работы и знание Spring.MVC – обязательно”. Уточните у заказчика, может ли кандидат не указать каких-то из этих ключевых слов в резюме.

2. Как представлять вакансию соискателям (нюансы и правила создания презентации вакансии).

Здесь нужно исходить их трёх основных мотиваторов айтишника:

  1. Интересные проекты.
  2. Технологии, с которыми он будет работать (например, ему уже надоела та платформа, на которой у него большой опыт, но ему очень хочется работать только с Java).
  3. Повышение своего дохода. Этот пункт может быть заменен на комфортность работы (дорога до офиса, удобство графика, наличие столовой, хорошего места для питания, парковки) или команду (насколько хороший микроклимат в команде и насколько она профессиональная).

В описании вакансии для публикации на ресурсах и в соц сетях обязательно хорошо распишите условия, избегайте казённых и шаблонных фраз. В заголовке достаточно написать «Программист Java” или “Ведущий Java-разработчик».

Составьте шаблон письма кандидату, где вы представляетесь, сообщаете, что у вас есть позиция и сразу пишите, что это Java-программист, далее описание вакансии и информация о компании. И, конечно, здесь распишите все преимущества компании, вакансии и проекта, которые вы ранее получили у заказчика (см. выше).

Кандидату лучше сначала высылать письмо, и потом звонить: “Я высылала вам письмо с вакансией” работает лучше, чем внезапный звонок.

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

3. Где размещаться (источники поиска, в том числе специальные и нетривиальные).

По статистике всё-таки больше кандидатов на Java находится на hh.ru, а лучшие приходят по рекомендации коллег-программистов.

Источники:

  1. hh.ru (и активный , и пассивный поиск).
  2. LinkedIn (лучше заранее работать над своей сетью контактов в тех сферах, где вы ищете и будете искать людей).
  3. Рекомендации других сотрудников-айтишников.
  4. Профессиональные форумы sql.ru и rsdn.ru, vingrad. Периодически появляются новые, теряют актуальность старые. Поэтому постоянно ищите новые ресурсы.
  5. Другие источники: ITMozg, Brainstorage, Programmersforum, Javatalks, Github.
  6. Facebook, Twitter, Вконтакте, жж-сообщества по программированию.
  7. Корпоративный сайт компании или агентства.

4. Стратегия поиска (отклики, активный обзвон, соцсети, объявления и т.д.).

1. Размещение вакансии на hh.ru, сбор откликов и активный поиск.

Для эффективного поиска лучше создать автопоиск на основании ключевых слов, которые соответствуют обязательным требованиям заказчика, например если это опыт в Java и фреймворк Hibernate, наш запрос будет выглядеть как

Java and Hibernate

Количество лет опыта мы будем определять уже по резюме.

2. Публикация объявления о вакансии со ссылкой на описание в соцсетях и на LinkedIn. В зависимости от соцсети преамбула может быть более или менее формальной и должна быть привлекательной и интересной. Попросите своих знакомых сделать репост ваших публикаций.

3. Публикация объявления на профессиональных форумах. Обязательно сначала прочитайте правила форума и раздела «Работа» или «Вакансии». За невыполнение требований вас забанят, а вакансию удалят. Например, на sql.ru публикацию нельзя редактировать, обязательно нужно указать оклад, название компании или агентства и город.

5. Как проводить первичный отбор по телефону (важные правила переговоров и критерии отбора).

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

Также, ваша задача – максимально дружелюбно и лаконично передать основную информацию, чтобы привлечь кандидата и чтобы он согласился на встречу. Хорошо, если у вас на первом очном интервью сразу будет присутствовать технический специалист, обязательно в таком случае упоминайте, что интервью будет техническое. К HR-интервью и агентствам айтишники относятся с осторожностью и некой опаской, это факт.

Мастер Йода рекомендует:  React — всё по этой теме для программистов

6. Особенности очного общения и оценки кандидатов.

Для айтишников не рекомендуется использование психологических тестов, так как они во-первых, показывают свою невалидность, во-вторых, в данном сегменте рынка труда психологические тесты и вопросы могут вызвать негативную реакцию.

В процесс оценки по желанию заказчика может включаться выполнение тестового задания или предоставление примеров программного кода разработчика.

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

Если вы подбираете Java-программиста для компании-заказчика, вам нужно будет развёрнутое интервью, чтобы собрать необходимую информацию для заказчика о кандидате.

В таком случае советую разработать таблицу со списком основных технологий по данной вакансии и столбцами: опыт работы (лет), количество проектов, уровень владения и опросить подробно о том, с чем кандидат работал, как он оценивает знания технологии, как много проектов сделал с использованием данной технологии.

Обязательно давайте обратную связь кандидату по телефону или по электронной почте в любом случае.

6. Подготовка кандидатов к интервью в компании.

Здесь нет никаких особенностей, кандидата необходимо снабдить всей необходимой информацией о компании и условиях работы, так как технари на эти вопросы не всегда могут ответить кандидату. Очень желательно рекрутеру присутствовать хотя бы на первом интервью с нанимающим менеджером и техническим специалистом, даже несмотря на то, что 90% того, что будет обсуждаться, не-технарю будет непонятно. Это даст вам возможность скорректировать свой поиск и лучше подобрать хорошего кандидата данному заказчику.

Спасибо за внимание, я надеюсь, что поиск айтишника, если он вам предстоит, будет лёгким и интересным!

Массив настольных книг web-разработчика — 15 книг

Подборка книг, которая, по моему мнению, должна быть в личной библиотеке у каждого web-разработчика/программиста.

Безусловно, это всего лишь ИМХО!

Однако эти книги признаны многими успешными и опытными программистами как лучшее, что можно найти в интернете и/или магазине для новичков.

Подборка по большей части нацелена на темную сторону Java. Однако будет полезна так же тем, кто учится/работает с C#, Python, PHP, «Ruby на чем-то» и прочем море языков и фреймворков.

Хотя этот портал далек от целевой аудитории, я надеюсь, что подборка все же пригодится кому-нибудь.

Пользуясь случаем, я хотел бы порекомендовать свой ресурс, где размещаю переводы некоторых статей, а также свои собственные по web-разработке: javaHero.ru()

ISBN: 978-5-496-01127-3, 978-0131872486
Год издания: 2015
Издательство: Питер
Серия: Классика Computer Science
Язык: Русский

Впервые читатель может познакомиться с полной версией этого классического труда, который ранее на русском языке печатался в сокращении. Книга, выдержавшая в оригинале не одно переиздание, за глубокое и поистине философское изложение тонкостей языка Java считается одним из лучших пособий для программистов. Чтобы по-настоящему понять язык Java, необходимо рассматривать его не просто как набор неких команд и операторов, а понять его «философию», подход к решению задач, в сравнении с таковыми в других языках программирования. На этих страницах автор рассказывает об основных проблемах написания кода: в чем их природа и какой подход использует Java в их разрешении. Поэтому обсуждаемые в каждой главе черты языка неразрывно связаны с тем, как они используются для решения определенных задач.

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

ISBN: 978-5-7502-0064-1, 0-7356-1967-8
Год издания: 2012
Издательство: Русская Редакция
Язык: Русский

Более 10 лет первое издание этой книги считалось одним из лучших практических руководств по программированию. Сейчас эта книга полностью обновлена с учетом современных тенденций и технологий и дополнена сотнями новых примеров, иллюстрирующих искусство и науку программирования. Опираясь на академические исследования, с одной стороны, и практический опыт коммерческих разработок ПО — с другой, автор синтезировал из самых эффективных методик и наиболее эффективных принципов ясное прагматичное руководство. Каков бы ни был ваш профессиональный уровень, с какими бы средствами разработками вы ни работали, какова бы ни была сложность вашего проекта, в этой книге вы найдете нужную информацию, она заставит вас размышлять и поможет создать совершенный код. Книга состоит из 35 глав, предметного указателя и библиографии.

Более 10 лет первое издание этой книги считалось одним из лучших практических руководств по программированию. Сейчас эта книга полностью обновлена с учетом современных тенденций и…

ISBN: 978-5-93286-176-9
Год издания: 2010
Издательство: Символ-Плюс
Серия: Профессионально
Язык: Русский

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

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

ISBN: 978-0596009205
Год издания: 2005
Издательство: O’Reilly Media
Серия: Head First
Язык: Английский

It has taken four years, but with Head First Java the introductory Java book category has finally come of age. This is an excellent book, far more capable than any of the scores of Java-for-novices books that have come before it. Kathy Sierra and Bert Bates deserve rich kudos—and big sales—for developing this book’s new way of teaching the Java programming language, because any reader with even a little bit of discipline will come away with true understanding of how the language works. Perhaps best of all, this is no protracted «Hello, World» introductory guide. Readers get substantial exposure to object-oriented design and implementation, serialization, neatwork programming, threads, and Remote Method Invocation (RMI).

It has taken four years, but with Head First Java the introductory Java book category has finally come of age. This is an excellent book, far more capable than any of the scores…

ISBN: 0-596-00712-4
Год издания: 2004
Издательство: O’Reilly Media
Язык: Английский

You’re not alone. At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don’t want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns-the lessons learned by those who’ve faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on. something else. Something more challenging. Something more complex. Something more fun.

You want to learn about the patterns that matter—why to use them, when to use them, how to use them (and when NOT to use them). But you don’t just want to see how patterns look in a book, you want to know how they look «in the wild». In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java’s built-in pattern support in your own code.

You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you’re up a creek without a design pattern.

Most importantly, you want to learn the «secret language» of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You’ll easily counter with your deep understanding of why Singleton isn’t as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter.

With Head First Design Patterns, you’ll avoid the embarrassment of thinking Decorator is something from the «Trading Spaces» show. Best of all, in a way that won’t put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts.

If you’ve read a Head First book, you know what to expect—a visually rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, Head First Design Patterns will load patterns into your brain in a way that sticks. In a way that lets you put them to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team.

You’re not alone. At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don’t want to reinvent the wheel (or…

ISBN: 978-5-8459-0579-6
Год издания: 2007
Издательство: Вильямс
Язык: Русский

Создание компьютерных систем — дело далеко не простое. По мере того как возрастает их сложность, процессы конструирования соответствующего программного обеспечения становятся все более трудоемкими, причем затраты труда растут экспоненциально. Как и в любой профессии, прогресс в программировании достигается исключительно путем обучения, причем не только на ошибках, но и на удачах — как своих, так и чужих. Книга дает ответы на трудные вопросы, с которыми приходится сталкиваться всем разработчикам корпоративных систем. Автор, известный специалист в области объектно-ориентированного программирования, заметил, что с развитием технологий базовые принципы проектирования и решения общих проблем остаются неизменными, и выделил более 40 наиболее употребительных подходов, оформив их в виде типовых решений. Результат перед вами — незаменимое руководство по архитектуре программных систем для любой корпоративной платформы. Это своеобразное учебное пособие поможет вам не только усвоить информацию, но и передать полученные знания окружающим значительно быстрее и эффективнее, чем это удавалось автору.

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

Создание компьютерных систем — дело далеко не простое. По мере того как возрастает их сложность, процессы конструирования соответствующего программного обеспечения становятся все…

ISBN: 978-5-8459-1118-6, 0-672-32838-0
Год издания: 2007
Издательство: Вильямс
Язык: Русский

Данная книга представляет собой краткое пособие по основным командам операционной системы Linux. Читатель найдет в ней описание большинства команд, необходимых ему в повседневной работе. В первых главах представлены самые элементарные сведения о

Данная книга представляет собой краткое пособие по основным командам операционной системы Linux. Читатель найдет в ней описание большинства команд, необходимых ему в повседневной…


ISBN: 978-5-496-00942-3
Год издания: 2014
Издательство: Питер
Язык: Русский

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java.
Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода.
Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP). В ней вы найдете максимально ценную информацию, изложенную с точки зрения эксперта по технологиям Java для предприятий.
Благодаря этой книге вы:
— познакомитесь с новейшей версией платформы Java EE;
— исследуете и научитесь использовать API EJB и JPA — от компонентов-сущностей, компонентов-сеансов до компонентов, управляемых сообщениями, и многого другого;
— откроете для себя API для разработки на веб-уровне, в частности JSF, Facelet и Expression Language;
— научитесь обращаться с веб-службами SOAP и RESTful, а также с другими службами, доступными в новейшей версии Java EE;
— узнаете, как создавать динамические пользовательские интерфейсы для корпоративных и транзакционных Java-приложений.

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java.
Данная книга представляет собой логичное пошаговое руководство, в котором…

ISBN: 978-5-8459-1918-2 , 978-0-07-180855-2
Год издания: 2015
Издательство: Диалектика
Серия: Полное руководство
Язык: Русский

Книга Java 8. Полное руководство является исчерпывающим руководством по программированию на языке Java. В этом справочном пособии, полностью обновленном с учетом последней версии Java SE 8, поясняется, как разрабатывать, компилировать, отлаживать и выполнять программы на языке программирования Java. Книга написана Гербертом Шилдтом, автором популярных во всем мире книг по языкам программирования, таким образом, чтобы охватить все языковые средства Java, включая синтаксис, ключевые слова, основные принципы объектно-ориентированного программирования, значительную часть прикладного программного интерфейса Java API, библиотеки классов, аплеты и сервлеты, компоненты JavaBeans, библиотеки AWT и Swing, а также продемонстрировать их применение на простых и наглядных примерах. В книге «Java 8. Полное руководство» не обойдены вниманием и новые средства, появившиеся в версии Java SE 8, в том числе лямбда-выражения, стандартные интерфейсные методы, библиотека потоков ввода-вывода, а также технология JavaFX.
В книге «Java 8. Полное руководство» рассматриваются следующие вопросы:
— Типы данных, переменные, массивы и операции
— Управляющие и условные операторы
— Классы, объекты и методы
— Перегрузка и переопределение методов
— Наследование
— Интерфейсы и пакеты
— Обработка исключений
— Многопоточное программирование
— Перечисления, автоупаковка и автораспаковка
— Потоки ввода-вывода
— Обобщения
— Лямбда-выражения
— Обработка символьных строк
— Каркас коллекций CollectioFramework
— Работа в сети
— Обработка событий
— Библиотеки AWT и Swing
— Прикладной программный интерфейс Concurrent API
— Прикладной программный интерфейс Stream API
— Регулярные выражения
— Технология JavaFX
— Компоненты JavaBeans
— Аплеты и сервлеты

Книга Java 8. Полное руководство является исчерпывающим руководством по программированию на языке Java. В этом справочном пособии, полностью обновленном с учетом последней версии…

ISBN: 978-5-94074-919-6 , 978-1-449-37077-0
Год издания: 2014
Издательство: ДМК пресс
Серия: Функциональное программирование
Язык: Русский

Если вы имеете опыт работы с Java SE, то из этой книги узнаете об изменениях в версии Java 8, обусловленных появлением в языке лямбда-выражений. Вашему вниманию будут представлены примеры кода, упражнения и увлекательные объяснения того, как можно использовать эти анонимные функции, чтобы сделать код проще и чище, и как библиотеки помогают в решении прикладных задач.
Лямбда-выражения — относительно простое изменение в языке Java: в первой части книги показано, как правильно ими пользоваться. В последующих главах демонстрируется, как лямбда-выражения позволяют повысить производительность программы за счет распараллеливания, писать более простой конкурентный код и точнее моделировать предметную область, в том числе создавать более качественные предметно-ориентированные языки.

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

Если вы имеете опыт работы с Java SE, то из этой книги узнаете об изменениях в версии Java 8, обусловленных появлением в языке лямбда-выражений. Вашему вниманию будут представлены…

ISBN: 978-5-459-00435-9
Год издания: 2011
Издательство: Питер
Серия: Head First
Язык: Русский

В мире постоянно кто-то сталкивается с такими же проблемами программирования, которые возникают и у вас. Многие разработчики решают совершенно идентичные задачи и находят похожие решения. Если вы не хотите изобретать велосипед, используйте готовые шаблоны (паттерны) проектирования, работе с которыми посвящена эта книга.
Паттерны появились, потому что многие разработчики искали пути повышения гибкости и степени повторного использования своих программ. Найденные решения воплощены в краткой и легко применимой на практике форме.
Особенностью данного издания является уникальный способ подачи материала, выделяющий серию «Head First» издательства O’Reilly в ряду множества скучных книг, посвященных программированию. Книга будет интересна широкому кругу веб-разработчиков, от начинающих до профессионалов, желающих освоить работу с паттернами проектирования.

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

ISBN: 978-5-496-00544-9
Год издания: 2014
Издательство: Питер
Язык: Русский

В этой книге представлен оригинальный и практичный взгляд на новые возможности Java 7 и новые языки для виртуальной машины Java (JVM), а также рассмотрены некоторые вспомогательные технологии, необходимые для создания Java-программ завтрашнего дня.
Книга начинается с подробного описания новшеств Java 7, таких как работа с ресурсами в блоке try (конструкция try-with-resources) и новый неблокирующий ввод-вывод (NIO.2). Далее вас ждет экспресс-обзор трех сравнительно новых языков для виртуальной машины Java — Groovy, Scala и Clojure. Вы увидите четкие понятные примеры, которые помогут вам ознакомиться с десятками удобных и практичных приемов. Вы изучите современные методы разработки, обеспечения параллелизма, производительности, а также многие другие интересные темы.
В этой книге:
— новые возможности Java 7;
— вводный курс по работе с языками Groovy, Scala и Clojure;
— обсуждение проблем многоядерной обработки и параллелизма;
— функциональное программирование на новых языках для JVM;
— современные подходы к тестированию, сборке и непрерывной интеграции.

Мастер Йода рекомендует:  10 советов, как составлять JavaScript без jQuery Javascript

В этой книге представлен оригинальный и практичный взгляд на новые возможности Java 7 и новые языки для виртуальной машины Java (JVM), а также рассмотрены некоторые…

ISBN: 978-5-8459-1869-7
Год издания: 2014
Издательство: Вильямс
Язык: Русский

Это полностью обновленное с учетом версии Java SE 7 издание представляет собой солидное справочное руководство по языку программирования Java для тех, кто разрабатывает настоящие проекты на платформе Java.
В этом надежном и полезном практическом руководстве описаны важные языковые средства и библиотеки, проиллюстрированные тщательно подобранными и проверенными примерами из практики программирования на Java. Приведенные примеры просты для понимания и практически полезны и послужат неплохой отправной точкой для написания собственного кода.
Из первого тома вы узнаете, что нового появилось в версии Java SE 7, в том числе об:
— основных усовершенствованиях в самом языке,
— ромбовидном операторе,
— операторе try с ресурсами,
— перехвате нескольких исключений.

Исходный код всех приведенных примеров обновлен с учетом нововведений в версии Java SE 7, а их полное описание изящно вплетено в общую канву подробных пояснений основных понятий Java.
В первом томе настоящего издания рассматриваются следующие вопросы:
— Среда программирования на Java;
— Объекты, классы и наследование;
— Интерфейсы и внутренние классы;
— Рефлексия и прокси-объекты;
— Программирование графики;
— Обработка событий;
— Компоненты пользовательского интерфейса в Swing;
— Развертывание приложений и аплетов;
— Обработка исключений;
— Протоколирование и отладка программ;
— Обобщенное программирование;
— Архитектура коллекций;
— Многопоточная обработка.

Подробное рассмотрение более развитых языковых средств Java, включая новый прикладной интерфейс API для ввода-вывода в файлы и утилиты параллелизма, предлагается во втором томе настоящего издания.
Об авторах

Кей Хорстманн — профессор факультета вычислительной техники в Университете Сан-Хосе, обладатель звания «Чемпион по Java» и частый докладчик на многих отраслевых конференциях. Автор книги Scala for Impatient (издательство Addison-Wesley, 2012 г.), а также один из авторов книги JavaServer Faces. Библиотека профессионала, 3-е изд. (пер. с англ., ИД «Вильямс», 2011 г.).

Гари Корнелл имеет более чем 20-летний опыт обучения и написания книг по программированию. Является одним из основателей издательства Apress. Он написал множество книг-бестселлеров для профессионалов, попал в финал конкурса Jolt Award, а также стал обладателем звания «Выбор читателей» в Visual Basic Magazine.

Это полностью обновленное с учетом версии Java SE 7 издание представляет собой солидное справочное руководство по языку программирования Java для тех, кто разрабатывает настоящие…

ISBN: 978-5-8459-1870-3
Год издания: 2014
Издательство: Вильямс
Серия: Библиотека профессионала
Язык: Русский

Это полностью обновленное для версии Java SE 7 издание представляет собой солидное справочное руководство по языку программирования Java для тех, кто разрабатывает настоящие проекты на платформе Java.
В этом надежном и полезном практическом руководстве описаны расширенные языковые средства, библиотеки и прикладные интерфейсы, проиллюстрированные тщательно подобранными и проверенными примерами из практики программирования на Java. Приведенные примеры просты для понимания, практически полезны и служат неплохой отправной точкой для написания собственного кода.
Из второго тома книги вы узнаете о новых развитых функциональных возможностях, внедренных в версии Java SE 7, в том числе о новом прикладном интерфейсе API для файлового ввода-вывода и дополнительных возможностях разработки графических пользовательских интерфейсов. Исходный код всех приведенных примеров обновлен с учетом нововведений в версии Java SE 7, а их полное описание изящно вплетено в общую канву подробных пояснений расширенных средств программирования на Java. Во втором томе настоящего издания рассматриваются следующие вопросы.
— Потоки ввода-вывода, файловый ввод-вывод и регулярные выражения;
— XML;
— Сетевое программирование;
— Средства программирования баз данных;
— Интернационализация;
— Обработка событий;
— Расширенные средства библиотек Swing и AWT;
— Компоненты JavaBeans;
— Веб-службы;
— Специальные вопросы безопасности на платформе Java;
— Обработка аннотаций;
— Распределенные объекты;
— Собственные методы.

Подробное рассмотрение основных языковых средств Java, включая объекты, классы, наследование, интерфейсы, события, исключения, графику, основные компоненты библиотек Swing и AWT, обобщения, многопоточную обработку и отладку программ, предлагается в первом томе настоящего издания.

Об авторах
Кей Хорстманн — профессор факультета вычислительной техники в Университете Сан-Хосе, имеет звание «Чемпион по Java» и является частым докладчиком на многих отраслевых конференциях. Автор книги Scala for Impatient, а также один из авторов книги JavaServer Faces. Библиотека профессионала, 3-е издание (пер. с англ., ИД «Вильямс», 2011 г.).

Гари Корнелл имеет более чем 20-летний опыт обучения и написания книг по программированию. Является одним из основателей издательства Apress. Он написал множество книг-бестселлеров для профессионалов, попал в финал конкурса Jolt Award и удостоен звания «Выбор читателей» в Visual Basic Magazine.

Это полностью обновленное для версии Java SE 7 издание представляет собой солидное справочное руководство по языку программирования Java для тех, кто разрабатывает настоящие…

�� 5 книг для Enterprise Java разработчика. #[email protected] #[email protected]

Подборка книг для Enterprise Java разработчика. 5 книг-mustread от программиста с большим опытом. Подойдет как для начинающих, так и уже опытных читателей.

5 книг для Enterprise Java разработчика

Комментарии (16)

Александр Молостов

тут бы SE закончить изучать, уже год как в процессе)) Подкиньте воли

Александр Зуб

Александр, А это твой первый язык?

Александр Молостов

Александр, да, самоучусь. Начал с Шилдта, потом HeadFirst, потом HeadFirst JSP and Servlet (на англ), а пготмо я начал читать Эккеля. и застрял в нем на 4 месяца уже )))

Никита Кальнов

Александр, если бы был не первый язык, можно было бы быстренько прочитать Core Java SE for Impatient)

Андрей Власов

Александр, присутствует ли практический кодинг в процессе обучения?

Никита Розенберг

Андрей, без практики, теория — юзлесс

Никита Розенберг

Андрей, я ничего не писал. Ты меня с кем-то путаешь. Лично я получаю практику в вузе

Андрей Власов

Никита, не с кем-то, а с автором поста Александром, это очевидно, а спутал потому, что ты ответил на мой вопрос, этому Александру заданный. И ответил непонятно зачем какой-то бессмысленной цитатой.

Никита Розенберг

Андрей, чот ты в контекст вообще не можешь. Александр прокомментировал пост, созданный автором паблика, ты ответил комментатору вопросом:»А практикуешься ли ты?» И я ответил тебе, что знания знаниями, а без практики ты никому не нужен.

Андрей Власов

Никита, я тебе прямо скажу, эта твоя цитата здесь — обычный мусор. Писать такие цитаты здесь, все равно, что прийти в боксерский клуб и рассказывать, что бокс нельзя изучать по книгам. Меня интересует время, которое кто либо затратил на практическое освоение всего объема материала, описанного в книге Шилдта. Ты не мог бы поделиться чем-то более ценным?

Александр Молостов

Андрей, в HeadFirst и по Эккелю делаю и разбираю каждое упражнение. Вообще, по Эккелю приходится часто «догугливать»

Геннадий Шевченко

Александр, посмотри на ютубе letsCode канал — станет понятно как это все использовать в проекте. А воли где взять — смотри зарплаты java-разработчиков на hh.ru

Геннадий Шевченко

Александр, еще есть канал на ютубе KK JavaTutorials — там хорошо по Spring Boot объясняет и показывает

Александр Молостов

Геннадий, хах, на hh постоянно захаживаю, эт да)) Впринципе, это и есть основной мотиватор все это изучать

Олег Баев

Я думал правда что интересное, а тут и не пахнет никаким энтерпрайзом. Книги отличные, но читать их надо пока джуниор или миддл, сеньор их все наизусть знать должен.

Сеймур Айвазов

Сделай подборку книг по архитектуре андроид приложений плз

Разработчик Java Enterprise

  • Умение работать целиком и полностью в Java EE: проектировать, разрабатывать, тестировать.
  • Владение Java-спецификациями, описывающими архитектуру серверной платформы уровня Enterprise.
  • Умение решать задачи промышленных высокопроизводительных проектов.
  • Способность поддерживать современные многоуровневые Enterprise-приложения на Java.

Опыт профессиональной разработки с 2007 года.
Во время обучения в Самарском Государственном Университете участвовал в создании автоматизированной системы на платформе J2EE. На протяжении 2009 года успел поучаствовать в проекте для автоматизации процессов госкорпорации «Роскосмос».
С 2010 года принимает активное участие в разработке и развитии информационных систем ООО «Русфинанс Банка» на базе стека JavaEE.
На текущий момент состоит в Scrum-команде, ответственной за разработку клиент-серверного приложения «Инфо-Банк». Участвует в инновационных проектах компании.

Проводит корпоративные обучающие workshop-ы для сотрудников.
С 2012 года — преподаватель и научный руководитель по образовательным курсам «Программирование на Java», «Разработка веб и бизнес приложений на Java», а также «Основ методологий разработки и проектирования ПО» в Московском Технологическом Институте.

Опыт профессиональной разработки с 2007 года.
Во время обучения в Самарском Государственном Университете участвовал в создании автоматизированной системы на платформе J2EE. На протяжении 2009 года успел поучаствовать в проекте для автоматизации процессов госкорпорации «Роскосмос».
С 2010 года принимает активное участие в разработке и развитии информационных систем ООО «Русфинанс Банка» на базе стека JavaEE.
На текущий момент состоит в Scrum-команде, ответственной за разработку клиент-серверного приложения «Инфо-Банк». Участвует в инновационных проектах компании.

Проводит корпоративные обучающие workshop-ы для сотрудников.
С 2012 года — преподаватель и научный руководитель по образовательным курсам «Программирование на Java», «Разработка веб и бизнес приложений на Java», а также «Основ методологий разработки и проектирования ПО» в Московском Технологическом Институте.

Soft Settings

Рубрики

  • Apple (79)
  • HardWare (484)
  • High-Tech (272)
  • IT-Blog (58)
  • Linux (38)
  • Tehno (2 285)
  • Windows (52)
  • Без рубрики (41)
  • Браузер (66)
  • Звук и Акустика (20)
  • Игры (232)
  • Интересно (2 513)
  • ИТ Новости (9 415)
  • Как настроить — Оптимизация (32)
  • Ноутбуки (143)
  • Планшеты (198)
  • Программы (216)
  • Сеть — Сервера (106)
  • Создание сайтов (492)
  • Телефоны (838)
  • Теория (55)

Архив

Пособие для будущего Java разработчика. Enterprise — часть 2

— Ну и корыто!
— Это «корыто» делает 0,5 сверх скорости света! Может, оно и выглядит не ахти, но не это главное, парень. Я собственноручно его доводил.

«Звездные войны. Эпизод IV. Новая надежда»

Продолжаем рассматривать средний по больнице стек технологий, которой в большинстве случаев бывает нужен junior/m >здесь .

Во второй и третей части я буду рассматривать три слоя архитектуры:
1. Database Tier .
2. Business Tier .
3. Presentation Tier.

Идем от первого к третьему. Из-за глубины темы Services будет вынесена в отдельную подглаву в части.

Database Tier

Для хорошо интродакшена в Databases я рекомендую курс Ильи Тетерина «Базы Данных» за 2012 год. Если лень смотреть весь курс, просмотрите хотя бы первые две-три лекции, где он дает внятную терминологию по базам данным, приводит примеры из реального мира (как словарь или телефонная книга).

Для быстрого погружения в практику начните с «Изучаем SQL» от Линн Бейли:

Установите MySQL и прорабатывайте пример за примером вместе с автором. После того, как пройдете книгу, must have иметь вот эту картинку если не в голове, то хотя бы распечатанную у себя на столе:

Мало собеседований проходит без традиционного вопроса: «Приведи мне пример Inner Join». Да, я понимаю, что вы только один-два раза в год сталкиваетесь с этим на проекте, но знать это надо, как таблицу умножения. То же самое касается One-to-One, Many-to-Many. Все это поверхностно описано в названной книге.

И, конечно, не возможно не упомянуть Стэндфордский курс « Introduction To Databases ». Кстати, если вы ищите книгу наподобие справочника, обратите внимание на SQL (Database Programming) by Chris Fehily:

Oracle

Часто в вакансиях всплывает Oracle и PL/SQL, так давайте рассмотрим главные ресурсы. Можно взять оракловский гид «Database Concepts» как грамотный вводный курс в архитектуру Oracle DB. После этого полистайте «Database Administration Guide» . Обратите внимание, я дал вам версию — постарайтесь ознакомиться с ней. А по можно прочитать следующие две книги:

— «Oracle Database 12c. The Complete Reference» by Kevin Loney:

— «PL/SQL Programming» by Steven Feuerstein:

Как альтернатива последней — «Oracle Press: Oracle Database PL/SQL Programming» by Michael McLaughlin.

NoSQL

Тема модная и, наверное, самая подходящая книга, которая позволит вам с высоты птичьего полета получить представление о современных базах данных, — это Эрик Редмонд, «Семь баз данных за семь недель». В ней рассмотрены следующие БД: PostgreSQL, Riak, HBase, MongoDB, CouchDB, Neo4J, Redis.

Начиная изучать тему NoSQL, обязательно просмотрите выступление Introduction to NoSQL by Martin Fowler.

Из-за многообразия новомодных БД возникает логичный вопрос: а какую NoSQL базу выбрать как основную для обучения? Можно просто включить дурачка и выбрать ту, которая пришлась по душе. Можно прошерстить раздел « Работа для джавистов на DOU » и обратить внимание на то, что сейчас является релевантным.

В качестве примера разберем MongoDB. MongoDB Inc. делали не глупые ребята, которые уделили пристальное внимание докам . Это одна из немногих документаций которую можно читать как книгу. Также обратите внимание на родные курсы MongoDB for Java Developers .

На стороне можно почитать «MongoDB: The Definitive Guide» by Kristina Chodorow:

Я лично читал «MongoDB in Action», но рекомендовать не буду, так как 1 декабря этого года ожидается новое издание. А тот, кто имеет платную подписку от Manning, может получить еще и Early Access к книге.

Hibernate

(для consistency я поместил Hibenate в Database Tier — прим. автора)

Перед тем, как изучать Hibernate, ознакомьтесь c базой: Java Persistence API . Кстати, есть неплохая статья , которая рассказывает о нововведениях в JPA 2.1.

Плавно спускаемся к самому хиберу. Самый прекрасный курс, который наглядно объясняет весь хаос вокруг — это Java Brains: Hibernate .

Ну а потом можно взяться за официальную документацию .

Из книг обратите внимание на «Java Persistence with Hibernate» by Christian Bauer:

Как вариант, есть еще «Just Hibernate» by Madhusudhan Konda (ох и имя! — прим. автора):

В общем, достаточно JavaBrains и официальной документации. Набираем полные груди воздуха, пауза, выдыхаем… Пришло время перепрыгнуть в Business Tier.

Business Tier

Spring

Вау! А я изначально всего лишь хотел рассказать о Spring, а не плодить 7 статей разного содержания по понедельникам в течение двух месяцев. �� Ну да ладно.

Вообще абсолютно все фреймворки от Spring очень тщательно задокументированы. Их javadoc — это лучшее, что мне довелось видеть после JDK.

Если вы уже имеете представление о том, что из себя представляет Spring, — смело зубрите превосходный reference .

Если понимания нет или вы полный ноль в DI/IoC — обратите внимание на Java Brains: Learning Spring Core. Есть еще достаточно подробный курс от John Purcell на Udemy За 28 часов вам разжуют основы + mvc + database.

Что вообще нужно понимать в Spring Сore? Я бы выделил основные моменты:


  1. Иметь внятное представление о Dependency Injection/Inversion Of Control. Это сердце всего спринга, краеугольное понимание того, зачем это всё нужно;
  2. Знать, что из себя представляет container, что такое бины, жизненный цикл, scopes;
  3. Уметь работать как с XML инициализацией, так и через аннотации;
  4. Разобраться с валидацией, ресурсами, базовым пониманием SpEL.

Из книг можно обратить внимание на «Spring In Action» от Craig Walls. Все достаточно поверхностно, формат изложения очень похож на уже названный курс от Udemy:

Из книг формата Best Practices на Spring — интересная книга «Spring Recipes: A Problem-Solution Approach» by Daniel Rubio:

AspectJ и сам AOP в Spring уже описан в официальной документации от Spring. Добавлю книгу «AspectJ in Action: Enterprise AOP with Spring Applications» by Ramnivas Laddad:

Spring Data

Есть прекрасная статья , которая описывает проблемы и недостатки JPA/Hibernate. Как одну из альтернатив здесь рассматривают Spring JDBC Template.

Курс «JavaBrains: Data Access in Spring» рассказывает основы Spring JDBC и рассматривает интеграцию c Hibernate. Этим курсом можно связать Spring и Hibernate вместе. Следовательно, после этого уже можно изучать раздел Spring Data из официального референса.

Для того, чтобы наработать связку с другими материалами этой статьи, обратите внимание на «Spring Data» by Mark Pollack:

Тут вам работа спринга и с JPA, и с JDBC. Также уделено внимание интеграции Spring с MongoDB, Neo4J, Redis. Пятый и шестой раздел книг я бы пропустил, если Big Data не ваш прямой профиль.

Spring Boot

Я считаю Spring Boot идеальным решением для новичка. Этот инструмент буквально создан для того, чтобы на лету создать Spring application без длительного погружения в детали.

Официальная документация на высоте — обязательно прочитайте.

Маленькие практические шаги:

  1. Создать простенький REST сервис, который мапится на определенную URL и возвращает какой-то helloworld;
  2. Подключить embedded tomcat;
  3. Использовать @SpringBootApplication в проекте;
  4. Работать с properties через YAML;
  5. Написать примитивное DAO через Repository в контексте JPA.

Осенью этого года выйдет книга «Spring Boot In Action» от Craig Walls, но есть ли в этом смысл? Spring Boot достаточно просто решение, чтобы тратить на него много времени.

Spring Integration

Перед тем, как ознакомиться с Spring Integartion, нужно держать в уме возможные интеграционные паттерны. Для этого есть фундаментальный труд 2003 года от Gregor Hophe «Enterprise Integration Patterns». Кстати, русский вариант книги мне не понравился.

Уже затем читать официальную документацию .

И на десерт очень классная книга «Spring Integration in Action» by Mark Fisher:

Можно было бы осветить еще Spring Batch, Roo, Security, но лучше оставить это для тех, кто использует их непосредственно в проектах.

Раз уже задели messaging в Spring Integration, давайте заодно рассмотрим JMS. Уловив такие понятия, как «subscriber-pusblisher» и «point-2-point», можно уже в целом иметь представление о том, как построен Java Message Service. Официальная документация здесь .

Из популярных решений значится ActiveMQ. Прочитав хорошую книгу «Java Message Service» by Mark Richards, вы убьете из базуки много зайцев: прикоснётесь к архитектуре JMS, познакомитесь с ActiveMQ, Spring JMS и т.д.. Но: увы, это все актуально к JMS 1.1, а на дворе уже два года как 2.0. Хотя, на самом деле это сути не меняет — книга, однозначно, полезная.

Внимание! Если вы до сих пор используете EJB версии (если такие есть, отпишитесь в комментариях, я хочу увидеть вас в живую) — книга «Head First EJB» by Kathy Sierra может стать идеальным руководством для изучения:

Книги от Kathy Sierra сами по себе очень крутые. Стоит только ее книгу по сертификации вспомнить — SCJP 6! Это же уровень!

На самом деле, к сожалению, EJB 2 — это полный хлам. Сделали ли в третей версии разработчики из нее конфетку, решать вам, но разница в любом случае на лицо. Официальная спецификация по EJB 3 .

Если спецификация тяжело дается, начните с книги «Beginning EJB 3, Java EE» by Jonathatn Wetherbee:

Далее, можно взять EJB in Action by Debu Panda.

Если вас заинтересовало POJO, есть очень хорошая книга «POJOs in Action: Developing Enterprise Applcations with Lightweight Frameworks» by Chris Richardson:

Заключение

Мы познакомились с Database и Business tier. В части рассмотрим Presentation Layer, туда будет входить неосвещенные здесь Servlets/JSP и Spring MVC, а также Services и Application servers.

Прошу прощения за такой огромный объем, но поверьте — это даже не половина из всего числа всевозможных фреймворков, а только основные. По поводу того, что возможно кто-то приуныл и испытывает панические атаки от такого количества материала, я бы хотел сказать следующее: все книги, которые предоставлены в каждой статье цикла — это лишь глубина вашего саморазвития как Java программиста. Кому-то достаточно книг для того, чтобы устроиться, а кому-то нужно пройти полный путь джедая, чтобы стать ближе к senior погонам в СНГ. Все относительно.

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

Спасибо за внимание! Удачи.

Предыдущие части цикла:
— Пособие для будущего Java разработчика. Основы Java .
— Пособие для будущего Java разработчика. Элегантный код .
— Пособие для будущего Java разработчика. Enterprise — часть 1.

Thinking In Java Enterprise (русский перевод) → Введение в Enterprise программирование

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

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

Однако, основная идея распределенных вычислений не так сложна и ее реализация хорошо абстрагирована в библиотеке Java. Вы хотите:

  • Получить некоторую информацию от одной из машин или передать ее на машину. Это выполняется с помощью основного сетевого программирования.
  • Соединиться с базой данных, которая может быть доступна по сети. Это выполняется с помощью Java DataBase Connectivity (JDBC), которая отвлечена от грязных, платформозависимых деталей SQL (структурный язык запростов, используемый для большинства транзакций базы данных).
  • Предоставить службу посредством web сервера. Это выполняется с помощью Java сервлетов и JavaServer Pages (JSPs).
  • Выполнить методы Java объектов, которые существуют на удаленной машине, прозрачно, как будто бы эти объекты были расположены на локальной машине. Это выполняется с помощью Java Remote Method Invocation (RMI).
  • Использовать код, написанный на других языках и работающий на других архитектурах. Это выполняется с помощью Extensible Markup Language (XML), который напрямую поддерживается Java.
  • Изолировать бизнес логику от логики соединения, особенно при подключении к базе данных, включая управление транзакциями и безопасностью. Это выполняется с помощью Enterprise JavaBeans (EJB). EJB на самом деле не являются распределенной архитектурой, но результирующее приложение обычно используется в сетевых клиент-серверных системах.
  • Легко, динамически добавлять и удалять устройства, представляющие сеть, из локальной системы. Это выполняется с помощью Java Jini.

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

Предпосылки

В этой книге предполагается, что вы уже прочли (и в большенстве поняли) Thinking in Java, 3rd Edition (Prentice-Hall, 2003, доступна для скачивания на www.MindView.net).

Заключение

Эта глава рассматривает некоторые, но не все, компоненты, которые упоминает Sun в качестве J2EE: Java 2 Enterprise Edition. Целью J2EE является создание набора инструментов, которые позволяют разработчику Java построить серверное приложение быстрее, чем раньше, и не зависеть от платформы. Это не очень сложно и долго, построить такое приложение, но особенно сложно построить его таким образом, чтобы оно легко портировалось на другие платформы, а также содержало бизнес логику отдельно от деталей реализации. J2EE предоставляет рабочую среду для помощь в создании серверных приложений, такие приложения часто требуются сейчас, и потребность в них встречается все чаще.

Ох уж эти разработчики

понедельник, 9 сентября 2013 г.

10 книг для продвинутых Java-разработчиков

Сегодня Java — один из популярнейших языков программирования. Для новичков существует много книг. Для тех, кто работает с Java некоторое время, они покажутся простоватыми и бесполезными. Книги для начинающих не приносят свежие и интересные идеи. Однако, книги для продвинутых разработчиков Java не всегда легко найти, поскольку для их написания нужно обладать большим набором навыков, опытом и склонностью к глубокому анализу.

В данном посте я бы хотел рассказать о нескольких полезных книгах по Java для продвинутого уровня. То есть, работы вроде «Thinking in Java» («Философия Java») или «Head First Java» («Изучаем Java») в списке не появятся, хотя советую начинающим их почитать. Также, я старался не вносить в список книги по Java для конкретного ПО, фреймворков или сертификатов.

Java in a Nutshell («Java. Справочник»)

The elements of Java style («Элементы стиля Java»)

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

Effective Java (Java. Эффективное программирование)

Книга на самом деле предназначена для Java-разработчика с глубокими знаниями. Содержит 78 незаменимых проверенных правил программистов: эффективные решения проблем, с которыми вы сталкиваетесь ежедневно.

The Java language specification («Спецификация языка Java»)

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

Design patterns: elements of reusable object-oriented software (Приемы объектно-ориентированного проектирования. Паттерны проектирования»)

Собственно говоря, примеры в книге написаны на C++ или Smalltalk, ну и что? Если вы желаете развиваться как разработчик, то должны знать «Паттерны проектирования», чтобы воспользоваться передовым опытом других и научиться у тех, кто сталкивался с похожими проблемами. Есть много похожих книг, но они предлагают лишь упрощенные «рецепты».

The Pragmatic Programmer: From Journeyman to Master («Программист-прагматик. Путь от подмастерья к мастеру»)

Книга не только для Java-разработчиков. «Ее прелесть в том, что она позволяет сохранить элемент новизны процесса программирования. Книга способствует профессиональному росту и явно написана знающими людьми».

Patterns of Enterprise Application Architecture («Шаблоны корпоративных приложений»)

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

Refactoring: Improving the Design of Existing Code («Рефакторинг. Улучшение существующего кода»)

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

OSGi in Action: Creating Modular Applications in Java

Умение разбираться в сервис-ориентированном программировании никогда не помешает. Первые несколько глав служат прекрасным введением и содержат конкретные примеры.

Clean Code: A Handbook of Agile Software Craftsmanship («Чистый код. Создание, анализ и рефакторинг»)

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

Книги и учебные ресурсы по Java

Собираем подборку качественной литературы по Java.

Дописывайте, если есть что добавить в общий ответ.

Заблокирован участником PashaPash 2 янв ’16 в 11:47 .

Ответы на этот вопрос — результат совместной работы участников. Если вы видите возможность по улучшению, просто отредактируйте ответ! Новые ответы больше невозможно добавить.

Подробнее о заблокированных сообщениях здесь.

1 ответ 1

Core Java

Начинающим:

Head First Java (2nd Edition). Kathy Sierra, Bert Bates.

Русский перевод: Изучаем Java. Кэти Сиерра, Берт Бейтс.

Как это обычно бывает в книгах Head First, вас весело и в картинках обучат основам программирования на Java. У опытных программистов книга может вызвать ухмылку, однако для действительно начального уровня она вполне хороша.

Java: A Beginner’s Guide. Herbert Schildt.

Русский перевод: Java. Руководство для начинающих. Герберт Шилдт.

Core Java Volume I: Fundamentals (9th Edition), Core Java Volume II: Advanced Features (9th Edition).

Русский перевод: Java. Библиотека профессионала. Том 1. Основы; Java. Библиотека профессионала. Том 2. Расширенные средства программирования. Кей С. Хорстманн, Гари Корнелл.

Книги Хорстманна написаны достаточно сухим языком и вываливают на читателя горы документации по API и километры листингов с полным кодом примеров. Читать их последовательно может быть довольно тяжко, зато книги станут отличным настольным справочником и сборником рецептов.

Онлайн-документация по стандартным библиотекам JAVA SE.

Онлайн-курсы, учебники

  • Уроки Java для начинающих на itproger.com
  • Самоучитель по Java с нуля — vertex-academy.com
  • Java Tutorial(англ.) на Javatpoint
  • Курсы на Stepik.org:
    • Java. Базовый курс Computer Science Center (CS центр)
    • Летняя Java школа
    • Adaptive Java(англ.) JetBrains
  • Hyperskill(англ.) — сайт с учебными проектами для обучения программированию на Java, Kotlin, Python
  • JavaRush

Средний уровень:

Thinking in Java (4th Edition). Bruce Eckel.

Русский перевод: Философия Java. Брюс Эккель.

Классический фолиант джавистов. Для комфортного чтения требуются базовые познания в языке, т.к. книга не ставит своей задачей научить писать на Java с нуля, а научить писать идиоматично.

Java 8: The Complete Reference. Herbert Schildt.

Русский перевод: Java 8. Полное руководство. Герберт Шилдт.

Effective Java (2nd Edition). Joshua Bloch.

Русский перевод: Java. Эффективное программирование. Джошуа Блох.

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

The Well-Grounded Java Developer: Vital techniques of Java 7 and polyglot programming. Benjamin J Evans, Martijn Verburg.

Русский перевод: Java. Новое поколение разработки. Бенджамин Эванс, Мартин Вербург.

Java Puzzlers: Traps, Pitfalls, and Corner Cases. Joshua Bloch, Neal Gafter.

Java Puzzlers дает возможность тем, кто уже «выучил язык» проверить себя. В книге собраны 95 задачек с подвохом: очевидные на первый взгляд фрагменты кода, таящие каверзный баг. Какие-то из рассматриваемых примеров могут показаться надуманными и нежизненными, однако они в полной мере раскрывают тонкие нюансы программирования на Java.

Java Concurrency in Practice. Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea.

Подробнейшее пособие по написанию многопоточного кода на Java. Каждая тема рассматривается с разных сторон на нескольких примерах, так что к концу главы будет полное понимание осуждаемого предмета. Немаловажно, что один из соавторов (Doug Lea) является автором стандартной библиотеки concurrent-примитивов ( java.util.concurrent ).

Java Performance. Charlie Hunt, Binu John.

Must read по оптимизации java Программ, тюнингу JVM и сборщика мусора, бенчмаркингу и профилированию.

Core Java for the Impatient. Cay Horstmann.

Книга для нетерпеливых, как следует из названия. Позволяет погрузиться в мир языка Java, рассказывается всё, что на самом деле может пригодиться Java-разработчику. Отдельное внимание уделено новшествам восьмой версии языка. В конце каждой главы есть задания для более плотного усвоения материала. (Хорстманн не очень любит язык C++ , иногда шутит по этому поводу, вроде того: String[] badWords = <"sex", "drugs", "C++">; , от этого читать становится не так скучно).

Java SE 8 for the Really Impatient. Cay Horstmann.

Русский перевод: Java SE 8. Вводный курс Кей С. Хорстманна

Является продолжением книги Core Java for the Impatient, однако здесь всё внимание уделяется новшествам восьмой версии языка, покрывает очень многие аспекты, будь то лямбда-выражения, работа со Stream API или многопоточность. После каждой главы также присутствуют задания для усвоения материала.

Head First Design Patterns.Eric Freeman, Elisabeth Robson, Bert Bates, Kathy Sierra.

Русский перевод: Паттерны проектирования. Эрик Фримен, Элизабет Фримен

Отличная книга от издательства O’Reilly, в веселой форме обучит вас основным шаблонам проектирования на языке Java.

Java 8 Lambdas. Richard Warburton.

Русский перевод: Лямбда-выражения в Java 8. Ричард Уорбэртон

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

Экспертный уровень:

The Java Language Specification. James Gosling, Bill Joy, Guy L. Steele Jr., Gilad Bracha, Alex Buckley.

Oracle JRockit: The Definitive Guide. Marcus Hirt, Marcus Lagergren.

Java EE

Исчерпывающая официальная документация о работе и жизненном цикле сервлетов.

Beginning Java EE 7. Antonio Gonsalves.

Русский перевод: Изучаем Java EE 7. Энтони Гонсалвес

Java EE 7. Основы Арун Гупта

Head First Servlets and JSP, 2nd Edition. Bryan Basham, Kathy Sierra, Bert Bates

Java Servlet and JSP Cookbook. Bruce W. Perry

Русский перевод: Java сервлеты и JSP. Сборник рецептов. Брюс У. Перри

Spring

Официальная документация о каждом проекте Spring. Описано подробно, но довольно сложно и много, поэтому для первого обучения рекомендую начать с Spring Guides.

Spring Guides Очень простые и наглядные пошаговые уроки (на английском) разных возможностей проектов Spring, с возможностью сразу скачать результат и проверить на своем компьютере. Наиболее актуальные туториалы по Spring, которые есть в интернете, так как постоянно обновляются сообществом. Для более детального изучения — смотрите официальную документацию.

Spring в действии. Крейг Уоллс

Несмотря на то, что в книге описана уже немолодая 3-я версия Spring, книга стоит ознакомления, так как очень просто и подробно знакомит читателя с фреймворком.

Spring 5 для профессионалов. Юлиана Козмина, Роб Харроп, Крис Шефер, Кларенс Хо

Многолетний бестселлер, считающийся наиболее исчерпывающим и авторитетным руководством по Spring.

Hibernate

Beginning Hibernate. Joseph B. Ottinger, Dave Minter, Jeff Linwood

Несмотря на то, что в названии книги стандарт JPA не упоминается, бóльшая часть книги посвящена именно его реализации в Hibernate.

Java Persistence with Hibernate. C. Bauer, G. King, G. Gregory

Исчерпывающее описание Hibernate и Java Persistence.

Swing

SWING: Эффективные пользовательские интерфейсы. Иван Портянкин.

Swing. A Beginner’s Guide. Sсhildt H.

Русский перевод: Swing. Руководство для начинающих. Шилдт Г.

Swing Hacks. Tips and Tools for Killer GUIs. Joshua Marinacci, Chris Adamson.

JavaFX

JavaFX 2.0 Разработка RIA-приложений. Тимур Машнин.

В ней есть вся нужная информация относительно компонентов и оформления их с помощью fxcss, работы с анимацией, воспроизведения видео и аудио, и конечно относительно работы с FXML.

Learn JavaFX 8. Kishori Sharan.

Учебник на английском, в нем подробно описываются все основные элементы JavaFX, особенности их поведения и взаимодействия, описываются наблюдаемые свойства и связывания (properties and bindings), и другие полезные возможности, как вывод на печать и подробное описание обработки событий.

Справочники

Java 8 Pocket Guide. Robert Liguori.

Русский перевод: Java 8. Карманный справочник. Роберт Лигуори.

Отличный справочник, с помощью которого можно моментально найти ответы на вопросы по стандартной библиотеке Java, лямбда-выражениям и т. д.

Мастер Йода рекомендует:  Алгоритмы и структуры данных для начинающих стеки и очереди
Добавить комментарий