1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/fustack-NaiveChat

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Netty+JavaFx: практическая реализация настольной версии мессенджера

stars forks

В этой статье автор, используя технологии JavaFx, Netty 4.x, SpringBoot и MySQL, а также подход к проектированию, ориентированный на предметную область (DDD), описывает создание настольного приложения для имитации чата в стиле мессенджера WeChat. Если проект окажется полезным, автор просит поддержать его (подписаться, поставить лайк, поделиться).

Автор: Маленький Фу, Java Developer, эксперт CSDN, автор блога «Bugstack».

Как поддержать:

  • Подписаться на официальный аккаунт Bugstack.
  • Поставить лайк: нажать на звёздочку справа вверху.
  • Поддержать автора: поставить лайк или оставить комментарий.

После дождя небо проясняется, На горе Ушань облака как краски. Сердце словно вдаль улетает, Одет по последней моде, как раз кстати.

Закончился долгий отпуск, и с первого дня я начал изучать технологию Netty, чтобы закрепить различные типы технологических стеков в реальных бизнес-процессах. И тогда я приступил к реализации проекта, имитирующего общение в WeChat, с использованием Netty!

Изучение любого нового технологического стека включает в себя следующие этапы: запуск HelloWorld, освоение API, практическую реализацию и, наконец, глубокое изучение исходного кода. В ответ на такой запрос программисты на Java, вероятно, подумают о некоторых технических аспектах, которые можно использовать для заполнения различных модулей нашего проекта, таких как пользовательский интерфейс (JavaFx, Swing и т. д.), связь (Socket или знание Netty framework), серверный контроль (MVC model + SpringBoot) и так далее. Однако объединение этих технологий в рациональную систему является наиболее важной частью процесса обучения, практики и роста.

Многие молодые специалисты при поиске работы сталкиваются с требованиями, включающими Netty. Это связано с тем, что Netty — это выдающийся фреймворк NIO, который широко используется. Независимо от того, в какой отрасли вы работаете — интернет, большие данные, связь или игры, — Netty всегда присутствует. Например, в RPC-фреймворке Alibaba Dubbo Netty используется в качестве основного коммуникационного компонента для внутренней связи между узлами. RocketMQ, промежуточное ПО для сообщений Taobao, также использует Netty в качестве высокопроизводительного асинхронного коммуникационного компонента. Помимо компаний Alibaba и Taobao, многие другие крупные предприятия также используют Netty для создания высокопроизводительных распределённых сетевых сервисов.

Поэтому нам необходимо изучить Netty. Чтобы помочь вам лучше и быстрее освоить эту технологию, мы выбрали хорошо знакомую и интересную тему «Настольный чат в стиле WeChat» в качестве нашей цели. Мы хотим, чтобы программисты на Java использовали свой привычный язык программирования вместе с JavaFx, Netty4.x, SpringBoot, MySQL и другими технологиями, а также подходом DDD к проектированию для создания настольного чата, реализующего основные функции общения. Таким образом, изучая Netty, мы также создаём разумную архитектуру и чистый код.

Часть 1. Исходный код проекта

Адрес исходного кода:

Часть 2. Обзор функций

Эта статья будет разделена на три больших раздела, описывающих процесс шаг за шагом:

Раздел 1: Разработка пользовательского интерфейса. Использование JavaFx и Maven для создания пользовательского интерфейса рабочего стола, пошаговое описание окна входа, окна чата, диалогового окна, панели друзей и других элементов пользовательского интерфейса и связанных с ними событий. Этот раздел научит программистов на Java создавать настольные приложения.

Раздел 2: Архитектура проекта. В этом разделе мы будем использовать четырёхслойную модель проектирования, основанную на DDD, и объединим её с Netty для разработки разумной многоуровневой структуры. Также будет описана соответствующая структура библиотеки таблиц. После изучения этого материала вы сможете создать более совершенную структуру.

Раздел 3: Реализация функций. Здесь мы подробно рассмотрим реализацию различных функций общения, включая вход в систему, добавление друзей, уведомления о диалогах, отправку сообщений и восстановление после потери соединения. Наконец, мы завершим разработку всего проекта и покажем, как практика помогает в изучении навыков.


Часть 3. Демонстрация проекта

Страница входа

Страница входа

Страница чата

Страница чата

Добавление друзей

Добавление друзей

Уведомления о сообщениях

Уведомления о сообщениях

Часть 4. Изучение курса (добровольная поддержка)

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

Ссылка для изучения: chat.itstack.org.

Часть 5. Как со мной связаться

  • Присоединяйтесь к группе для обсуждения. Цель группы — предоставить хорошую платформу для технического обучения и обмена. Поэтому мы не допускаем никакой рекламы! Поскольку количество участников в группе WeChat превышает 100 человек, вы не можете присоединиться к ней напрямую. Пожалуйста, отсканируйте QR-код ниже, добавьте автора «Маленький Фу» в WeChat и отметьте «присоединиться к группе».
  • Официальный аккаунт. Мы сосредоточены на оригинальных тематических исследованиях, делимся знаниями таким образом, чтобы их было легко усвоить, и надеемся, что каждый сможет чему-то научиться. На данный момент мы завершили следующие тематические исследования: практические примеры использования Netty4.x, реализация JVM на Java, мониторинг всей цепочки с помощью JavaAgent, ручная разработка RPC-фреймворка, тематические исследования DDD и анализ исходного кода и т.д.

Часть 6. Участие и вклад

  1. Если у вас есть какие-либо предложения или вы обнаружили ошибки в тексте, пожалуйста, отправьте issues для исправления.
  2. Для тех знаний, которые я не затронул, пожалуйста, отправьте PR.

Часть 7. Благодарность

Спасибо следующим участникам за их вклад в этот проект. Конечно, здесь перечислены не все участники, поэтому я не буду перечислять их всех. Если вы хотите быть добавлены в этот список и внесли свой вклад через Issue или PR, пожалуйста, свяжитесь со мной.

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

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/fustack-NaiveChat.git
git@api.gitlife.ru:oschina-mirror/fustack-NaiveChat.git
oschina-mirror
fustack-NaiveChat
fustack-NaiveChat
master