Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Как я пишу HTTP-сервисы спустя 13 лет работы с Go

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров25K

Примерно шесть лет назад я написал пост о том, как пишу HTTP-сервисы на Go, и сегодня я снова хочу рассказать, как пишу HTTP-сервисы.

Тот пост оказался довольно популярным и вызвал обсуждения, повлиявшие на то, как я делаю это сегодня. И спустя годы ведения подкаста Go Time, обсуждения Go в X/Twitter и поддержки подобного кода я решил, что настало время обновить информацию.

(Если вы педант и скажете, что Go не совсем 13 лет, то я отвечу, что начал писать HTTP-сервисы на Go версии .r59.)

В этом посте рассматривается широкий спектр тем, связанных с созданием сервисов на Go

Читать далее
Всего голосов 38: ↑38 и ↓0+38
Комментарии20

Делайте что угодно со своими файлами, ну почти

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров8.7K

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

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии16

CI/CD в каждый дом: сборочный цех базовых docker-образов

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров15K

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

Последнее время DevOps и CI/CD де-факто стали повсеместным стандартом независимо от размера команды, в интернетах хватает статей, почему это важно, в чём собственно идея, полезных практик и других материалов. Я же решил подойти с несколько другой стороны и максимально доступным языком на практических примерах рассмотреть отдельные задачи и их решения в рамках концепции.

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

Кому, собственно, это может пригодиться? Я бы сказал, что почти кому угодно, кто хочет организовать ту компоненту CI/CD, которая отвечает за построение и релизный цикл базовых образов внутри инфраструктуры вашей компании или даже персональных проектов (зародился он именно в процессе приведения в порядок моих пет-проектов).

Какой практический пример может быть без публичного репозитория с MIT-лицензией? Если вам не интересно читать статью, то можно прямо из превью перейти по ссылке и напитаться кодом. Репозиторий же можно копировать как целиком, так и кусками, буду только рад, если он кому-нибудь пригодится. На любые вопросы — готов ответить в комментариях или issues.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии12

Синхронизация локальных изменений с docker/kubernetes контейнером

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров8.6K

Салют!

Хочу рассказать вам про такие замечательные инструменты как docker compose(быть точнее про новую возможность watch), skaffold, tilt.

Рассказать для чего они полезны, как пользоваться и с примерами.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии6

PowerShell и Selenium. Проще, чем кажется

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров8.1K

Всем привет! В продолжении публикации о возможностях PowerShell, упомянул, что выделю в отдельную статью использование библиотеки Selenium с упомянутым языком. Этот небольшой гайд также может подойти для понимания, что из себя представляет данная библиотека и общее представление, как с ней работать, т.к. не зависимо от выбранного вами языка, принцип работы с Selenium одинаковый. Сразу отвечу на вопрос для тех, кто не знает, что это за библиотека или кому она может понадобиться. Selenium в первую очередь инструмент для функционального тестирования, это когда нужно проделать ряд действий имитируя реального пользователя и убедиться, что функционал Web-приложения работает исправно или неисправно. Реже используется для автоматизации различных задач в браузере (вызов JavaScript функций по средствам нажатий кнопок, заполнение форм и т.п.), для которых не предусмотрено API, а в некоторых случаях может выступать более удобной и полноценной альтернативой. Работая системным администратором, мне было удобно автоматизировать действия в панелях управления различных сервисах, или собирать специфические метрики с отправкой в базу данных. Selenium даже может входить в список инструментов DevOps-инженера. На мой взгляд, инструмент очень интересный с точки зрения творческого подхода к решению различных задач.

Постараюсь разложить все по полочкам, от установки всех зависимостей до примера работы с данным инструментом, также продемонстрирую альтернативный инструмент, который использовал до знакомства с Selenium. Специально для статьи подготовил модуль, который позволяет общаться с бесплатной версией ChatGPT из консоли PowerShell, который вы можете установить, используя всего две команды, а так же покажу, как просто создать такой модуль. Хочу заметить, что осознанно выделяю данную статью в средний уровень сложности Habr, по итогам ознакомления, для людей базово знакомых с PowerShell (для этого у меня есть отдельная работа с заметками), порог вхождения будет минимален.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии3

Публикация локального сервера из дома в интернет

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров44K

Приветики. Надеюсь, все отошли от новогодних, и можно писать и читать дальше. Как хозяин умного дома, я состою в чатике по Home Assistant, там прекрасное ответчивое комьюнити,
но периодически задаётся вопрос по тому, как собственно выставить свой веб сервис в интернет. И оказывается, что в двух словах тут не ответишь, а вменяемой инструкции на которую можно дать ссылку - нет. Так что теперь она будет здесь.

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

Мы рассмотрим здесь несколько сценариев - статический белый айпи, динамический белый айпи, и серый. Для серого рассмотрим варианты с готовыми сервисами, с помощью Keenetic и с помощью ssh туннеля. Погнали!

Читать далее
Всего голосов 57: ↑55 и ↓2+62
Комментарии97

Чем заняться на каникулах? 5 идей для пет-проектов, которые можно сделать за новогодние праздники

Время на прочтение3 мин
Количество просмотров26K

Привет, Хабр! В 2023 году наши коллеги создали много интересных проектов: виртуальную девушку в Telegram, нетипичную игру на Flipper Zero и бота для заказа шавермы. Под катом собрали лучшие инструкции и разделили их по времени разработки. Сохраняйте подборку в закладки: пригодится всем, кто хочет провести новогодние праздники с пользой.
Читать дальше →
Всего голосов 33: ↑22 и ↓11+21
Комментарии6

Как вернуть себе потерянные (или украденные из-за санкций?) умные функции стиральной машины Bosch

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров45K

У меня была стиральная машина Bosch последней линейки, купленная ещё в 2022 году, но когда недавно я захотел познакомиться с её умными функциям в мультибрендовом приложении Home Connect от Bosch/Siemens, то обнаружилось, что способ подключения стиралки к приложению, описанный в инструкции, не работает.

После небольшого поиска в интернете узнал, что в апреле 2022 года приложение просто перестало работать в России безо всяких уведомлений. Проблемы настигли обладателей умной бытовой техники Bosch, Siemens и других брендов: Gaggenau, NEFF, Thermador, Balay, Constructa, Pitsos и Profilo.

Я почитал различные эмоциональные отзывы, но это не помогло мне понять как сделать так, чтобы стиралка заработала с моим локальным умным домом Home Assistant с открытым исходным кодом.

Обходим запреты восстанавливаем функционал
Всего голосов 37: ↑23 и ↓14+14
Комментарии228

Синхронизация операций в .NET на примерах

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров10K

Всем привет. Сегодня я расскажу об инструментах, которые существуют в .NET для параллельной работы с какими-то внешними ресурсами и приведу примеры, где и как их можно применить.

При параллельной работе с каким-то ресурсом, нам нужно синхронизировать доступ к нему, чтобы не попасть в состояние годнки или банально не перегрузить его. Для этого в .NET существуют следующие вещи:

Читать далее
Всего голосов 14: ↑10 и ↓4+7
Комментарии26

Правильная работа с базой данных на Python

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров29K

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

Читать далее
Всего голосов 12: ↑8 и ↓4+6
Комментарии24

Flask для начинающих

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров59K

Как начать работать с Flask

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

Вы новичок в программировании и мечтаете о создании собственных веб-приложений? Эта статья — ваш ключ к пониманию Flask, одного из самых доступных и гибких веб-фреймворков на Python. От установки и простых примеров до работы с данными и базами данных — мы покрываем все, что вам нужно для старта.

За 15-20 минут чтения вы получите не только теоретические знания, но и практические советы от опытного разработчика. Присоединяйтесь к миру веб-разработки и откройте для себя, как просто и увлекательно может быть создание ваших первых веб-приложений с Flask!

Читать далее
Всего голосов 14: ↑12 и ↓2+11
Комментарии39

Логирование в Golang

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров14K

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

Как в Golang логирование поживает? Рассмотрим этот вопрос в статье.

Рассмотрим основные библиотеки и подходы.

Читать далее
Всего голосов 18: ↑10 и ↓8+6
Комментарии9

Насколько надежна ваша парольная фраза?

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров3.4K

Парольная фраза (passphrase), часто называемая «кодовой фразой» или «25 словом», является частью предложения BIP-39 и создает дополнительный слой безопасности для вашего сида. Благодаря парольной фразе, пользователь может создать несколько кошельков на основе одной и той же сид‑фразы. Эта статья расскажет о том, как лучше всего выбрать парольную фразу и обезопасить свои монеты.

Читать далее
Всего голосов 6: ↑2 и ↓4-1
Комментарии5

<dl> или <table>? Исследуем подходы к представлению пар ключ-значение в HTML

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.1K

Казалось бы, простая задача - сверстать список пар ключ-значение. Бери <div> и делай. Но что, если захотелось подушнить? Этим и займёмся в статье...
Рассмотрим три подхода к решению этой задачи: <div>, <dl>, <dt>, и <dd>, и <table>. Обсудим преимущества, недостатки и примеры.
Цель - помочь выбрать наиболее подходящий подход для конкретной задачи.

Читать далее
Всего голосов 14: ↑11 и ↓3+11
Комментарии15

Ускорение загрузки сайта: туториал для джунов

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров11K

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

В начале — пару слов о себе. Меня зовут Полина и я работаю «Rocket Business» уже несколько лет. Свой путь от джуна до тимлида прошла именно здесь. Поэтому своим мини-пособием решила делиться в корпоративном блоге: оставляю в помощь потомкам и аудитории Хабра. 

Читать далее
Всего голосов 24: ↑24 и ↓0+24
Комментарии18

Работаете с микросервисами? Идём в сторону Go

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров6.4K

Разработчики приложений с микросервисной архитектурой обращаются к Golang не только как к основному языку, но и как к вспомогательному — в дополнение к другим, более сложным. А мы решили обратиться к спикеру курса «Golang-разработчик» Виталию Лихачеву, Senior Software Engineer в Avito, чтобы он нам рассказал, почему лично он выбрал бы Go. 

Читать далее
Всего голосов 18: ↑9 и ↓9+1
Комментарии5

Торговые роботы на Golang

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров10K

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

Я Александр Парфенов, бэкенд-разработчик в Тинькофф Инвестициях и автор InvestAPI SDK для языка Go. Расскажу о том, как автоматизировать торговые стратегии при помощи Tinkoff INVEST API и языка Go.

Читать далее
Всего голосов 14: ↑12 и ↓2+14
Комментарии7

Auto-Scaling в телеграм-ботах

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров3.1K

Салют, Хабр!

Auto-scaling, или автоматическое масштабирование, — это механизм, позволяющий гибко адаптироваться к изменяющимся условиям нагрузки, автоматически расширяя или сокращая ресурсы. Эта технология очень актуальна в нашем мире.

К примеру вы создали свой невероятно крутой телеграм-бот, который стал неожиданно стрельнул. Сначала он справлялся со стабильным потоком запросов, но по мере роста и увеличения активности сабов бота, стало очевидно, что требуется более масштабируемая инфраструктура.

Auto-scaling позволит не только поддерживать стабильную работу бота при всплесках активности, но и существенно снизит затраты на поддержание избыточной инфраструктуры в периоды низкой активности.

Читать далее
Всего голосов 9: ↑5 и ↓4+2
Комментарии5

Управление зависимостями в Go

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров5.5K


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

Go Modules был введен в Go с версии 1.11 как официальная система управления зависимостями. Она позволяет автоматически загружать зависимости, управлять версиями, и облегчает совместную работу.
Читать дальше →
Всего голосов 27: ↑25 и ↓2+27
Комментарии2

Деплой python-проекта на linux-сервере в изолированном сегменте сети

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров6.4K

Необходимо выполнить деплой python-проекта со всеми его зависимостями из локального Git на linux-сервере в изолированном сегменте сети.

Основная проблема заключается в том, что на сервере для python-проекта невозможно подтянуть зависимости простой командой «pip install», так как доступа к каталогам пакетов типа PyPI просто нет, также в сети нет никакого прокси - решение этой проблемы и описано в данной статье.

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

Читать далее
Всего голосов 6: ↑2 и ↓40
Комментарии42

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Software Developer, Backend Developer
Intern
Python
Git
OOP
Linux
Docker
CI/CD