Quantcast
Channel: Найцікавіше на DOU
Viewing all articles
Browse latest Browse all 8154

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

$
0
0

Я сказал тебе правду. Правду — если смотреть на неё с определённой точки зрения. Многие из тех истин, которым мы доверяем, являются таковыми лишь тогда, когда мы придерживаемся определённой точки зрения.
Оби-Ван Кеноби (Звездные войны: Эпизод 6 — Возвращение Джедая)

Да, вы уже близко. За горизонтом маячит финишная черта. Оглянувшись назад, вы замечаете, что вместо сотни учащихся вас осталось всего человек 20. Закон Парето неумолим — пока все остальные ноют, вы двигаетесь дальше. Перед вами ключ, а открывать дверь или нет — решать только вам. Ladies and gentlemen, представляю вам заключительную часть по Enterprise.

Application Servers

Tomcat

Tomcat нужно не просто уметь запускать и вырубать. Мыслите шире: при своей простоте этот application server имеет глубину. Практические шаги при освоении:

  1. Задеплоить web application на томкат;
  2. Прикрутить Remote Debug;
  3. Perfomance tuning;
  4. Разобраться с настройкой SSL;
  5. Security. servers.xml;
  6. Jasper, Connectors.

На данный момент документация по Tomcat 8 находится на официальной странице Apache. Для более детального изучения могу порекомендовать книгу «Tomcat The Definitive Guide» by Jason Brittain:

Обратите внимание на разделы Perfomance, Configuration и Deployment.

Weblogic

Из тяжелых Enterprise серверов, думаю, следует рассмотреть Weblogic. Не будем трогать связку с Oracle Service Bus. Начните с официального Introduction туториалаи плавно переходите к «Oracle WebLogic Server 12c: Distinctive Recipes: Architecture, Development and Administration» by Frank Munz:

По большому счету, можно повторить почти те же шаги, которые описаны выше для Томката. Обратите внимание на роль JMX, да и вообще на то, как тесно компоненты JavaEE связаны с процессами в Weblogic.

Logging

Slf4J

Думаю, достаточно разобрать Slf4j в связке с Log4J/Logback. Не хочу рекомендовать какие-либо книги — обратите внимание на slf4j.orgи на то, как этот фасад взаимодействует с logging фреймворками.

Что нужно уловить в логировании? Приблизительно:

  1. Уровни логирования. Где ставить error, где trace, где остальное;
  2. Цена вызова. Да-да, вы не ошиблись. Логирование — штука не бесплатная, стоит каких-то милли/нано секунд. Шикарная статьяна эту тему у Руслана Черемина;
  3. Как выключать/включать разные уровни логирования;
  4. Принципиальные различия между log4j/java.logging/logback.

Не углубляясь в асинхронный logging и всем надоевший Spring AOP, где каждый считает своим долгом использовать АОП модель только для логирования, уясните следующее: что вам дает логирование и как вы можете улучшить проект, используя его. Обратите внимание на возможные анти-паттерныв этой области.

Presentation Level

Serlvets/JSP

Ох уж эта Kathy Sierra! Что я бы делал без тебя? Одна из самых лучших книг Java тематики — «Head First Servlets and JSP» by Kathy Sierra:

Так разжевать материал — это надо уметь! Здесь не только о сервлетах, а вообще о Web разработке в целом. Начать с того, что представляет из себя Client-Server, после пройтись по HTTP и глубоко коснутся Servlets/JSP — это твердая 5. Читать всем! Да, я знаю, что книга устаревшая. Дело в концепции, которую лучше никто не объяснит.

А пока вы готовитесь кидать в меня помидоры, я представляю вторую толстую книгу — «Murach’s Java Servlets and JSP, 3rd Edition» by Joel Murach:

Это не менее авторитетная книга по сервлетам. Возможно, Head First Servlets покажется вам детской книгой, тогда присмотритесь к этой.

Для поклонников «зачем читать книги, если есть спецификации» — Servlet API,JavaServerTM Pages 2.1.

Из курсов можно выделить «Servlets and JSPs Tutorial: Learn Web Applications With Java» на Udemy и не менее интересный JavaBrains.

Spring MVC

Не буду долго останавливаться здесь, потому как в прошлой части было разобрано многое по Spring. Конкретно по Spring MVC — «Professional Java Development with the Spring Framework» by Rod Johnson:

Обратите внимание только на те главы, в которых описан Spring MVC, остальное уже покрыто в прошлой части.

На что обратить внимание в Spring MVC:

  1. Конечно же, DispatcherServlet. Что это за зверь такой и почему он тут самый главный?
  2. Дует DispatcherServlet и WebApplicationContext;
  3. ViewResolver, MultipartResolver;
  4. Controllers, Generators;
  5. Валидация.

GWT

Начинать изучение GWT без просмотра роликов от самого Google — это плевок им в душу.

Из книг — «GWT in Action» by Adam Tacy:

Полноценное руководство по GWT. Рекомендую. Если у вас есть еще какие-то интересные ресурсы по GWT, пожалуйста, оставьте в комментариях.

Services

Эх, сервисы... Уже и сам Фаулер заговорил о Microservices как об одних из главных тенденций ближайшего времени. С чего начать? Для начала остановите популярную какофонию у себя в голове: REST — это вид архитектуры, SOAP — это протокол. Все! Никаких но!

Очень сильный толчок в развитии SOA головного мозга можем вам дать Thomas Erl и сайт, где продаются его книги.

Касательно Microservices — есть очень хорошая статья на хабре, а также специальный раздел Microservices на страничке Фаулера.

Больше реальных примеров? Посмотрите, как реализованы сервисы Soundcloud.

Java презентации? Обзор возможных фреймворков есть тут.

REST

Прежде всего, сама диссертацияот создателя REST Roy Fielding.

Из книг — «The REST API Design Handbook» by Georgee Reese. Пожалуй, это самая популярная книга для вводной по REST API:

Из видео курсов: «REST Web Services using Java EE» от Udemy.

Также стоит внимания и спецификация по JAX-RS.

Если вы напрямую работаете с Jersey, то уже и без меня знаете, что лучше этого мануаланичего нет и не нужно.

Из книг по JAX-RS можно выделить «RESTful Java with JAX-RS» by Bill Burke:

Еще — «Java Web Services: Up and Running» by Martin Kalin:

Кстати, эта книга в какой то степени покрывает и JAX-WS. Вот спецификация по JAX-WS.

Front-End

Я не хочу забирать хлеб у фронтендщиков, поэтому скажу лишь следующее: любой джавист, связанный с web проектами, обязан знать HTML/CSS/JS в той или иной степени. Предлагаю сильно не зацикливаться на этом, а просто разобрать ресурсы, хотя бы для поверхностного изучения.

«Изучаем HTML, XHTML и CSS» Эрика Фримена:

Книга для 7 класса, но тем не менее. Усложните себе задачу: прикрутите Spring Thymeleaf и попробуйте написать какие-то примеры из книги, используя также сервер-сайд.

Конечно, нельзя не пройти мимо двух популярных школ — CodeAcademy и CodeSchool.com. Не поскупитесь на платный аккаунт CodeSchool.comи пройдите все (я не шучу) — это, наверное, самые лучшие курсы по front-end в интернете. Большое преимущество курсов от CodeSchool — ориентированность на HTML5 и responsive design.

JavaScript

Та же самая серия книг Head First на русском — «Изучаем JavaScript» Майкла Моррисона:

Есть еще неплохой интерактивный курс от javascript.ru.

Конечно, полезно будет разобраться хотя бы в 2-3толстых фреймворках по JS. Начните с jQuery и/или AngularJS, благо книг и ресурсов полным-полно.

RoadMap

Вот мы и заканчиваем статью Enterprise. Представляю вашему вниманию RoadMap по изучению материала. Говорю прямо и сразу в лоб: новичку все читать не нужно. Как в игре, вам лишь нужно выбрать расу и класс. Расу мы уже выбрали, поэтому давайте определимся с классом.

Внимание! Помимо стека, каждый толковый junior должен:

  1. Уметь на экспертном уровне работать с операционной системой;
  2. Иметь представление о vcs (git, svn);
  3. Знать English на внятном уровне (уметь говорить и понимать, что от тебя требуется), разбираться не только в технической документации, но и в проектной;
  4. Быть знакомым с Software Development Lifecycle, а также Scrum/Waterfall.


Junior Light Stack.Без прямого упора на EE фреймворки.


Junior EE.Ну тут все понятно, полная интеграция с Java Enterprise Edition. Большие рыбы аутсорса уже выехали к вам :)


Java Web Junior.Упор на Web разработку. В скобочках указаны дополнительные варианты фреймворков, которые можно изучить.

Заключение

Выбрав один из вариантов, недостаточно просто прочитать те книги, которые были озвучены в этой статье. Главное — это своими руками написать проект, использовав все, что есть на картинке, и по делу.

Статью Enterprise можно считать закрытой. Если есть какие-то вопросы, пожалуйста, задавайте в комментариях — я постараюсь ответить.

В следующей статье мы поговорим о новых языках программирования и о Computer Science.

Спасибо за внимание! Удачи, ребята, в обучении. ;)


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


Viewing all articles
Browse latest Browse all 8154

Trending Articles