Пишу сервис общения для людей: работаю над чатами
После доработки серверного микросервиса по рассылке сообщений вернулся к клиентскому приложению, а если точнее - к чатам.
Как-то так получилось, после правок серверной части, клиентское приложение немного развалилась. Пришлось доработать интерфейс взаимодействия и это повлекло доработку клиента.
Приступил к работе над созданием чатов. Вообще, технически все сделано, но оказалось что клиенту нужно добавить систему черновиков. Зачем нужны черновики?
Конечно, хорошо бы закругляться и быстрее выпускать упрощенную первую версию приложения, где доступен только режим личной переписки. Групповые чаты и каналы добавим позже.
Но черновики нужны, лучше их не пропускать. Вообще, лучше ничего не пропускать, как-то уже пробовал халтурить и из этого получались катастрофы:
- не стал дотошно прорабатывать сервис по доставке сообщений - всплыли сюрпризы с идемпотентностью, а это равносильно тому, что сервис будет присылать сообщения "как попало" 😂
- не стал разбираться с context на сервере и когда-то заключил "как-нибудь потом разберусь с ним", пришлось весь сервер ревизировать 😂
- не строил логику приложения / схемы, в результате пришлось строить 😂
- не закладывал в архитектуру softDelete. Просто удалял все с диска. Решил исправить момент и пришлось неплохо так поработать чтобы удаление происходило как надо 😂
Зачем нужны черновики?
Человек начинает писать сообщение в чате, выходит из переписки не отправив сообщение. Это сообщение нужно сохранить в черновик (не зря же человек писал).
Есть еще одна ситуация: человек пишет первое личное сообщение, не отправляет его. Это сообщение сохраняется в черновик и переписка с этим черновиком появляется в общем списке чатов. Например на фото видно эту ситуацию. Начал писать человеку, стер сообщение, вышел в список чатов и в общем списке чатов появился личный чат без сообщений:
Далее нужно будет отправлять команды создания и удаления чатов, обрабатывать удаленные и созданые чаты с учетом черновиков.
Примерно одновременно с созданием и удалением чатов начну работу над экраном переписок. Вообще-то эту работу начал давно, но более плотно к ней приступлю в ближайшее время.
Что крутого в этом сервисе, почему он выстрелит, зачем ты его делаешь, на что рассчитываешь?
Эти вопросы прилетают и в личные и сюда. Ни на что не рассчитываю, ни на какое "выстрелит". В первую очередь собираю платформу как минимум для возможности общения между семьей и друзьями. Этот проект - это в какой-то степени мой "Hello World".
В отличии от конкурентов не планирую использовать дорогие сервисы по доставке сообщений, хранилища и тп. Все планирую поставить у себя и на поддержание работоспособности системы настраиваюсь тратить МИНИМУМ усилий. Частично для этого встраиваю систему защиты и балансировки нагрузки на сервер, чтобы оно работало "без меня".
Хотя, писал ранее что законы меняются, все крутится-вертится и мне придется крутить головой как танк башней, чтобы куда-нибудь не вляпаться. С этим пока не знаю что делать и как быть.
Пока на этом все, обязательно поделюсь следующей порцией успехов.
--
По вечерам разрабатываю сервис для общения. Кому интересен сервис для общения, можете подписаться куда-нибудь на меня, попробуете его в числе первых.
Постепенно буду продолжать делиться успехами разработки.






