Пилю месседжер
7 subscribers
9 photos
1 link
Канал о том как я делал месседжер

Автор: @busines_only
Download Telegram
Откройте окно, тут душно

Настало время решить, что же делать с сервером. Кому-то эта задача обойдётся в 30 секунд, но мне, фронтендеру, который ничего не знает о северной разработке эта задача стала не из лёгких. Пришлось потратить пару - тройку вечеров на чтение статей и просмотр разных пояснительных видео на эту тему.

В конце концов я наткнулся на очень удобную экосистему под названием firebase. Данные будут лежать на облачной базе данных от Google - firebase. Да, я знаю что это не самый лучший вариант, но для меня, знающего только то, что backend существует и ничего более - это лучший вариант.

Еще я выделил пару плюсов firebase:

• firebase - это realtime database.
мы можем создавать такие системы, которые будут обновлять свои данные в режиме реального времени на всех устройствах, которые будут этой системой пользоваться, что отлично подходит для месседжера.

• Это документо-ориентированная база данных. - Скорость в разы больше реляционных баз данных.

• Основные функции доступны обсалютно бесплатно.
🤯1
UI kit в процессе разработки
🤩1👨‍💻1
Это база //

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

Прочитал довольно много статей на тему проектирования бд, посмотрел пару лекций и вроде что-то понял. Нашел довольно удобный сервис для графического представления структуры базы и сделал набросок. Как мы видим, все завязано на уникальных id пользователей и сообщений, по ним мы обращаемся к ячейкам разных таблиц и достаем значения.
🐳2
Вот такой ui kit получился.
Авторизация в процессе активной разработки и уже подает первые признаки жизни! Пол дня пытался разобраться с подтверждением адреса электронной почты через ссылку в письме, но в итоге не вышло((

Впереди еще много работы
🛠 Стек технологий //

Для написания мессенджера на Ангуляре я буду использовать следующие библиотеки и технологии:
- Angular (Javascript Framework)
- Typescript
- RxJS (асинхронное программирование)
- Webpack (сборщик модулей)
- Firebase (служба событий и обмена данными)
- Socket.io (реализация сетевого подключения)
- REST API (программирование постоянных запросов)
👨‍💻 Best Practice //

В результате исследования уже существующих месседжеров на angular я выделил для себя несколько хороших практик:

- Использование библиотеки WebSocket для реализации асинхронных соединений между клиентами и сервером.
- Организация эффективной системы аутентификации и безопасности.
- Создание масштабируемого и идеально организованного кода и инфраструктуры.
- Использование Firebase для реализации простой и доступной службы для отправки сообщений, истории последних действий и т. д.
💾 Рисуем базу //

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

У меня все равно осталась куча вопросов.
👏1👌1
📈 roadmap //

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

1. Дизайн пользовательского интерфейса и опыта (✅ done)
2. Разработка серверной, клиентской и базы данных. (in process...)
3. Тестирование кода
4. Развертывание приложения на хостинговой платформе или сервере.
5. Оценка производительности.
6. Реализация протоколов безопасности и конфиденциальности.
7. Проверка масштабируемости мессенджера.
8. Внедрение решения для сбора и хранения данных.
9. Внедрение аналитики и маркетинговых стратегий.
10. Регулярное обновление и поддержка мессенджера.
💯4❤1