

- Главная
- Каталог
- Интернет технологии
- Артём Харченков | IT Инсайты

Артём Харченков | IT Инсайты
Здесь я делюсь мыслями и полезным контентом для сотрудников ИТ и их руководителей. За плечами у меня 12-летний опыт в ИТ. Буду рад, если кому-то мой канал поможет!
Статистика канала
Полная статистикаchevron_rightКогда ваш проект становится хотя бы немного похож на серьёзное приложение, советую переходить на Git Flow — это стандарт организации ведения веток при совместной разработке. Тут тоже всё не сложно, но участвуют чуть больше веток. Обычно набор такой:
main/master — стабильный продакшен-код
develop — текущая разрабатываемая версия
feature/* — ветки для разработки фич
release/* — ветки для подготовки релиза
hotfix/* — ветки для срочных исправлений
Например, когда вы как разработчик взялись написать функцию оплаты, то вы создаёте себе новую ветку, копируя код из develop, а по окончании разработки снова заливаете в develop. Весь путь функции в гите будет выглядеть примерно так:
develop → feature/payment (2 недели разработки) → develop
Продолжая аналогию с документами, мы копируем себе актуальный файл, вносим туда правки, а потом делаем запрос на слияние (Merge Request) наших изменений в актуальный файл.
Иногда случается так, что чуть раньше другой разработчик Игнат уже внёс свои изменения в актуальный файл develop и изменил те же кусочки кода (абзацы), что и вы. В этом случае система подсветит это как конфликт, который вам нужно будет устранить: решить, какую версию абзаца взять — вашу или Игната. А уже после разрешения всех конфликтов и Code Review от лида наша функция загружается в develop — ура!
Когда наступает время выпускать релиз, лид копирует код из develop-ветки в «релизную». Например, для релиза v1.2.0 путь будет выглядеть так:
develop → release/v1.2.0 (тестирование, фиксы багов) → main + develop
По такому флоу живут практически все серьёзные проекты, в том числе те, у которых открытый исходный код (Open Source). По факту Git Flow — это стандарт индустрии, с которым вам придётся столкнуться на любом месте работы, который хотя бы немного перестаёт быть стартапом.
——
Сегодня мы стали знать чуть больше о Git Flow, Trunk Based и Feature Flags.
В двух постах мы разобрали основную суть самых популярных подходов к версионированию кода при совместной разработке. Как и во всех темах, тут есть нюансы, но те самые 20%, которые дают 80% результата, я описал выше.
А что используется у вас — Trunk Based, Git Flow или что-то своё?)
Тема достаточно техническая, поэтому интересно знать ваше мнение, насколько интересны подобные разборы. Поэтому, голосуем)
Ставьте 👨🏻💻, если подобные технические штуки интересны
Ставьте 🤓, если больше хочется про менеджмент и управленческие темы
Я искренне считаю, что даже самые сложные вещи в этом мире можно объяснить «на пальцах» — с помощью аналогий и примеров. Если вы хорошо понимаете, как и где применяется технология или термин, вы всегда сможете выделить те самые 20% из принципа Парето и кратко изложить его суть как для своей бабушки.
Давайте сегодня попробуем сделать это для ещё одной полезной темы — подходов к совместному программированию.
Думаю, все знают, что для одновременной разработки программисты используют систему контроля версий Git. Основной сущностью там является ветка. По сути, ветки — это копии кода приложения с некоторыми изменениями под конкретные цели, аналогично, например, версиям текстовых документов. Просто студенты сохраняют файлы в папки, называя «Курсовая_1», «Курсовая_2», «Курсовая_2_финал», «Курсовая_2_точно_финал!!», а у программистов есть для этого специальная система с совместным доступом)).
В небольших проектах, когда несколько разработчиков пишут код одновременно, они могут заливать свои наработки и реализованные функции (делать коммиты) прямо в основную ветку, которая обычно называется main (или master). Это работает, когда сами фичи маленькие, делаются за 1–2 дня и изменения, которые в проекте делает Вася, не пересекаются с изменениями Стёпы.
Например, Вася реализует функцию оплаты, а Стёпа пишет авторизацию. Такой подход к совместной разработке называется Trunk Based. Чаще всего в этом подходе функции, которые разработчики только что реализовали, не тестируются отдельно: проверяется сразу вся система после реализации и влития в main сразу всех функций. Из проверок тут только вычитка кода (Code Review), который написал Вася и Стёпа их лидом перед тем, как загрузить его в main.
Честно говоря, в своё время я был сильно удивлён, когда, проводя собеседования, узнал, что во многих командах такой подход используется даже на достаточно больших проектах.
Представляете себе огромный монолит, который дорабатывают 5–6 человек, и каждый сразу пушит в основную ветку main? Очевидно, что когда перед релизом вы будете тестировать продукт (а вы же будете, верно?)), вы наткнётесь на баги, понять причину которых будет проблематично. Будет сложно выявить, в какой момент они возникли и именно что их вызвало — изменения Васи, Стёпы или вообще их комбинация.
Чтобы хоть немного минимизировать эти проблемы, придумали такую тему, как Feature Flags. Это подход, когда вы пишете какую-то функцию, но блок кода, который отвечает за неё, «включается» только когда вы указываете в конфиге в true какую-то переменную. Что-то типа:
if (new_payment_system == true) then
return processPaymentNewMethod();
else
return processPaymentLegacy();
Штука, конечно, полезная, но имеет много ограничений. Например, если ваша новая функция требует написания большого количества кода в разных местах, вы просто замучаетесь везде проставлять этот флаг, а потом везде его убирать)).
В общем, всё это работает в маленьких проектах.
А что лучше использовать в проектах побольше, напишу в посте ниже… 👇🏻
Когда цифровых продуктов становится больше, прежние процессы перестают масштабироваться. Релизы занимают всё больше времени, инфраструктура усложняется, а DevOps всё чаще заняты поддержкой вместо развития автоматизации.
Платформенная инженерия решает эти проблемы в корпорациях и бигтехе, но для большинства компаний такой подход избыточен — требует отдельной команды и значительных затрат.
22 октября Hilbert Team и Yandex Cloud обсудят, как небольшим и средним командам разработки запускать цифровые продукты в облаке еще быстрее. Покажут, как построить масштабируемый цифровой конвейер разработки без лишних затрат и выделенной платформенной команды.
В программе: архитектура цифрового конвейера разработки, использование облака для ускорения вывода решений на рынок и кейсы российских компаний.
Кому будет полезно: руководителям команд разработки, DevOps-инженерам, продактам, архитекторам и всем, кто отвечает за развитие цифровых продуктов.
22 октября, 12:00 мск
Ссылка на регистрацию
Последние 3 года он для меня стал иметь особенное значение, ведь в моей жизни появился этот хулиган.
Всех причастных к этому празднику поздравляю!)
И помните, что ваши слова ребёнку в детстве становится его внутренним голосом, когда он вырастает 😏
Последние 3 года он для меня стал иметь особенное значение, ведь в моей жизни появился этот хулиган.
Всех причастных к этому празднику поздравляю!)
И помните, что ваши слова ребёнку в детстве становится его внутренним голосом, когда он вырастает 😏
Всем хороших выходных!
Один из важнейших навыков лида — это управление объёмом информации, которую вы транслируете в команду или конкретным людям.
У руководителя обычно чуть больше осведомлённости о происходящем вокруг, чем у рядовых специалистов. И я видел много случаев, когда лиды нарушали баланс: либо болтали всем подряд слишком много, либо, наоборот, не делились с сотрудниками вообще ничем.
В первом случае высокая болтливость может приводить к излишним переживаниям команды из-за того, что ещё может и не случиться. Например, думаю, не стоит особо пояснять, что произойдёт с мотивацией людей в тот момент, когда вы скажете: "возможно, Федю скоро уволят". Правильно — вместо работы люди начнут обсуждать все плохие сценарии, выкладывать резюме на ХХ и плохо спать по ночам.
Я видел прямо вопиющие случаи нарушения принципа "дозирования": руководитель немалого подразделения ходил по коридору и направо и налево кричал, как в компании всё ужасно. И что он хочет уволиться и забрать половину команды. Так делать как минимум непрофессионально, даже если вы поругались с кем-то наверху. Мир ИТ узкий, а репутация — вещь хрупкая.))
Если выдавать такую информацию выборочно, то это может привести к ещё более плохим последствиям: он передаст её дальше по принципу сломанного телефона, да ещё приправит это своими домыслами и тем, что "по секрету узнал". Так начнутся слухи и сплетни. А ещё люди будут думать, что лид от них что-то скрывает.
Есть и обратная ситуация — вообще ничего не говорить команде до последнего.
Это тоже негативный сценарий, потому как в таком случае команда всё равно узнает о грядущих новостях, но не от вас. И это будет выглядеть максимально странно и глупо. Скорее всего, на 1-ту-1 люди начнут вас расспрашивать о происходящем, и вам придётся либо выкручиваться, либо повторять одно и то же из раза в раз.
В общем, правила тут простые.
Важную информацию нужно доносить до команды единомоментно, когда решение о чём-либо уже принято, либо когда от вероятности наступления чего-то зависит дальнейший план работ. Если это пока "не факт" и мы никак не можем на это повлиять, лучше повременить и не порождать лишние слухи и переживания.
Если вы сами планируете какое-то изменение, то воспользуйтесь алгоритмом, который я давал на онлайн-митапе "Рупор лида" по внедрению изменений (сначала договариваемся с ключевыми сотрудниками и лидерами, затем транслируем остальным).
Полная статья тут, краткий алгоритм здесь 👈🏻
Выборочно информацию давать можно, но осторожно. Всегда задумывайтесь, какие решения человек может принять, узнав о чём-либо. Может ли он, например, эскалировать проблему на вышестоящее руководство, хотя ещё не время? Может ли он в панике пойти смотреть рынок после новости, что коллегу хотят сократить? Может ли он транслировать всё "по секрету" в команду — и что произойдёт, если так случится?
Будьте честны и открыты. Если решение ваше, то старайтесь честно обосновать его и рассказать о причинах. В случае, когда новость приходит "сверху", объясните мотивы вышестоящего руководства, но старайтесь максимально помочь команде в период каких-то изменений. Если чего-то не понимаете, то так и скажите — ничего страшного в этом нет, все мы люди.
Проводите общие встречи, где доносите до всех имеющуюся открытую информацию. Лидам может казаться, что все и так всё знают. Эта иллюзия создаётся из-за того, что руководители присутствуют на большом количестве встреч, и их информационное поле гораздо шире, чем у их сотрудников. Исполнители на местах могут вообще ничего не знать из того, что знаете вы. Поэтому этот пункт очень важен.
А у вас были случаи, когда из-за замалчивания или лишней болтливости были проблемы?
Давненько у меня не было добрых рекомендаций. Решил продолжить эту практику.
Сегодня я расскажу про очень прикольный канал «Switchers» Насти, продуктового аналитика из «Яндекс.Такси».
Интересный факт: когда вы заказываете машину из бара в пятницу вечером, то пользуетесь результатами её работы))
У Насти очень интересный карьерный путь:
⚖️ Перед Яндексом она работала сначала юристом, потом маркетологом, потом дата-аналитиком в Ecom.Tech (ex. Samokat.Tech)
🎤 Она перепробовала множество занятий: фотографию, графический дизайн, продюсирование и даже стендап 😁
👩🏫 Сама выучила SQL, Python, статистику и теорию вероятностей.
А ещё она помогает со сменой профессии в целом и с «входом в IT» в качестве аналитика в частности. И на эту тему ведёт канал.
Она рассказывает, как гуманитарию войти в IT, как найти первую работу и как расти в карьере. Канал, кстати, понравится и состоявшимся спецам: я, например, тоже с интересом читаю её посты.
Что мне особенно нравится у Насти, так это стиль подачи: без занудства, с юмором и на интересные темы. Я такое люблю.
Посты, которые мне особенно зашли:
Ещё больше классного контента — на канале у Насти, подписывайтесь 👈🏻
Вот вы разрабатываете софт, а как делать это так, чтобы он на выходе получался без уязвимостей и был максимально защищён от хакерских атак? А ещё чтобы вас нельзя было взломать через инфраструктуру.
Секретом поделились наши гости из лаборатории ФОБОС — Дмитрий Пономарёв, Елена Быханова, Андрей Слепых и технический директор CTSG Виктор Ерёмин. Ребята очень крутые. Они плотно сотрудничают с ФСТЭК, активно участвуют в продвижении идеологии РБПО в России, а ещё помогают многим вендорам с прохождением сертификации по своим продуктам.
Выпуск выйдет примерно в ноябре-декабре. Всем, кто интересуется безопасностью и в целом разработкой будет интересно))
А пока можно посмотреть выпуск первого сезона CrossCheck "Особенности управления командой на удалёнке", где я был ведущим
Хочется, чтобы контент на канале был максимально полезным для аудитории.
Напишите в комментарии темы, которые вас беспокоят. Это могут быть ситуации, в которых вы хотели бы получить независимое мнение. Или любые вопросы в целом из ИТ.
Я отвечу в комментариях или напишу по вашим вопросам отдельные посты, если ответ не получится коротким)
P.S. В этот пост вы можете в любой момент написать комментарий с идеей для поста в канал.
Отзывы канала
всего 3 отзыва
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
Каталог Телеграм-каналов для нативных размещений
Артём Харченков | IT Инсайты — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 1.7K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 29.8, количество отзывов – 3, со средней оценкой 5.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 2797.2 ₽, а за 14 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий