Pull to refresh
30
0
Константин @Kotyamba

Senior Developer

Send message

Как мы позволяем разработчикам разрабатывать, а не перерабатывать

Reading time 4 min
Views 6.9K

Привет! Меня зовут Костя Карусев, я тимлид в одной из команд направления WMS (Warehouse Management System). В статье я расскажу, как выглядит наш процесс разработки, и как он помогает разработчикам заниматься своим делом и с чистой совестью отдыхать на выходных.


Отвечу на такие вопросы:


  • почему мы не используем полноценный SCRUM;
  • что такое feature-team и как эта концепция сосуществует с привычными командами;
  • как отстроенные процессы помогают разработке двигаться предсказуемыми темпами, а разработчикам — не перерабатывать.

Читать дальше →
Total votes 13: ↑11 and ↓2 +9
Comments 9

SOLID — это несложно. С примерами на Python

Reading time 16 min
Views 29K

Привет, Хабр! Меня зовут Павел Корсаков, я python-разработчик в облачном провайдере beeline cloud.

Почти на всех собеседованиях задают вопросы про SOLID: что это такое, зачем нужен, как его применяет кандидат, как понимает принципы из него?

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

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

Читать далее
Total votes 25: ↑20 and ↓5 +15
Comments 43

Простой и удобный шаблон для bash-скриптов выполняемых по расписанию

Level of difficulty Easy
Reading time 4 min
Views 22K

Хочу поделиться с сообществом простым и полезным шаблоном скрипта-обёртки на bash для запуска заданий по cron (а сейчас и systemd timers), который моя команда повсеместно использует много лет.

Сначала пара слов о том зачем это нужно, какие проблемы решает. С самого начала моей работы системным администратором linux, я обнаружил, что cron не очень удобный планировщик задач. При этом практически безальтернативный. Чем больше становился мой парк серверов и виртуальных машин, тем больше я получал абсолютно бесполезных почтовых сообщений "From: Cron Daemon". Задание завершилось с ошибкой - cron напишет об этом. Задание выполнено успешно, но напечатало что-нибудь в STDOUT/STDERR - cron всё равно напишет об этом. При этом даже нельзя отформатировать тему почтового сообщения для удобной автосортировки. Сначала были годы борьбы с использованием разных вариаций из > /dev/null, 2> /dev/null, > /dev/null 2>&1, | mail -E -s '<Subject>' root@.

Читать далее
Total votes 61: ↑58 and ↓3 +55
Comments 4

Межпланетная файловая система IPFS

Reading time 7 min
Views 79K

InterPlanetary File System — это новая децентрализованная сеть обмена файлами. Также выполняет функцию сети доставки содержимого.


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


Такая система позволяет более гибко подойти к хранению и передаче данных в сети. Недостатком такого подхода является то что всё что загружается в сеть режется на блоки и складывается в отдельный каталог на вашем диске.(Исправлено: "больше нет необходимости копировать в сеть") Поиск по имени файла или каталога в IPFS отсутствует также как и в сети BitTorrent.


image

Читать дальше →
Total votes 23: ↑20 and ↓3 +17
Comments 36

Создание telegram-ботов с интерактивным меню

Level of difficulty Medium
Reading time 15 min
Views 34K

Однажды меня попросили провести ревью и рефакторинг одного telegram-бота. Увидев файл размером 2000 строк, рассчитанный только на обработку разных меню я понял, что это требует унификации и общих подходов. Так родилась библиотека aiogram-dialog

В этой статье я бы хотел обратить внимание на некоторые проблемы, которые мы встречаем при создании таких меню, предложить варианты их решения. А во второй половине статьи показать как это решается с помощью aiogram-dialog.

Мы не будем рассматривать архитектуру всего приложения, об этом вы можете прочитать у Фаулера или Мартина. Мы поговорим только про определенную часть UI ботов. Так же это не будет введением в разработку telegram-ботов с нуля. Я предполагаю, что читатель знаком с питоном, ООП и слышал о такой вещи как DRY.

Примеры выбраны так, чтобы проще было показать определенные проблемы, но это не единственные сценарии приводящие к ним.

Читать далее
Total votes 25: ↑24 and ↓1 +23
Comments 4

Как выбрать преподавателя/репетитора

Reading time 3 min
Views 6.9K

Писал про преподавателей иностранных языков, но, в общем, работает для почти любых репетиторов.

В общеобразовательных и языковых школах обычно низкая зарплата, и хорошие учителя сбегают в репетиторство. На репетиторских сайтах вы имеете дело не с системой, а с репутацией конкретного специалиста: там довольно ответственно собирают отзывы. Хотя, конечно, преподаватель с регалиями может быть абсолютным бездарем, а никому не известный студент – давать отличные уроки за копейки. Причём отзывы хорошие и там и там: у учеников мало критериев оценки и примеров для сравнения, а какой-то прогресс будет с любым учителем, даже с бесплатными видеоуроками на youtube.

Часто советуют обращать внимание на беглость речи самого репетитора. Это почти то же самое, что выбирать тренера по тяжёлой атлетике, руководствуясь тем, сколько железа он способен поднять. Есть отличные преподаватели и переводчики, которые не могут бегло говорить на языке, с которым работают. Этапы и механизмы формирования разговорных навыков я разобрал в статье «О развитии навыка говорения».

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

Найти по-настоящему сильного преподавателя – задача непростая. Неподготовленный человек может сделать это разве что случайно, и на первом этапе ему всё равно придётся опираться на отзывы и регалии.

Я много лет тренировал преподавателей английского, и вроде бы удалось выявить косвенные признаки профессионализма, на которые может опереться любой человек при первом (именно первом!) взаимодействии с репетитором.

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

Как открыть портал наружу: самый полный гайд по VPN

Level of difficulty Easy
Reading time 19 min
Views 59K

Выбор, установка и настройка VPN. Какие VPN заблокированы на территории РФ. Рабочие VPN в России в 2023 году с оплатой криптой. Как ускорить VPN. Как узнать, работает ли шифрование трафика

Читать далее
Total votes 25: ↑19 and ↓6 +13
Comments 32

Ручная отладка мобильного фронтенда с нуля до PRO за 30 минут

Level of difficulty Easy
Reading time 18 min
Views 9.9K

Привет! Меня зовут Виталий, я фронтенд-тимлид в KTS.

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

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

• В responsive mode браузера на компьютере

• С помощью эмуляторов iOS и Android

• На физическом iPhone и Android-устройстве через USB

• С помощью Browserstack

Читать далее
Total votes 31: ↑31 and ↓0 +31
Comments 0

Импортозамещаем Evernote. Obsidian – менеджер заметок и лучший друг менеджеров

Reading time 11 min
Views 61K

Привет, Хабр! Меня зовут Николай Суворов. Я – профессиональный менеджер, руководитель направления Delivery Management в МТС Digital. Занимаюсь Enablement Platform – единой платформой для быстрого создания продуктов в экосистеме МТС. Сегодня я расскажу о своем pet-проекте и о том, как я заменил привычный, но такой недоступный Evernote прекрасным менеджером заметок Obsidian. Статья будет интересна прежде всего тем, кто хочет обладать «вторым мозгом» и ни о чем не забывать.

Читать далее
Total votes 53: ↑53 and ↓0 +53
Comments 97

Профилирование Python — почему и где тормозит ваш код

Level of difficulty Medium
Reading time 10 min
Views 17K

Представьте ситуацию: вы написали скрипт для обработки каких-то данных на ноутбуке, ушли попить кофе, а когда пятнадцать минут спустя вернулись, завершилось едва ли 10%.

Почему скрипт работает так медленно? Какая его часть тормозит? Дело в чтении данных, их обработке или сохранении? Как ускорить исполнение? Действительно ли скрипт вообще медленный?

Ответить на все эти вопросы поможет инструмент под названием «профилировщик» (profiler).
Читать дальше →
Total votes 68: ↑67 and ↓1 +66
Comments 10

Скачиваем кусок видео с YouTube с помощью ffmpeg

Reading time 5 min
Views 7.7K

Я выступил с докладом на WordCamp US 2023 и захотел скачать видео с ним. Я всегда стараюсь хранить собственные копии таких видео, потому что некоторые конференции в прошлом со временем закрывали к ним доступ.

Моя презентация в прямом эфире транслировалась через YouTube, однако получившееся видео длится 9,5 часа!

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

Читать далее
Total votes 8: ↑7 and ↓1 +6
Comments 8

Создание красивого Desktop-приложения на Python (customtkinter)

Level of difficulty Easy
Reading time 4 min
Views 50K

Если Вы как и я решили впервые взглянуть в сторону Python после нескольких попыток изучения С++/C# то скорее всего первым проектом станет desktop-приложение. Отходя от темы скажу что тяга к изучению этих языков была безнадежно утрачена в виду классического преподавания в духе "лишь бы сдали" и бесчисленных однотипных и монотонных лекций. Как я сказал выше хоть и на начальном уровне, но я всё же касался разработки приложений для шинды и поэтому мне хотелось посмотреть на принципы работы питона сначала отсюда(а не прыгать в django и прочие мощные фреймворки).

Читать далее
Total votes 30: ↑28 and ↓2 +26
Comments 112

React starter (Webpack + Typescript + Css modules + Jest)

Level of difficulty Medium
Reading time 16 min
Views 10K

Хочу поделиться своим видением сборки для быстрого старта разработки на React.

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

Что‑то я подглядел здесь же, на Хабре, к чему‑то пришёл сам, ну и «ангажировал» немного на просторах «необъятного».

Что «под капотом»

Webpack 5
React v.18
Redux (Redux Toolkit)
Typescript
Css modules
Jest
VS Code

Читать далее
Total votes 8: ↑4 and ↓4 0
Comments 11

React + Redux/Effector: инструменты frontend-разработчика для создания интерфейса

Level of difficulty Medium
Reading time 7 min
Views 4.8K

Redux и Effector — это две популярные библиотеки, которые используются для  управления состоянием в веб-приложениях. Но если первая широко известна во frontend-разработке, вторая только набирает обороты. В этой статье мы рассмотрим, как работают оба инструмента, разберем преимущества и недостатки и дадим рекомендации по использованию на проектах. Материал адресован frontend-разработчикам, которые ранее не сталкивались с Redux или хотят найти ему альтернативу.

🚀 Читать далее
Total votes 4: ↑3 and ↓1 +2
Comments 12

Как писать про свой DIY-проект, чтобы его полюбили тысячи?

Level of difficulty Easy
Reading time 3 min
Views 4.5K

Что относится к DIY? Любой завершённый проект, при создании которого использованы лучшие ресурсы человека: руки и мозг, фантазия и изобретательность, инженерная мысль и рабочий дизайн. Это может быть что угодно: от бумажной настолки с необычной логикой до самодельного автомобиля. Проект может реализовать самоучка или топовый инженер, программист или просто очень хороший родитель — важно, что такие проекты реализуются для целей обучения, развлечения, реализации своих способностей и для пользы людей (а как показывает Хабр, ещё и котов). 

Но, к сожалению, не каждый изобретатель готов рассказать о своём проекте — нередко причина кроется в страхе сесть и начать писать, непонимании, как это — говорить буквами о технике (хотя, по нашему опыту, все с этим отлично справляются). Мы подготовили для вас крошечный гайд, почти план — как писать о DIY-проекте на Хабр.

Читать далее
Total votes 30: ↑28 and ↓2 +26
Comments 4

Полное руководство по Flexbox

Reading time 11 min
Views 575K
Полное руководство по CSS flexbox. Это полное руководство объясняет все о flexbox, сосредотачиваясь на всех возможных свойствах для родительского элемента (контейнер flex) и дочерних элементов (элементы flex). Оно также включает в себя историю, демонстрации, шаблоны и таблицу поддержки браузеров.
Читать дальше →
Total votes 23: ↑17 and ↓6 +11
Comments 5

Как я вывел математический способ определить степень вашей финансовой свободы

Reading time 11 min
Views 41K

С помощью нехитрой математической формулы мы с вами сегодня займемся вычислением того, где находится степень вашей личной финансовой свободы на шкале между сомалийским фермером и кремниевым Цукербергом. Ну, точнее, сначала нам придется придумать, как их между собой сравнивать – и поможет нам в этом KFC!

Читать далее
Total votes 63: ↑59 and ↓4 +55
Comments 164

CLI инструменты, которые облегчат времяпровождение в терминале и сделают его приятнее

Reading time 6 min
Views 49K

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

В этом посте описан мой топ-25 обязательных инструментов CLI, на которые я привык полагаться. Если тут нет вашего любимого - дайте мне знать в комментариях :)

Читать далее
Total votes 114: ↑107 and ↓7 +100
Comments 83

Расширяем возможности «малинки» в 2023 году: дополнительные модули и аксессуары для Raspberry Pi Pico

Reading time 4 min
Views 11K

Проекты на основе Pi Pico могут быть очень разными — от простеньких самоделок до профессиональных систем. К сожалению, возможностей у Pico не так много, но их количество можно увеличивать при помощи дополнительных аксессуаров, модулей и расширений. Их, надо заметить, немало — многие производители электронных компонентов выпускают собственные варианты. Мы выбрали несколько таких дополнений, которые заслуживают внимания Хабра. Подробности — под катом.
Читать дальше →
Total votes 52: ↑50 and ↓2 +48
Comments 2

Information

Rating
Does not participate
Location
Симферополь, Республика Крым, Россия
Date of birth
Registered
Activity