Джеймс Гослинг (James Gosling; 19 мая 1955 года, Калгари, Канада) — автор языка программирования Java
Java Core
Java Date
Java IO
Java Regex
Java.net
Java Cache
Java EE
Java Concurrency
Лямбда выражения
Stream API
JMX
JSP
Jackson JSON Processor
JavaDoc
Spring Framework
Spring Boot
Servlet
Maven
Apache Tomcat
GlassFish
Apache CXF
Установка Java SDK на Linux
ExtGWT
Swing
Apache Velocity
Основные интсрументы разработчика Java
Логирование
Запуск внешних программ
Jetty
Database - SQL, JDBC and etc
WebSockets
Testing
JUnit
JUnitBenchmarks
Mockito
PowerMock
JavaHamcrest
Обеспечение качества
Нагрузочное тестирование
Jersy мокать http
wiremock** - позволяет мокать http сервисы. Поднимает свой http сервер возвращающий заданные ответы.
Генерировать pdf, excel, csv использовать jstl, freemarker, velocity и jasperReports
Парсеры html: jsoup, JTidy, HtmlUnit, HttpComponents
Работа с JSON: JSON.simple, GSON, Jackson, JSONP (Выбор библиотеки)
Работа с XML: XMLBeans, JAXB, JDOM
Cериализации и передачи данных: Google Protobuf
Контейнер сервлетов: Apache Tomcat, Jetty, Netty
Система версионного контроля: Subversion, Git, svn
ESB: WSO2, JBoss esb
Автоматизация сборки проектов: Maven (pom.xml), Ant (build.xml), Gradle (build.gradle), GAnt, Buildr, Ivy
Полнотекстовый поиск: Lucene, Sphinx, Xapian (1)
Тестирование: Mockito, JUnit, Selenium, JMetor, JMock, EasyMock, PowerMock
Репозиторий git: gitlab
Репозиторий mvn: Nexus, Artifactory, Archiva.
NoSQL: MongoDB, Cassandra, Redis
СУБД SQL: MySQL, PostgreSQL
Система управления конфигурациями: Puppet, Chef
Сканер проблемного кода: SonarQube, PMD
Покрытие тестами: Coverity
Система непрерывной интеграции: Jenkins
Кэширования данных: Memcached
ORM: Hibernate, MyBatis
Работа с консольными параметрами: JCommander
Очереди: ReabitMQ, Kafka
Нагрузка производительности: JMH
Профайлинг приложений:
Http client: unirest, OkHttp, retrofit
• Maven – фреймворк для автоматизации сборки проектов;
• JUnit – обеспечит эффективность автоматического тестирования приложений;
• Apache Log4j – библиотека логирования;
• Jenkins – система непрерывной интеграции;
• Hibernate – ORM (настройки, конфигурация в properties, xml файлах и в аннотациях);
• hibernate-generic-dao – реализация DAO от Google, реализует основные методы для работы с данными базы данных, упрощает реализацию фильтрации и сортировки в методах;
• Spring – реализация аутентификации и авторизации (security), контейнер сервисов и бинов (конфигурация в xml файлах и в аннотациях), используем также при создании тестов.
• JRebel — инструмент для автоматизированного деплоймента изменённого кода (JRebel, JRebel Quickstart)
• Apache MINA – framework для создания сетевых приложений,
• Google protobuf – библиотека кодирования и декодирования структурированных данных. Структура данных определяется заголовочными файлами *.proto, компилятор генерирует из них Java классы (также есть возможность генерации для других языков программирования: C++, Objective-C и т. д., что обеспечивает свойство кроссплатформенности);
• java.util.concurrent – используем стандартный пакет.
• Netty - Высокопроизводительный NIO-сервер (1)
• Metrics- мониторинг программы (презентация, графики)
• Redis — сетевое журналируемое высокопроизводительное хранилище данных типа «ключ-значение». (wiki, habr)
• Mockito - mock-тестирование. Mock-объект имитирует поведение реального объекта заданным образом. Во время unit-тестирования mock-объекты могут симулировать поведение бизнес-объектов и бизнес-логику, что иногда необходимо из-за сложности реального поведения.
• Nginx - Отказоустойчивый сервер для ресурсов с высоким трафиком. Описание возможностей. Это HTTP-сервер и обратный прокси-сервер, а также почтовый прокси-сервер.
• gitlab - open source проект аналог GitHub
Hazelcast - In-memory-data-grid
• Google Guice - это инфраструктура для внедрения или инъекции зависимостей
• Graphite - построение графиков
- Java Logging
• log4j — используют подсевшие на него изначально и не видящие необходимости перехода.
• SLF4J — очень популярен в библиотеках. Многие переехали на него, не выдержав ужасов commons-logging
• Logback — обычно современные high-performance серверы, которых не устраивает log4j.
• HtmlUnit - Инструмент для автоматизации тестирования веб-сайтов работающая на Java-платформе
• Graylog - посмотр логов красиво, надстройка над elastic
Commons IO
Spring. Dependency Injection Styles slides code
Виртуалка - cloudstack
Управления проектами и задачами:
Redmine
SourceForge
GitHub - (код ревью, вики)
YouTrack
Jira
Code review:(ревью)
jetbrains Upsource
atlassian clover
atlassian Crucible
ишью трекер
gwt super dev mode - супер дебагинг GWT
Данный вариант может масшабироваться, но на это требуется закладываться на этапе проектирования на уровне архитектуры, учитывая бизнес логику.
Разобрать: Morphia, Nginx, , RabbitMQ, Hadoop
Термины и понятия в Java:
Handler - обработчик событий, это реализация обработки данных переданными в него
Listener - слушатель событий, это интерфейс который нужно реализовать и делать какие то действия при наступлении события, и передается классу который при наступлении события вызывает определенный метод, в качестве параметров в функциях передается событие (Event)
Event - событие
Thred - поток
Последовательность обучения
Ресурсы
Правила написания кода на Java (Code Conventions for the Java)
Java Style Guidelines
Строковые классы Java. Сравнение производительности
Java PaaS:
Jelastic
OpenShift
Cloud Bees
Heroku
Спецификации
Спецификация - текстовый документ, в котором предоставлен набор официальных правил, соглашений, вариантов использования для определенной технологии или систем.
JSR (Java Specification Request) Запрос на Спецификацию Java - документы (спецификации) с дополнениями к платформе Java, Каждая JSR имеет свой номер
JSR для JEE, Список всех JSR
JCP (Java Community Process) - организация или объединение группы людей по согласованию и утверждению всех JSR
Список всех JSR - jsr.org
W3C (Word Wide Web Consortium) - организация по разработке официальных спецификаций для всемирной сети интернет
HTTP, HTML, CSS, XML