Search
Write a publication
Pull to refresh
10
0
Денис Старцев @startsevdenis

User

Send message

Автоматизация CQC на CI

Level of difficultyMedium
Reading time13 min
Views1.8K

В эти дни проходит внутренняя конференция Aventus IT. И я там был, мёд пиво пил… Шучу. Выступал на тему автоматизации контроля качества кода. И хочу представить вам статью по материалам своего выступления.

Сегодня было два прекрасных доклада про тесты на проекте. Порадовало, что услышал в них некоторые свои идеи. Например, про преимущества запуска тестов на CI вместо локальной машины. Оказывается, что я не один такой.

Со своей стороны, хочу поговорить, про контроль качества кода помимо тестов.

Читать далее

Как ускорить сборку Docker-образов в GitLab: стратегии кэширования с Docker Buildx

Level of difficultyHard
Reading time16 min
Views11K

Скорость сборки Docker-образов играет важную роль в CI/CD, особенно для микросервисов, где частые обновления и тестирования требуют быстрой доставки изменений.

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

В этой статье мы сосредоточимся на том, как эффективно настроить и использовать кэширование с Docker Buildx в CI/CD пайплайнах на GitLab. Мы рассмотрим примеры, когда кэширование позволяет ускорить сборку, и ситуации, когда его лучше отключить для гарантии корректности итогового образа.

Читать дальше →

Неизвестно полезный CSS. Часть 5

Level of difficultyMedium
Reading time6 min
Views13K


Привет, Хабр. Я продолжаю рассказывать про неизвестные широкому кругу разработчиков CSS-фишки. Я отбираю их так, чтобы они были полезны в разного рода проектах. Неважно, верстаете ли вы сайт для малого бизнеса или создаёте супермодное React-приложение. Они поддерживаются большинством браузеров. Отдельно отмечу, что я не считаю IE11 современным браузером. По этой причине я не учитывал его.

Читать дальше →

Когда нужен TypeScript: введение в мир надежного программирования

Level of difficultyEasy
Reading time8 min
Views10K

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

Меня зовут Александр Чернов, я фронтенд-разработчик в Альфе, веду подкаст ТИНОИД, обожаю плавание и влюблён в веб- и фронтенд-разработку.

Читать далее

Три распространенных ошибки с метриками Kubernetes в PromQL

Reading time4 min
Views2.5K

Миллионы разработчиков пишут запросы PromQL и создают пользовательские дашборды Grafana для Kubernetes. И все используют одинаковые метрики из node-exporter, kubelet и kube-state-metrics. К сожалению, не все знают, как при работе с метриками обойти некоторые подводные камни.‍

Команда VK Cloud перевела статью, в которой автор разбирает ошибки в одном простом с виду запросе Prometheus для Kubernetes. Он должен возвращать сведения об использовании памяти пода:

Читать далее

Поднимаем сайт в сети .ton и разбираемся с работой TON DNS

Level of difficultyEasy
Reading time9 min
Views11K

Как поднять сайт в сети TON, как происходит децентрализованный resolving DNS в сети тон, прорыв в WEB3 или очередная глупая задумка, что это за зверь и как его едят — всё это можно узнать под катом.

Читать далее

Анализ эффективности тренировок с помощью Python и линейной регрессии

Reading time14 min
Views5.5K
Был ли эффект от регулярных тренировок? Я проанализировал данные своих предыдущих тренировок с помощью нескольких общепринятых методов и получил неоднозначные результаты.


Читать дальше →

Анализ данных виртуальных велотренировок

Reading time12 min
Views3.2K

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

У вас на руках должен быть FIT-файлы тренировок, и установлены модули matplotlib, pandas, sklearn. В конце статьи ссылка на git с примерами.

Читать далее

Парсинг FIT файлов c данными тренировок

Reading time7 min
Views7.3K

Мне стало интересно проанализировать данные о своих тренировках за последние несколько лет, и я понял, что обычного функционала приложений типа Garmin Connect или бесплатной версии Strava будет недостаточно. В этой статье я расскажу как получить свои персональные данные о тренировках из устройств Garmin и разместить их в реляционной базе данных с помощью библиотек python.

Читать далее

Что же такое этот GraphQL?

Reading time9 min
Views704K

Вашему вниманию предлагаю перевод статьи Sacha Greif "Что же такое этот GraphQL?"


Если вы такой же, как и я, вы обычно проходите через три этапа, когда узнаёте о новой технологии:


  • Отрицание: Ещё одна JavaScript библиотека?! Зачем? У меня уже есть jQuery!
  • Интерес: Хм, наверное мне следует взглянуть на эту библиотеку...
  • Паника: Помогите! Мне нужно изучить эту библиотеку прямо сейчас, иначе мои знания устареют!

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


Именно поэтому сейчас самое время узнать, что же такое этот GraphQL, о котором вы повсюду слышите.

Читать дальше →

Пишем приложение на C#-стеке

Level of difficultyMedium
Reading time10 min
Views13K

Всем привет! Меня зовут Дмитрий Бахтенков, и я .NET-разработчик. Сегодня мы проведем эксперимент — напишем полноценное веб-приложение с использованием решений, которые написаны на C# и платформе .NET. Больше моих статей можно прочитать в медиа вАЙТИ.

Что я имею в виду?

Как мы знаем, в общем случае веб-приложение состоит из бэкенда, фронтенда, базы данных и иногда из кеша. С бэкендом и фронтендом всё понятно: у нас есть замечательный фреймворк ASP.NET Core для сервера и blazor или razor pages для клиента. Однако инфраструктурные части приложения — БД, кеши — чаще всего пишутся на других, более низкоуровневых языках, таких как C и C++.

К счастью, недавно Microsoft выпустила решение для кеширования — аналог Redis, который называется Garnet. В качестве основной базы данных можно использовать документную БД RavenDB, которая как раз написана на C#.

Читать далее

Бесплатная open-source альтернатива Google Photos и iCloud Photos

Level of difficultyEasy
Reading time3 min
Views58K

Как-то мы лежали в кровати с нашим малышом и жена сказала, что фотографий и видео с ним стало больше и она не хочет использовать платное приложение. Примерно так начинается рассказ создателя Immich – бесплатного open-source решения для хранения фотографий и видео.

Надо сказать, в последние годы я тоже регулярно пытался найти бесплатную self-hosted альтернативу Google Photos и iCloud, однако до сегодняшнего дня функциональных и вместе с тем простых в настройке решений я не встречал. Тот же Nextcloud всегда казался чересчур громоздким. Immich же, напротив, сразу завоевал моё сердце, и вот, после нескольких недель его использования, с радостью делюсь своим рабочим примером.

Читать далее

Ассемблер для программистов на языках высокого уровня: условные конструкции

Level of difficultyMedium
Reading time8 min
Views14K

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

На этом уроке мы изучим новые команды и воспользуемся этими знаниями, чтобы перенести на язык ассемблера первую конструкцию высокого уровня: условные конструкции.
Читать дальше →

Влияние vacuum/analyze/bloat на производительность СУБД

Level of difficultyEasy
Reading time4 min
Views2.9K

Задачи эксперимента

1) Оценить степень влияния регулярного выполнения vacuum/analyze на производительность СУБД.

2) Оценить степень влияния распухания таблицы на производительность СУБД.

Читать далее

Что делать, если баг попал в прод?

Level of difficultyMedium
Reading time4 min
Views4.6K

Привет, Хабр! Если вы давно искали подборку полезных статей по Git и Gitflow — загляните в блог beeline cloud. Здесь я делюсь личным опытом, погружаюсь в задачи из практики и даю развернутые комментарии на конкретную тему. 

И да, меня по-прежнему зовут Николай Пискунов, я руководитель направления Big Data. Сегодня поговорим о том, что делать, если баг, несмотря на усилия тестировщиков, все же попал в прод.

Читать далее

ООП в Dart

Level of difficultyMedium
Reading time19 min
Views5K

Йоу, юзер! Даннаястатья относится к циклу статей «База джуна на Flutter». Если ты не видел начальную ноду — ознакомиться можешь тут, а если уже видел — погнали дальше!

Okaaaay let's go!

Как правильно писать тесты? Часть 1

Level of difficultyMedium
Reading time2 min
Views8.3K

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

Обсудим три базовых подхода к тестированию чего‑либо в программе:

Читать далее

Как создать модель миньона с нуля: бесплатные уроки Blender для детей

Level of difficultyEasy
Reading time8 min
Views25K

Давайте прокачаем навыки в направлении трехмерного моделирования и вместе попробуем создать миньона в программе «Блендер», предназначенной для работы с 3D‑графикой. Сразу отметим, что без базовых представлений о Blender подготовленная нами инструкция покажется трудной. Но попробовать точно стоит. Ниже оставим подборку уроков для совсем новичков, можно начать с нее, а затем вернуться к этому туториалу. Уроки предназначены для подростков 13–14 лет и старше.

Создание 3Д‑моделей — распространенное направление: оно используется в киноиндустрии, рекламе, маркетинге и дизайне, а также в разработке игр и промышленности. Профессиональные моделлеры часто применяют инструменты среды Blender — бесплатного программного обеспечения, созданного специально для 3D‑моделирования. Это обусловлено расширенными возможностями платформы.

Если вы уже имеете опыт работы в моделировании или просто хочется попробовать свои силы и сделать первые шаги в создании 3D‑моделей в Blender, вам пригодится представленная инструкция. В ней мы собрали 10 уроков в виде текстовых гайдов, а также предусмотрели видеоролики на случай, если не получится разобраться без визуала. Мы создадим модель миньона, сделаем базовое текстурирование и добавим анимацию.

Читать далее

Как сломать взаимодействие продуктовой команды: 5 вредных советов и антикейсов

Level of difficultyEasy
Reading time6 min
Views5.4K

Привет, Хабр! Я Женя, CPO в корпоративном мессенджере Compass. Собрались мы как-то в баре с 5 продактами, поделились друг с другом рабочими историями, и теперь у меня есть 5 антикейсов, которыми я, с разрешения ребят, поделюсь здесь.

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

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

Читать далее

Как написать чат-бота в Telegram без навыков программирования

Level of difficultyEasy
Reading time15 min
Views65K

Мы напишем вот такого бота

В наше время любой человек без навыков программирования может самостоятельно написать простого чат-бота. Например, чтобы предоставлять услуги через Telegram, организовать работу сообщества и т. д. Скажем, для отметки посещаемости в учебном классе, для общения в домовом чате, для скачивания фильмов и музыки. А техническому специалисту написать такого бота вообще тривиальная задача. Зачем нужны чат-боты, как их использовать бизнесу и частным лицам, как написать бота самостоятельно, если у вас есть навыки программирования или их нет, поговорим в этой статье.
Читать дальше →

Information

Rating
Does not participate
Location
Тверь, Тверская обл., Россия
Date of birth
Registered
Activity