Pull to refresh
2
0
Денис @Den_CH

Оператор ЭВМ

Send message

Кому нужно программное обеспечение как услуга: основные виды SaaS с примерами

Reading time10 min
Views19K

Сегодня модель облачных услуг охватила все ниши бизнеса и приносит SaaS-компаниям огромные прибыли. Например, Salesforce — крупнейший в мире провайдер SaaS — только в 2021 году заработал 21,2 млрд долларов, увеличив свой доход по сравнению с предыдущим 2020 годом на 24%. Согласно экспертным прогнозам, в 2025 году мировой рынок SaaS достигнет объема 436,9 млрд долларов. 

Одним из главных драйверов роста SaaS стала эпидемия COVID-19. Повсеместный переход на удаленку и внедрение мер социального дистанцирования заставили предпринимателей по всему миру трансформировать свои бизнес-модели на базе онлайн-сервисов.

Читать далее
Total votes 11: ↑8 and ↓3+6
Comments5

Опенсорс-хелпдеск как альтернатива Zendesk и Help Scout. Архитектура, дизайн и юзабилити

Reading time6 min
Views13K


Это перевод ряда статей из блога одного опенсорсного хелпдеска (и общего почтового ящика) на Laravel. История данного проекта — хороший пример того, как опенсорс-сообщество может не просто повторить, но и местами улучшить дизайн и функционал уже готового распиаренного коммерческого продукта, а также стимулировать его развитие и изменение к лучшему.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments5

Разработка Telegram-бота для управления файлами и заметками с помощью Aiogram 3 и асинхронной SQLAlchemy

Level of difficultyMedium
Reading time32 min
Views5.4K

Привет, друзья! Сегодня я представляю вам новую практическую статью, посвященную разработке телеграм‑ботов с использованием фреймворка Aiogram 3. В этот раз мы сосредоточимся на практической стороне вопроса и уже к концу статьи напишем своего, достаточно функционального, бота.

Для полного погружения желательно, чтобы вы уже имели базовые знания Python, были знакомы с фреймворком Aiogram 3 (на моем Хабре уже есть около 15 публикаций, в которых я подробно разбираю создание телеграм‑ботов с нуля на этом фреймворке), а также имели общее представление о базах данных, в частности SQLite, и их интеграции с Python.

Что мы будем делать сегодня?

Сегодня мы создадим телеграм-бота для хранения заметок и файлов. Мы будем использовать фреймворк Aiogram 3 для разработки, а базу данных SQLite с асинхронным движком aiosqlite для хранения данных. Наш бот будет иметь следующий функционал:

Читать далее
Total votes 14: ↑13 and ↓1+18
Comments7

Ускоряем разработку на FastAPI: Мощный инструментарий для создания и тестирования API

Level of difficultyMedium
Reading time11 min
Views2.5K

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

Ходя по множеству собеседований, я заметил что многие компании, активно использующие FastAPI, разработали собственные библиотеки, но аналогичных инструментов с открытым доступом и свободной лицензией практически нет. Я, как опытный backend-разработчик на Python и Django, решил адаптировать и интегрировать наиболее полезные и востребованные решения для разработки REST API в FastAPI, основываясь на своем опыте работы с Django.

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments9

Почти все, что вы хотели бы знать про Docker

Level of difficultyEasy
Reading time11 min
Views60K

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

Предполагается, что читатель что-то слышал про Docker и хотел бы начать знакомство с технологией. Мы постараемся упростить этот процесс.

Читать далее
Total votes 65: ↑60 and ↓5+65
Comments57

FastStream — новый убийца Celery?

Level of difficultyEasy
Reading time7 min
Views12K

FastStream - это относительно новая блестящая игрушка в руках Python'истов, которая создана специально для работы с брокерами сообщений.

В Python сложилось устойчивое убеждение, что если мы работаем с MQ - то нам нужен Celery, но он слегка устарел. Именно поэтому люди пытаются выкинуть "деда" и затащить вместо него любой новый многообещающий MQ-инструмент. Кроме того, культ Celery настолько силен в умах, что практически все новые библиотеки для работы с MQ пытаются стать его "убийцей" и заменой.

Однако, это не совсем верно. Существует огромный пласт проектов, которым нужен не фреймворк для менеджмента задач, а просто "голый" функционал Kafka/RabbitMQ/NATS/whatever для межсервисного взаимодействия. И все эти проекты вынуждены довольствоваться "сырыми" python-клиентами к своим брокерам, а всю обвязку вокруг этих клиентов писать самостоятельно. FastStream целится как раз в эту нишу.

В рамках статьи я хочу убедить вас, что не Celery мы едины, и для альтернативных инструментов найдется место под солнцем. А также рассмотрим фичи FastStream, которые он привносит в застоявшийся мир MQ-инструментов.

Читать далее
Total votes 27: ↑26 and ↓1+28
Comments23

Вопросы по SQL, которые часто задают на собеседовании. Часть 1

Reading time14 min
Views74K

SQL (Structured Query Language) – это язык программирования, используемый для управления реляционными базами данных. В этой статье я собрал вопросы по SQL, с которыми вы можете столкнуться на собеседовании. Их часто задают для проверки общих знаний и навыков.

Читать далее
Total votes 29: ↑25 and ↓4+22
Comments24

Размещение телеграмм бота (Aiogram3) на VPS/VDS

Level of difficultyMedium
Reading time4 min
Views7.8K

Расскажу как просто задеплоить телеграмм бота на Aiogram 3 с webhook на VPS/VDS. Посмотреть видео версию, которую я выложил, можно на YouTube

Также покажу установку двух типов сертификатов SSL: ...

C Nginx и без него ...

Читать далее
Total votes 7: ↑5 and ↓2+5
Comments9

ИИ вместо астролога или как я создавала астробота Катю

Level of difficultyMedium
Reading time6 min
Views4.7K

Обучение на курсах NLP от OTUS подходило к концу и нужно было определиться с темой выпускной работы. Я новичок в NLP, но очень хотелось присоединиться к всеобщему хайпу по поводу GPT и своими руками пощупать генеративные модели. Мне, как любителю гороскопов, показалась интересной идея обучить языковую модель писать ежедневные прогнозы по знаку Зодиака и обернуть ее чат-бот, который бы генерировал предсказание по запросу пользователя.

Преподавателю курса задумка показалась также многообещающей, и я с головой окунулась в работу.

Читать далее
Total votes 29: ↑14 and ↓15+4
Comments15

Почему Россия (и многие страны СНГ) – место, где уровень владения английским повально низок?

Level of difficultyEasy
Reading time5 min
Views81K

Только 3.5% россиян знают английский. Пакистан 50%, Германия 56%, Египт 40% — почему? Генетика, лень, система образования, не с кем практиковать... Много причин и очень много вопросов к каждой. У меня есть собственная гипотеза, основанная на личном опыте.

Читать далее
Total votes 118: ↑50 and ↓68-3
Comments685

Построение пайплайна обработки данных в реальном времени с использованием Python

Level of difficultyHard
Reading time11 min
Views8.2K

Привет, Хабр!

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

В этой статье мы рассмотрим как построить пайплайн обработки данных в реальном времени с использованием Python.

Читать далее
Total votes 12: ↑10 and ↓2+14
Comments0

9 архитектурных антипаттернов при разработке телеграм-ботов на Python

Level of difficultyEasy
Reading time17 min
Views16K

Привет, Хабр! Если вас заинтересовал заголовок этой статьи, значит, вас интересует созданием телеграм-ботов, и вы стремитесь к совершенству в этом. Разработка телеграм-ботов требует не только креативности, но и правильной архитектуры. В этой статье мы рассмотрим 9 архитектурных антипаттернов, которые могут стать серьезными преградами на вашем пути к созданию бота.

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

Читать далее...
Total votes 19: ↑12 and ↓7+7
Comments6

Event Loop в деталях

Level of difficultyMedium
Reading time7 min
Views68K

В данной статье поговорим о том, почему Event Loop вообще был создан, как с ним работать и почему про него спрашивают на собесах.

JS был спроектирован как однопоточный язык программирования. Это значит, что он может выполнять только одну операцию одновременно. Тем не менее у JavaScript есть такой механизм как Event Loop, который как раз и позволяет выполнять "асинхронные" операции. Почему "асинхронные" в кавычках? Да просто потому что JavaScript тоже выполняет их синхронно, асинхронности в самом JavaScript как таковой нет. Вперед под кат, будем разбираться)

Promise.then()
Total votes 23: ↑20 and ↓3+19
Comments13

Построение распределенной системы очередей сообщений с RabbitMQ и Python

Reading time22 min
Views19K

Распределенные системы — это важная составляющая современных вычислений. Они позволяют нам создавать приложения и сервисы, способные обрабатывать огромные объемы данных, обеспечивать высокую доступность и масштабируемость. Однако, при работе с распределенными системами, существует ряд сложностей и вызовов, которые разработчики должны учитывать.

RabbitMQ — это мощный и гибкий брокер сообщений, который широко используется для создания распределенных систем, поддерживающих обмен данных между различными компонентами приложения. Он был разработан с учетом принципов протокола Advanced Message Queuing Protocol (AMQP), что делает его стандартом в индустрии для обработки сообщений.

Читать далее
Total votes 21: ↑15 and ↓6+14
Comments0

Расширенная настройка бэкэнд-проекта Python ( пример FastAPI )

Level of difficultyMedium
Reading time12 min
Views18K

? Привет! Возможно, вы что-то знаете о Python, если вы здесь. Особенно о веб-фреймворках Python. Например, есть одна вещь, которая меня очень раздражает при использовании Django: наложение слоя структуры проекта.

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

Но как только вы начнете писать «лучшие» приложения, вы освоите другие шаблоны проектирования мирового класса, такие как DDD и его многоуровневая архитектура, и через некоторое время вы еще больше усложните свою систему с помощью CQRS. Лично мне стало труднее поддерживать базу кода, следуя всем этим принципам, когда фреймворк является ЦЕНТРАЛЬНОЙ частью всего приложения. Из него даже выйти невозможно, если через какое-то время решишь сменить фреймворк…

✅В этой статье я постараюсь поднять вопрос, а затем решить его.

? Отказ от ответственности: давайте ограничим проект серверного API интернет-рынком.

Читать далее
Total votes 11: ↑8 and ↓3+5
Comments6

15+ небанальных ресурсов для начинающего/продолжающего Python-разработчика

Level of difficultyEasy
Reading time4 min
Views61K

Привет Хабрчанам! Меня зовут Дима Туркин, я — код-ревьюер на курсе «Python-разработчик» Яндекс Практикума и Python-тимлид.

Тема материалов по Python для начинающих и продолжающих свой путь разработчиков уже заезженная, поэтому в этой статье я постарался собрать ссылки на менее известные бесплатные ресурсы, но не менее полезные. Есть чем дополнить — пишите в комментариях!

Читать далее
Total votes 13: ↑12 and ↓1+12
Comments11

Let me teach you the ancient method of Fu Thai! Гнев и ненависть брутфорсеров в 2023 году

Reading time17 min
Views17K

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

Задавшись этим вопросом, я решил повторить эксперимент, сделав из выделенного сервера «ловушку» для всяких плохих ребят. В статье рассказываю, какие интерфейсы привлекают взломщиков, можно ли спрятаться на нестандартном порту и что будет, если оставить пароль по умолчанию. Под кат стоит провалиться хотя бы ради собранной статистики.
Читать дальше →
Total votes 88: ↑88 and ↓0+88
Comments16

Создание библиотеки Python: полный гайд

Level of difficultyMedium
Reading time7 min
Views30K

Создайте свою библиотеку для Python и загрузите на PyPi, сейчас!

В этом туториале я максимально понятно и подробно расскажу о том, как создать свою библиотеку для Python и загрузить её на PyPi, для того, что бы её мог использовать любой!

Читать далее
Total votes 9: ↑7 and ↓2+8
Comments13

Про Linux на встроенной графике Intel

Level of difficultyEasy
Reading time3 min
Views18K

Я уже довольно долго собираю и настраиваю десктопы с Linux для дома и офиса, и последнее время не без удовольствия выбираю конфигурации со встроенной графикой Intel. Когда‑то я начинал с машинки, в которую поставил с Core i3–2105, (HD Graphics 3000), позднее — более новый Core i3–9000 (UHD Graphics 630), а совсем недавно мне очень недорого достался Intel NUC5PPYH, разумеется тоже с фирменным графическим контроллером Intel.

Сразу хочу сказать, что если вы не играете в коммерческие игры в Linux, то графические «встройки» Intel — это лучший выбор в плане стабильности и поддержки производителя. Видеодрайвер уже много лет есть в ядре, и он просто работает: с аппаратным ускорением из коробки, без тиринга, без дополнительных проприетарных блобов и прочей головной боли. Более того, таких драйверов минимум два: это традиционный 'intel' и более новый 'modesetting'. Графика Intel с самого начала лучше всего работала в Wayland, не будем забывать и об этом.

Поводом для этой заметки стало наблюдение: эффекты рабочего стола могут тормозить на старых «встройках» Intel при том, что в OpenGL‑приложениях может быть вполне высокий FPS и хорошая плавность. Я наблюдал разные признаки торможения в двух самых популярных рабочих окружениях (KDE Plasma 5 и Gnome 4) как в X11, так и в Wayland. Я хочу поделиться советом про то, как ситуацию можно исправить на примере дистрибутива Fedora $releasever (на момент описания это 37).

Итак, поехали!
Total votes 29: ↑26 and ↓3+36
Comments28

Как запускать RabbitMQ в Docker

Reading time8 min
Views87K

Алексей Барабанов, IT-директор «Хлебница» и спикер курса «RabbitMQ для админов и разработчиков», подготовил конспект, который поможет научиться запускать и настраивать RabbitMQ в Docker. Вы поймёте, как конфигурировать параметры запуска, а также узнаете о возможностях управления через веб-интерфейс.

Читать далее
Total votes 32: ↑30 and ↓2+30
Comments12

Information

Rating
Does not participate
Registered
Activity