На хабре очень много статей о том, как создать простейшего Телеграм бота с кнопками и логикой. Есть инструкции, как это все запустить на сервере. В этой статье я расскажу, как делать масштабируемых ботов "для продакшена", которыми смогут пользоваться сотни тысяч пользователей.
Пользователь
Книга «Объектно-ориентированный Python, 4-е изд.»
Глубоко погрузитесь в различные аспекты объектно-ориентированного программирования на Python, паттерны проектирования, приемы манипулирования данными и вопросы тестирования сложных объектно-ориентированных систем. Обсуждение всех понятий подкрепляется примерами, написанными специально для этого издания, и практическими упражнениями в конце каждой главы. Код всех примеров совместим с синтаксисом Python 3.9+ и дополнен аннотациями типов для упрощения изучения.
Стивен и Дасти предлагают вашему вниманию понятный и всесторонний обзор важных концепций ООП, таких как наследование, композиция и полиморфизм, и объясняют их работу на примерах классов и структур данных Python, что заметно облегчает проектирование. В тексте широко используются UML-диаграммы классов, чтобы было проще понять взаимоотношения между классами. Помимо ООП, в книге подробно рассматривается обработка исключений в Python, а также приемы функционального программирования, пересекающиеся с приемами ООП. В издании представлены не одна, а две очень мощные системы автоматического тестирования: unittest и pytest, а в последней главе детально обсуждается экосистема параллельного программирования в Python.
Получите полное представление о том, как применять принципы объектно-ориентированного программирования с использованием синтаксиса Python, и научитесь создавать надежные и устойчивые программы.
Введение в математическую оптимизацию на примере компании Recruit. Часть 1
Прим. переводчика: Ранее на хабре не было переводов статей с японского языка. Мы решили исправить это досадное упущение и начать переводить их ещё и с этого языка. Данный материал будет пробой пера.Эта серия статей о том, что такое математическая оптимизация и как она может быть применена в бизнесе через представление примеров применения в компании Recruit. В первой статье представлен обзор математической оптимизации, четыре примера применения в Recruit, процедура применения к реальным случаям, отличия от машинного обучения и как использовать её иначе.
Другие части доступны здесь:
- Введение в математическую оптимизацию на примере компании Recruit. Часть 2
- Введение в математическую оптимизацию на примере компании Recruit. Часть 3
❖ автор Рёсуке Судо
Деплоим приложение на Django в Kubernetes с нуля
Нашей компании уже 6 лет, и 4 из них мы живем с Kubernetes. До этого мы испытали все варианты деплоя приложений на серверах: начиная от простого git pull
до ci/cd
на нескольких серверах.
Сегодня мы на практике разберем, что нужно делать, чтобы ваше приложение оказалось в Интернете. Какие-то моменты я опущу, чтобы на забираться слишком глубоко.
В статье мы пройдем путь от написания кода до запуска в Интернете, рассмотрим необходимые для этого абстракции в Kubernetes, задеплоим приложение в облаке и разберем, что для этого необходимо.
Запускаем PostgreSQL в Docker: от простого к сложному
О простых и продвинутых способах запуска PostgreSQL в Docker: добавляем healthcheck, ставим на мониторинг, настраиваем параметры.
Анатомия веб-сервиса
Анатомия веб-сервиса
Андрей Смирнов
Я попытаюсь залезть в «потроха» и «кишки» бэкенда веб-сервиса и расскажу, как это внутреннее устройство влияет на эффективность сервиса, а также на продукт, его характеристики, и как бы мы могли этим воспользоваться, чтобы наше приложение выдерживало большую нагрузку или работало бы быстрее.
Какую часть я называю веб-сервисом, бэкендом, application-сервером? В классической архитектуре это то, что стоит за http rеverse proxy или load-балансировщиком, а с другой стороны у него находятся база данных, memcached и др. Вот только об этом бэкенде и будет идти речь.
Организация разработки веб-приложений
Привет! Хочу поделится наработками по налаживанию процесса разработки. Вместе пройти путь от найма сотрудников до тестирования ПО.
Допустим вы проснулись утром лидером стартапа после первого раунда инвестиций. Выпили кофе и неотлагательно приступили к работе.
Highload-проект с нуля за 2 месяца
Как за ограниченное время из готовых компонентов создать и запустить по-настоящему нагруженный проект? Рассмотрим пример метрик, архитектуры, технических ограничений и подходов к проектированию систем на примере проекта «Экологический диктант».
Помогут нам в этом, два главных человека из компании Старботс.рф - Станислав Жуковский, руководитель проекта, и Василий Шалимов, архитектор и разработчик фич в части бэкенда. Они расскажут, как собрали сервис онлайн-тестирования за 2 месяца, вместо 8 плановых, а также про человеческий фактор, с которым они столкнулись во время работы.
Метакласс в моделях — Django
Django - это высокоуровневый веб-фреймворк Python, который способствует быстрой разработке и чистому, прагматичному дизайну. Созданный опытными программистами, он берет на себя большую часть хлопот, связанных с веб-разработкой, так что вы можете сосредоточиться на написании своего приложения без необходимости изобретать колесо. Он бесплатный и с открытым исходным кодом. Перед тем, как двигаться дальше, изучите модели Django.
Метамодель (Meta Model) - это, по сути, внутренний класс вашего класса модели. Метамодель в основном используется для изменения поведения полей вашей модели, таких как изменение опций заказа, verbose_name, и многих других параметров. Добавление класса Meta к вашей модели совершенно необязательно. Для того чтобы использовать метамодель, вы должны добавить класс Meta в вашу модель, как показано ниже:
Python service layer: основы оформления бизнес-логики на примере Django-приложений
Django - отличный фреймворк, но он, на самом деле, толком не дает, да и не должен давать, ответ на вопрос, каким образом лучше всего хранить вашу бизнес-логику. Хранение бизнес-логики в моделях или views имеет множество недостатков, которые обычно начинают проявляться при росте кодовой базы проекта. Чтобы решить эти проблемы, разработчики часто начинают искать способы выделения бизнес-логики в своем приложении.
В этой статье я хотел бы попробовать дать стартовую точку на пути выделения слоя бизнес-логики у себя в приложениях и навести на новые мысли тех разработчиков, которые считают выделение этого слоя в своих приложениях чем-то излишним.
Так же хочу обратить внимание, что цель данной статьи не в том, чтобы дать правила, которым требуется слепо следовать, но в том, чтобы указать направление. Сервисный слой и в принципе его наличие, это такая вещь, которую нужно адаптировать под нужды вашей команды, компании и бизнеса.
На самом деле, изложенный далее текст относится не только к Django-проектам. Разрабатывая веб-приложения, используя другие инструменты, вроде Flask, люди используют те же концепции веб-разработки, причём часто именно в таком же виде, как они реализованы, в Django - views, request-response объекты, middlewares, модели, формы.
Собеседование Golang разработчика (теоретические вопросы), Часть I
Как сейчас проходят собеседования на golang разработчика? Что спрашивают?
Ликбез по типизации в языках программирования
Эта статья содержит необходимый минимум тех вещей, которые просто необходимо знать о типизации, чтобы не называть динамическую типизацию злом, Lisp — бестиповым языком, а C — языком со строгой типизацией.
В полной версии находится подробное описание всех видов типизации, приправленное примерами кода, ссылками на популярные языки программирования и показательными картинками.
Протоколы в Python: утиная типизация по-новому
В новых версиях Python аннотации типов получают всё большую поддержку, всё чаще и чаще используются в библиотеках, фреймворках, и проектах на Python. Помимо дополнительной документированности кода, аннотации типов позволяют таким инструментам, как mypy, статически произвести дополнительные проверки корректности программы и выявить возможные ошибки в коде. В этой статье пойдет речь об одной, как мне кажется, интересной теме, касающейся статической проверки типов в Python – протоколах, или как сказано в PEP-544, статической утиной типизации.
Асинхронное программирование (полный курс)
Асинхронное программирование за последнее время стало не менее развитым направлением, чем классическое параллельное программирование, а в мире JavaScript, как в браузерах, так и в Node.js, понимание его приемов заняло одно из центральных мест в формировании мировоззрения разработчиков. Предлагаю вашему вниманию целостный и наиболее полный курс с объяснением всех широко распространенных методов асинхронного программирования, адаптеров между ними и вспомогательных проемов. Сейчас он состоит из 23 лекций, 3 докладов и 28 репозиториев с множеством примеров кода на github. Всего около 17 часов видео: ссылка на плейлист.
Ещё одна подборка книг по фронтенду
«Под поверхностью машины движется программа. Без усилий, она расширяется и сжимается. Находясь в великой гармонии, электроны рассеиваются и собираются. Формы на мониторе — лишь рябь на воде. Суть остаётся скрытой внутри…» Мастер Юан-Ма, Книга программирования.
Под катом собрали 8 книг, которые рекомендуют прочитать наши разработчики. В целом, они все есть на заглавной картинке. Но если хотите почитать разные интересные вырезки из книг, цитаты, пару задач и мнения наших frontend-разработчиков — заходите под кат.
Популярные вопросы на собеседовании по C++ и ответы на них
Те, кто занимается программированием рано или поздно сталкивается с необходимостью прохождения технического собеседования у потенциального работодателя.
О том, что спрашивают на собеседовании у C++ программистов, а также об ответах на эти вопросы и пойдет речь в данном посте.
Как научиться разработке на Python: новый видеокурс Яндекса
Для изучения курса нужно знать основы Python и понимать, как приложения развёртываются на серверах. Мы ждём, что вы умеете делать запросы к базам данных и знаете, как создаются веб‑приложения, — хотя бы на начальном уровне.
Что такое CI/CD? Разбираемся с непрерывной интеграцией и непрерывной поставкой
В преддверии старта курса «CI/CD на AWS, Azure и Gitlab» подготовили для вас перевод полезного материала.
Непрерывная интеграция (Continuous Integration, CI) и непрерывная поставка (Continuous Delivery, CD) представляют собой культуру, набор принципов и практик, которые позволяют разработчикам чаще и надежнее развертывать изменения программного обеспечения.
CI/CD — это одна из DevOps-практик. Она также относится и к agile-практикам: автоматизация развертывания позволяет разработчикам сосредоточиться на реализации бизнес-требований, на качестве кода и безопасности.
Основы Kubernetes
Что такое Kubernetes?
Kubernetes является проектом с открытым исходным кодом, предназначенным для управления кластером контейнеров Linux как единой системой. Kubernetes управляет и запускает контейнеры Docker на большом количестве хостов, а так же обеспечивает совместное размещение и репликацию большого количества контейнеров. Проект был начат Google и теперь поддерживается многими компаниями, среди которых Microsoft, RedHat, IBM и Docker.
Разбираемся с параллельными и конкурентными вычислениями в Python
Я собираюсь рассказать историю о еде, раскрывающую различные возможности конкурентного и параллельного выполнения кода в Python.
Прим. Wunder Fund: для задач, где не критичны экстремально низкие задержки — при сохранении и обработке биржевых данных, мы используем Питон, и естественно применяем описанные в статье подходы. Статья будет полезна начинающим разработчикам.
Мы увидим, что когда один человек одновременно делает несколько дел — это похоже на конкурентность, а когда несколько человек, работая бок о бок, заняты каждый собственным делом — это напоминает параллелизм. Эти ситуации мы разберём на простом и понятном примере закусочных, в которые люди заходят в обеденный перерыв. Такие заведения стремятся обслуживать клиентов как можно быстрее и эффективнее. Потом я покажу реализацию механизмов этих закусочных на Python, а в итоге мы сравним разные возможности одновременного «приготовления нескольких блюд», которые даёт нам этот язык, и разберёмся с тем, в каких ситуациях их применение наиболее оправдано.
А именно, я раскрою здесь следующие вопросы:
▪ Отличия конкурентности от параллелизма.
▪ Различные варианты организации конкурентного выполнения кода (многопоточность, модуль asyncio
, модуль multiprocessing
, облачные функции) и их сравнение.
▪ Сильные и слабые стороны каждого подхода к организации конкурентного выполнения кода.
▪ Выбор конкретного варианта организации конкурентного выполнения кода с использованием специальной блок-схемы.
Информация
- В рейтинге
- Не участвует
- Откуда
- Комсомольск-на-Амуре, Хабаровский край, Россия
- Дата рождения
- Зарегистрирован
- Активность