Хочу стать программистом ч.3

Спасибо всем за поддержку и теплые слова, написанные в комментариях к прошлому посту. Мне было приятно читать = )


Ссылку на репозиторий скину в конце статьи, в дальнейшем планирую писать новый пост примерно раз в неделю с новыми фичами, а на данный момент опубликую пока то что есть.



Итак мы будем делать клиент-серверное приложение. Сперва мой выбор пал на стандартную библиотеку питона socketserver, но он разрывает связь после первого обмена данными, поэтому реализация  будет на socket


Начнем с сервера (код):

Большинство кода являет собой копипасту из документации по модулю selectors.

Cуть в том, что мы слушаем сокет и в бесконечном цикле слушаем события от модуля selectors, заранее вешая туда обработчик accept. Таким образом мы можем подключаться одновременно с нескольких клиентов.


Из интересного можно отметить код split_input_data, где мы регуляркой разбиваем входящие данные на кортеж.


Код клиента вообще прост как 2 копейки(код):

-просто подключается

- ждем ввод

- пишем ответ



Сама структура для хранения сейчас представлена в виде словаря, напомню главная цель данной активности - чтоб работало, о скорости подумаем потом = )

Записывать свое состояние пока не умеет, просто хранит словари в памяти и отдает данные по ключу.

Реализация опять же проста на данный момент. Код



На данный момент основная проблема это то как это все можно протестировать, автоматизировать?

Как замерить скорость и сравнить с реальным redis?

Полное непонимание того как пишутся распределенные приложения.



Ссылка на гит - https://github.com/straus123/strais


Как обычно рад адекватной и не очень критике.

Спасибо!

Программирование на python

636 постов11.8K подписчик

Добавить пост

Правила сообщества

Публиковать могут пользователи с любым рейтингом. Однако!


Приветствуется:

• уважение к читателям и авторам

• конструктивность комментариев

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт


Не рекомендуется:

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

• нарушать правила Пикабу