|
rss_habr
[Перевод] Руководство по программированию сокетов на Python. Устранение проблем и справочный разделСреда, 23 Ноября 2022 г. 23:48 (ссылка)
К старту курса по Fullstack-разработке на Python делимся заключительной частью руководства по программированию сокетов, эта часть посвящена устранению неполадок и справочным сведениям. К концу руководства вы освоите основные функции и методы модуля Python socket, научитесь применять пользовательский класс для отправки сообщений и данных между конечными точками и работать со всем этим в собственных клиент-серверных приложениях. Читать дальше →https://habr.com/ru/post/700248/?utm_source=habrahabr&utm_medium=rss&utm_campaign=700248
rss_habr
[Перевод] Руководство по программированию сокетов на Python. Протокол и сообщенияВторник, 22 Ноября 2022 г. 23:46 (ссылка)
К концу руководства вы освоите основные функции и методы модуля Python socket, научитесь применять пользовательский класс для отправки сообщений и данных между конечными точками и работать со всем этим в собственных клиент-серверных приложениях. Материалом делимся к старту курса по Fullstack-разработке на Python. Читать дальше →https://habr.com/ru/post/700246/?utm_source=habrahabr&utm_medium=rss&utm_campaign=700246
rss_habr
[Перевод] Руководство по программированию сокетов на Python. Клиент, сервер и несколько соединенийВторник, 04 Октября 2022 г. 22:39 (ссылка)
https://habr.com/ru/post/691296/?utm_source=habrahabr&utm_medium=rss&utm_campaign=691296
rss_habr
[Перевод] Руководство по программированию сокетов на Python. От введения до работающего примераПонедельник, 26 Сентября 2022 г. 23:39 (ссылка)
https://habr.com/ru/post/690186/?utm_source=habrahabr&utm_medium=rss&utm_campaign=690186
rss_habr
[Перевод] Чего вам не говорили про сокетыПятница, 02 Сентября 2022 г. 17:58 (ссылка)
Чтобы эффективно писать приложения, общающиеся через сокеты, мне пришлось понять кое-что, чего мне не сообщал никто и что не написано ни в какой документации. Если у вас есть опыт написания приложения с использованием сокетов, то вся эта информация должна быть для вас очевидной. Она неочевидна для меня как абсолютного новичка, поэтому я попытаюсь как можно подробнее объяснить это, чтобы ускорить процесс освоения сокетов для других новичков. Читать дальше → https://habr.com/ru/post/686134/?utm_source=habrahabr&utm_medium=rss&utm_campaign=686134
rss_habr
Эволюция игрового серверного фреймворка на Python. Часть 2 из 2. Слои логикиПонедельник, 25 Июля 2022 г. 19:06 (ссылка)
В прошлый раз мы отделили логику от инфраструктуры и разбили последнюю на четыре слоя: Server -> Parser -> Application -> Repository. Классы инфраструктуры составляют основной фреймворк, который берет на себя всю рутинную работу, а нам предоставляет писать одну только логику. Логика состоит из контроллеров, которые составляют пятый и пока что последний слой. Они полностью независимы не только от инфраструктуры (им доступно только хранилище), но и друг от друга. Контроллеры — это, на данный момент, базовые единицы бизнес-логики. Если сильно обобщить, то контроллеры занимаются преобразованием одних команд в другие с сопутствующим изменением состояния приложения (Repository). В зависимости от команды и текущего состояния пользователя ... -> Application -> Controller -> Repository. Если размещать всю логику в одном классе контроллера, то это в большинстве случаев окажется большой класс. Большой класс — это много кода, а много кода, собранного в одном месте — это мешанина. Поэтому чтобы в ней не запутаться, вся логика будет разбиваться на различные классы. Одна задача — один класс. Классы, выполняющие сходные функции и способные заменять друг друга, будут группироваться в слои, как и в инфраструктуре. В результате у нас появятся отдельные библиотеки для каждого жанра, а также библиотеки с базовыми классами для групп жанров. В отличие, от основного, инфраструктурного фреймворка, эти фреймворки будут сугубо "логические". При такой организации кода отдельные игры — это лишь соответствующая настройка и использование классов из жанровой библиотеки. Идеальный проект тогда будет состоять вообще из одного main-скрипта в пару строк и yml-файла конфигурации. О том, как писать классы такого уровня обобщения, чтобы исходный код проектов состоял всего из нескольких строк, как раз и пойдет речь в данной статье: Читать далееhttps://habr.com/ru/post/678666/?utm_source=habrahabr&utm_medium=rss&utm_campaign=678666
rss_habr
19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 5. Асинхронное программированиеВторник, 12 Июля 2022 г. 11:00 (ссылка)
Выше мы рассмотрели, как появились генераторы, как они работают и как их можно использовать в роли сопрограмм. Еще раньше было разобрано, как реализовать асинхронность на колбеках с помощью модуля В конце мы создадим минимально возможную версию https://habr.com/ru/post/676144/?utm_source=habrahabr&utm_medium=rss&utm_campaign=676144
rss_habr
19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 3. Первый подход к асинхронностиПонедельник, 11 Июля 2022 г. 18:00 (ссылка)
В прошлый раз мы рассмотрели, что такое синхронное программирование, и с какими проблемами с ним сталкивается разработчик. На примере простого сервера с блокирующими сокетами мы увидели, что в синхронно выполняющейся программе все инструкции выполняются строго по очереди, и если встречается системный вызов ввода-вывода, то он может полностью остановить выполнение программы на довольно продолжительное время — пока не завершится. Весь этот период процессор простаивает в ожидании, хотя мог бы выполнять другие задачи, которых накапливается немало. В результате сервер одновременно может обрабатывать только одно подключение. Чтобы перейти ко второму, предыдущее должно быть закрыто. Решить проблему многозадачности можно стандартными средствами вытесняющей многозадачности: процессами или потоками. Но тут разработчик сталкивается с достаточно серьезными трудностями. Процессы требуют дополнительных ресурсов на свое обслуживание, а потому невыгодны. А потоки влекут за собой множество трудноотлавливаемых и сложновоспроизводимых багов, из-за чего требуется долгая и кропотливая дополнительная работа по синхронизации потоков. В результате мы становимся перед выбором: или дополнительные расходы на железо, или дополнительные расходы на программистов. Но, к счастью, существует и третий вариант — кооперативная многозадачность с помощью системного вызова select и его аналогов (poll, epoll и других). Он позволяет мультеплексировать несколько задач в одном потоке выполнения и в сущности является обычной синхронной программой. А потому никаких дополнительных трат процессорного времени и времени разработчиков не требуется. Читать далееhttps://habr.com/ru/post/676124/?utm_source=habrahabr&utm_medium=rss&utm_campaign=676124
rss_habr
19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 1. ВведениеВоскресенье, 10 Июля 2022 г. 17:14 (ссылка)
Дабы исчерпать до дна тему сокетов в Python я решил изучить все возможные способы их использования в данном языке. Чтобы всех их можно было испытать и попробовать на зуб, были созданы 19 версий простого эхо-сервера: от примитивного использования класса socket до asyncio. Блокирующие и неблокирующие сокеты, процессы и потоки, select'ы и selector'ы, коллбеки и сопрограммы — все эти темы расположены в эволюционном порядке, чтобы один пример плавно перетекал в другой. Отдельно разобрано появление асинхронности в Python. На примерах детально показано, как и зачем появились итераторы, из них — генераторы, сопрограммы. Ближе к концу построен учебный макет библиотеки asyncio с минимально необходимым кодом, чтобы любой (даже такой, как я) смог разобраться, как на самом деле устроена асинхронность, как там все внутри работает. Пишу подробно, чтобы случайно чего не пропустить. Поэтому понятно должно быть всем. Читать далееhttps://habr.com/ru/post/676110/?utm_source=habrahabr&utm_medium=rss&utm_campaign=676110
|
LiveInternet.Ru |
Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат О проекте: помощь|контакты|разместить рекламу|версия для pda |