• Направления обучения
  • Все курсы
  • Контакты

Сервис кэширования данных - JMemcached


Сервис кэширования данных - JMemcached  $20 $9.99
Категория: Java Standart Edition
  • 16 уроков
  • Длительность: 6:38:15
  • Исходный код
  • Обзор результата
  • UI макеты
  • 3286 просмотров
Купить курс

Описание курса


Данный курс предназначен для закрепления основ Java Standart Edition на примере разработки сервиса кэширования данных JMemcached, который является упрощенным Java аналогом популярного решения memcached (http://www.memcached.org/)

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

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

В качестве среды разработки используется среда Intellij IDEA, конечный продукт запускается как автономный сервис в операционной системе Windows как обычная служба.

Основной цель данного курса является практически закрепить знания по основам JSE, полученные в рамках курса Основы Java SE - HTTP сервер и продемонстрировать процесс разработке приложения на реальном проекте, последовательно проходя все этапы разработки.

После успешного прохождения данного курса, для развития в направлении web и enterprise рекомендуем курс Web приложение - IShop.

Для получения дополнительной информации по теме данного курса, рекомендуем следующие источники информации:

  • Герберт Шилдт, Java. Руководство для начинающих (Java: A Beginners Guide) - М.:Вильямс, 2016 - 720 с. - ISBN 978-5-8459-1955-7
  • Брюс Эккель, Философия Java (Thinking in Java (4th Edition)) - СПб.:Питер, 2016 - 1168 с. - ISBN 978-5-496-01127-3

В рамках данного курса Вы научитесь


  • Разрабатывать сетевой протокол для взаимодействия по сети;
  • Создавать несколько модулей для Вашего проекта;
  • Использовать интерфейсы для создания слабых связей в приложении;
  • Создавать Unit тесты для всех модулей Вашего проекта;
  • Запускать java приложение как автономный Windows сервис.

Для успешного прохождения курса необходимо


  • Знание Java core: (Classes, IO, Collections, Exceptions, Sockets) (Для получения этих знаний рекомендуем курс Основы Java SE - HTTP сервер);

План курса


  • 1
    Постановка задачи
    Длительность урока: 16:13
    1. Описание проекта
    2. Детали проекта
    3. Формализованное описание Jmemcached-client: команды и статусы команд
    4. Пример использования jmemcached в отдельном Java проекте
    5. Схема взаимодействия компонентов
    6. Архитектура Jmemcached server
    7. Этапы разработки проекта
  • 2
    Описание протокола
    Длительность урока: 19:04
    1. Определение сетевого протокола
    2. Описание протокола
    3. Формат пакета запроса
    4. Назначение флагов и длина пакета запроса
    5. Формат пакета ответа
  • 3
    Модуль jmemcached-common, модели и основные интерфейсы
    Длительность урока: 29:20
    1. Добавление плагинов и зависимостей в pom.xml
    2. Создание классов исключений для проекта
    3. Перечисления Version, Command и Status
    4. Модели запроса и ответа: Request, Response
    5. Интерфейс конвертера запросов RequestConverter
    6. Интерфейс конвертера ответов ResponseConverter
    7. Интерфейс сериализатора объектов ObjectSerializer
  • 4
    Реализация конвертеров и сериализатора
    Длительность урока: 31:59
    1. Реализация сериализатора DefaultObjectSerializer
    2. Реализация конвертера ответов DefaultResponseConverter
    3. Реализация конвертера запросов DefaultRequestConverter
  • 5
    Unit тесты для моделей и сериализатора
    Длительность урока: 33:10
    1. Unit тесты для перечислений Version, Command, Status
    2. Unit тесты для моделей запроса и ответа: Request, Response
    3. Unit тесты для сериализатора DefaultObjectSerializer
  • 6
    Unit Тесты для конвертеров
    Длительность урока: 32:42
    1. Unit тесты для абстрактного конвертера AbstractPackageConverter
    2. Unit тесты для конвертера запросов DefaultRequestConverter
    3. Unit тесты для конвертера ответов DefaultResponseConverter
    4. Оценка степени покрытия тестами
  • 7
    Модуль jmemcached-client, основные интерфейсы
    Длительность урока: 14:59
    1. Добавление плагинов и зависимостей в pom.xml
    2. Интерфейс клиента: Client
    3. Интерфейс настроек клиента: ClientConfig
    4. JMemcachedClientFactory - фабрика создания клиентов
    5. Реализация настроек клиента DefaultClientConfig
    6. Создание тестового класса ExternalProject, моделирующего отдельный проект, использующий jmemcached-client
  • 8
    Реализация DefaultClient
    Длительность урока: 11:49
    1. Реализация DefaultClient
    2. Изменения в JMemcachedClientFactory
  • 9
    Unit тесты для модуля jmemcached-client
    Длительность урока: 25:14
    1. Unit тесты для DefaultClientConfig
    2. Unit тесты для DefaultClient
    3. Оценка степени покрытия тестами
  • 10
    Модуль jmemcached-server, основные интерфейсы
    Длительность урока: 20:37
    1. Добавление плагинов и зависимостей в pom.xml
    2. Интерфейс сервера Server
    3. Интерфейс настроек сервера ServerConfig
    4. Интерфейс хранилища данных типа ключ-значение Storage
    5. Интерфейс диспетчера обработки команды CommandHandler
    6. Интерфейс рабочего потока соединения ClientSocketHandler
    7. Класс запуска сервера CLI
    8. Класс-оболочка для запуска сервера как Windows сервис ServiceWrapper
    9. Фабрика создания JMemcached сервера JMemcachedServerFactory
  • 11
    Реализация DefaultStorage
    Длительность урока: 27:22
    1. Создание внутреннего класса для хранения данных в карте StorageItem
    2. Создание внутреннего класса для автоматического удаления устаревших данных ClearExpiredDataJob
    3. Реализация хранения данных типа ключ-значение на основе конкурентной хеш таблицы DefaultStorage
  • 12
    Реализация DefaultServerConfig
    Длительность урока: 16:29
    1. Реализация интерфейса настроек сервера DefaultServerConfig
  • 13
    Реализация DefaultCommandHandler и DefaultClientSocketHandler
    Длительность урока: 18:29
    1. Реализация интерфейса диспетчера обработки команды DefaultCommandHandler
    2. Реализация интерфейса рабочего потока соединения DefaultClientSocketHandler
  • 14
    Реализация DefaultServer
    Длительность урока: 30:24
    1. Реализация интерфейса jmemcached сервера DefaultServer
    2. Реализация диспетчера соединений
  • 15
    Unit тесты для модуля jmemcached-server
    Длительность урока: 28:02
    1. Unit тесты для DefaultClientSocketHandler
    2. Unit тесты для DefaultCommandHandler
    3. Unit тесты для DefaultServer
    4. Unit тесты для DefaultServerConfig
    5. Unit тесты для DefaultStorage
    6. Unit тесты для внутренних классов DefaultStorage
    7. Оценка степени покрытия тестами
  • 16
    Демонстрация работы проекта, направления улучшения и сдача заказчику
    Длительность урока: 42:22
    1. Демонстрация работы сервера для следующих сценариев
      1. Корректное взаимодействие между клиентом и сервером;
      2. Остановка клиента во время работы сервера;
      3. Остановка сервера во время работы клиента;
      4. Превышение количества подключений клиентов к серверу;
      5. Обработка ошибок в логике сервера.
    2. Направления улучшения работы jmemcached
      1. Использование неблокирующего IO для архитектуры jmemcached-server;
      2. Использование off-heap области памяти для решения проблем медлительности сборщика мусора Java;
      3. Варианты ручного управления памятью для реализации логики затирания новыми объектами наименее используемых старых объектов в хеш таблице
    3. Создание Windows сервиса для jmemcached-server
    4. Запуск jmemcached-server через командную строку Windows
DevStudy.net На главную Направления обучения Все курсы FAQ

Контакты:


Udemy: devstudy_net

Email: devstudy.net@gmail.com


Наша миссия:

Дать возможность любому желающему начать работать в IT с минимальными начальными вложениями!



Актуальные вакансии:

jobeka iconВакансии разработчик баз данных на Jobeka jobsora iconВакансии Java разработчик на Jobsora jooble iconВакансии Java разработчик на Jooble