Прошлой весной, я наконец-то зарегистрировался на GetMentor, и теперь время от времени мне поступают различные вопросы. Некоторые из них решил публиковать здесь на канале.
Вопрос: если для параметра указать тип React.DragEvent<HTMLDivElement> ,то в коде e.target.style.background = 'white’ TypeScript ругается, что в поле target отсутствует свойство style, почему так?
Ответ:
Тут всё дело в том target — элемент, на котором произошло событие (оно могло всплыть к текущему элементу от дочернего). Из-за этого заранее тип target’а не известен, поэтому его нужно привести к нужному типу. Например, вот так:
(e.target as HTMLElement).style.background = 'white';
Вместо target можно использовать поле currentTarget, тип этого поля всегда известен, потому что currentTarget всегда ссылается на текущий элемент, к которому прикреплён обработчик событий. В этом случае можно избежать приведения типа.
Мы сделали подборку платных полноценных программ и бесплатных курсов, которые помогут вам познакомиться с этой специальностью. Платные программы обеспечат вас поддержкой ментора или преподавателя, дадут гарантии трудоустройства, а еще вы составите профессиональные портфолио. Некоторые программы оплачиваются только после того, как вы найдете работу.
Бесплатные программы подойдут новичкам, которые хотят структурировать информацию, после чего смогут пройти полноценное обучение.
ТОП-10 курсов по программированию с трудоустройством в 2023 году
«Python-разработчик с нуля» от Skypro — получение новой профессии независимо от прошлого опыта и образования
«Профессия Python-разработчик» от Skillbox — изучение Python-разработки и гарантия трудоустройства (промокод ГДЕКУРС — скидка 55%)
«Python-разработчик» от Хекслет — обучение без дедлайнов с обилием практики
«Профессия Python-разработчик» от Логомашины — изучение Python-разработки для применения AI в повседневных задачах
«Профессия Java-разработчик» от Skillbox — освоение популярного языка программирования и создание командного проекта, который пополнит ваше портфолио (промокод ГДЕКУРС — скидка 55%)
«Java-разработчик с нуля» от Skypro — изучение востребованного языка на удобной платформе школы
«Java-разработчик» от SkillFactory — приобретение навыков разработки бэкенда на Java и изучение основ DevOps
«Frontend-разработчик» от KATA — обучение с оплатой только после трудоустройства
«Веб-разработчик с нуля» от SkillFactory — освоение востребованной профессии и создание 10 готовых проектов в портфолио на GitHub
Онлайн-курсы Python
В этом разделе собраны курсы по Python-разработке для тех, кто интересуется этим языком программирования. Вас ждет сопровождение преподавателем или куратором, много практики и гарантии трудоустройства.
Вы можете получить новую профессию независимо от прошлого образования и специальности. Для того чтобы понять, подходит ли вам данная специальность, вы можете пройти бесплатную профессиональную диагностику от опытного наставника. Все обучение проходит на удобной образовательной платформе школы.
Обучение состоит из 10 блоков. Материалы курса доступны навсегда. Вас будет сопровождать наставник и куратор. Вы получите консультации центра карьеры, и вам помогут подготовить резюме и портфолио.
Skypro — онлайн-курс по основам профессии Python-разработчика
🎁 По промокоду ГДЕКУРС доступна скидка 55% на обучение.
Курс ведут эксперты из Яндекса, Тинькофф, Сбера, ВТБ, МТС. К концу обучения вы выполните 3 готовых проекта: интернет-магазин, чат-бот на любую тему и серверную часть социальной сети. Вы сможете смотреть лекции и материалы курса в любое удобное время на платформе школы.
С момента отправки работы на проверку вы получите обратную связь в течение 24 часов. По окончании обучения вы получите сертификат установленного образца. А еще школа гарантирует трудоустройство своим выпускникам.
Skillbox — 7-месячный курс по Python для разработки сайтов, приложений, игр и чат-ботов
Овладейте одним из наиболее востребованных языков программирования для бэкенда, изучите создание полноценных веб-сайтов и веб-приложений, а также реализацию внутренней логики программ с использованием фреймворка Django. Практика начинается с первого дня.
Обучение с опытными наставниками, которые помогут по всем вопросам. Если вы не сможете трудоустроиться, школа вернет деньги. Для GitHub вы выполните 4 проекта в качестве портфолио и выполните более 150 тестов от партнеров школы. Доступ к материалам бессрочный.
Хекслет — изучение Python для бэкенда, создание сайтов и веб-приложений и работа с фреймворком Django
Стоимость: от 119 000 ₽
Рассрочка: 5 750 ₽/мес. на 24 месяца
Продолжительность: 10 месяцев
Формат: видеоуроки + общение с куратором + тесты + проекты в портфолио + живые вебинары
Домашние задания: с проверкой
Документ об окончании: сертификат
Особенности и преимущества школы:
4 проекта, которые пополнят ваше портфолио.
Частые онлайн-встречи с наставником.
Есть программа рассрочки.
Гарантии трудоустройства.
Бессрочный доступ к учебным материалам.
Обилие практических заданий.
Недостатки школы:
В отзывах присутствует мнение, что новичкам в сфере IT будет сложно решать некоторые задачи.
В течение 7 месяцев обучения вы овладеете языком программирования Python, научитесь разрабатывать приложения, нейросети и чат-боты. Вы также узнаете, как применять искусственный интеллект, вести коммуникацию с командой и клиентами.
По завершении обучения у вас будет 11 новых проектов в портфолио. Доступ к курсу предоставляется на протяжении 3 лет, а обучение проходит в удобном для вас темпе.
Логомашина — Python-разработка с нуля за 7 месяцев
Эксперты из команды Productstar предлагают обучение программированию на языке Python. Среди них ведущие специалисты из «Сбербанка», «Яндекса» и Skyeng. Школа ориентирована на людей без опыта в программировании.
На своем официальном сайте школа заявляет о возможности трудоустройства в процессе обучения или о возврате средств при неудаче. В ходе обучения студенты получат три специализации: WebDev, DevOps, Data Science.
Productstar — обучение программированию на языке Python со специализацией WebDev, Devops или DataScience
Стоимость: от 129 600 ₽
Рассрочка: от 6 000 ₽/мес. на 24 месяца
Продолжительность: 10 месяцев
Формат: видеолекции + практические задания
Домашние задания: с проверкой
Документ об окончании: сертификат
Особенности и преимущества школы:
Гарантия трудоустройства в процессе обучения.
Преподаватели — эксперты с большим опытом.
Курс подходит для новичков.
Можно вернуть полную стоимость обучения в течение первых 20 дней.
Наличие программ лояльности.
Есть программа рассрочки.
Недостатки школы:
В отзывах упоминается, что живые вебинары проводят нечасто.
Онлайн-курсы по Java имеют целый ряд преимуществ. Они позволяют обучаться из любой точки мира, в удобное для вас время, не требуя физического присутствия в классе. Плюсы языка Java включают его популярность, надежность и платформонезависимость.
Мы собрали подборку курсов по Java-разработке и обратной связью, практиками и гарантиями трудоустройства. Курсы подойдут для новичков. Разберем подробнее плюсы и минусы программ.
🎁 По промокоду ГДЕКУРС доступна скидка 55% на обучение.
Известная образовательная платформа предлагает курсы по Java, предназначенные для разработки онлайн-магазинов, банковских приложений, стриминговых сервисов, игр и многого другого. Обучение осуществляется при участии практикующих специалистов.
Студенты закрепляют теоретический материал в рамках групповой стажировки и в ходе работы над реальными проектами, которые будут добавлены в их портфолио. За время обучения выполняется большой проект — поисковый движок для корпоративного сайта.
Skillbox — 8-месячный курс по языку Java для веб-разработки
Чтобы понять, подходил ли вам данная сфера, можете пройти бесплатную консультацию с опытным наставником, который рассчитает вероятность успеха в профессии. Обучение возможно в удобное для вас время и в комфортном темпе на собственной онлайн-платформе школы.
Куратор будет доступен только в тарифе «Индивидуальный». Гарантия трудоустройства также дается только на индивидуальном тарифе. По окончании обучения выдается диплом о профессиональной переподготовке.
Skypro — онлайн-обучение для начинающих Java-разработчиков
После 7 месяцев обучения вы сможете овладеть backend-разработкой на Java, основами DevOps, создать портфолио и начать уверенно откликаться на вакансии. Обучение рассчитано на 14 месяцев и подходит для новичков.
Если по окончании курса вы не найдете работу, школа вернет вам деньги. Эксперты Центра карьеры помогут вам в поиске работы. Всего программа обучения состоит из 10 блоков.
SkillFactory — Java для создания IT-решений от мобильных приложений до корпоративных систем
За 10 месяцев обучения вы освоите среду разработки IDEA и научитесь использовать ее основные функции. Вы создадите REST API с помощью фреймворка Spring Boot и научитесь работать с базами данных, используя PostgreSQL. Кроме того, вы научитесь тестировать свой код с использованием библиотеки JUnit и Mockito.
За время обучения вы выполните 5 полноценных проектов для портфолио. YandexGPT поможет вам в изучении теории. По окончании обучения вы получите диплом о профессиональной переподготовке.
Яндекс Практикум — профессия Java-разработчик с нуля за 10 месяцев
Данный курс рекомендуется тем, кто только начинает знакомиться с программированием, и предусматривает полную поддержку в процессе трудоустройства еще на этапе обучения. В ходе обучения вы овладеете не только основами программирования, но также научитесь применять искусственный интеллект в своей деятельности.
Вас будет сопровождать ментор по всем вопросам. Большую часть обучения составляет практика. В конце обучения вы защитите финальный проект. После окончания курса у вас будет постоянный доступ к материалам, так как он не ограничен по времени.
Productstar — курс по написанию кода на языке Java и созданию веб-приложений
Здесь мы собрали курсы по популярному направлению — frontend-разработке. Мы проанализировали множество программ и подобрали курсы, которые помогут эффективно освоить эту часть разработки продукта. Для удобства и экономии времени курсы представлены в онлайн-формате с обратной связью от преподавателя или куратора.
Оплата курса только после вашего трудоустройства в IT. В обучении вам будет помогать ментор. Он будет следить за вашей успеваемостью, поможет со сложными задачами и контролем усвоения знаний. Курс JavaScript состоит, в большей степени, из практики, включая обучение HTML, CSS, JS, React и Redux.
На курсе вас подготовят к собеседованиям и трудоустройству, помогая создать резюме и подготовиться к сложным вопросам. Всего доступно 2 года карьерной поддержки.
KATA — курс Frontend-разработчика
Стоимость: по запросу
Рассрочка: по запросу
Продолжительность: 9 месяцев
Формат: видеолекции + обратная связь от ментора + подготовка к собеседованию
Домашние задания: с проверкой
Документ об окончании: не уточняется
Особенности и преимущества школы:
С вами будет работать опытный наставник.
Гарантия трудоустройства.
Можно стать частью большого сообщества.
Оплата обучения только после трудоустройства в IT-компанию.
2 года карьерной поддержки.
Удобная интерактивная платформа для обучения.
Недостатки школы:
Оплата после обучения при трудоустройстве только для жителей Москвы и Санкт-Петербурга.
Для обучения необходимо пройти тестовое задание и онлайн-собеседование.
Если вы проживаете не в Москве и Санкт-Петербурге, то оплата курса ежемесячная.
Вы приобретете навыки разработки удобных и стильных веб-сайтов, приложений и сервисов. Приобретете компетенцию, которая является одной из самых востребованных в сфере IT и сделает вас востребованным специалистом для любой технологической компании.
Продолжительность программы составляет 8 месяцев. Если вы не сможете трудоустроиться в процессе обучения, школа вернет вам деньги. Подходит для обучения новичкам. Вы овладеете навыками разработки веб-сайтов при помощи HTML и CSS.
🎁 По промокоду GDEKURS доступна дополнительная скидка 5% на обучение.
Вы освоите навыки разработки веб-сайтов и приложений, проектирования пользовательских интерфейсов и использования Flexbox и JavaScript. Ваше портфолио будет включать 9 проектов.
Вы научитесь верстать сайты и приложения для всех устройств, выполнять задания, используя JavaScript, а также оформлять документацию. В процессе обучения вы также подробно изучите библиотеку React и изучите основные soft skills.
Нетология — расширенный курс по Frontend-разработке
🎁 По промокоду ГДЕКУРС доступна скидка 55% на обучение.
Гарантия трудоустройства прописана в договоре. Партнером курса является Газпромбанк.Тех. Практика осуществляется на вебинарах с разработчиками из российских компаний. Обучение проходит на личной платформе школы в индивидуальном режиме. Доступ ко всем материалам курса остается навсегда.
Во время прохождения курса вы сможете выбирать задания от фриланс-биржи Хабр Фриланс, диджитал-агентства Whitemark и компании Газпромбанк.Тех, чтобы опираться на реальные проекты в процессе вашего обучения.
Skillbox — курс для фронтенд-разработчиков с нуля
Стоимость: по запросу
Рассрочка: от 3 812 ₽/мес. на 34 месяца
Продолжительность: 9 месяцев
Формат: видеолекции + практика + общение с куратором + домашние задания
Домашние задания: с проверкой
Документ об окончании: сертификат
Особенности и преимущества школы:
Подробная обратная связь от кураторов.
Удобная интерактивная платформа для обучения.
Гарантия трудоустройства.
Обилие практики от компании-партнера.
Вебинары с экспертами.
Telegram-чат с другими студентами.
Обучение по удобному графику.
Недостатки школы:
Некоторая агрессивность и навязчивость в маркетинге.
Вместе с ментором вы будете работать над кейсом для компании-партнера и получите обратную связь от потенциального работодателя. Вы выполните реальные проекты в портфолио. Студенты участвуют в стажировках и хакатонах. Курс подойдет как для новичков, так и для профессионалов, которые хотят прокачать свои скилы.
Вы научитесь создавать веб-страницы через HTML и CSS, а также адаптировать их для различных устройств. Также вы освоите использование JavaScript и Bootstrap для добавления интерактивности на страницы, а фреймворк React.js поможет вам разрабатывать сложные проекты.
SkillFactory — специализация Frontend-разработчик
Стоимость: 85 470 ₽
Рассрочка: от 2 374 ₽/мес. на 36 месяцев
Продолжительность: 9 месяцев
Формат: видеоуроки + практика + обратная связь
Домашние задания: с проверкой
Документ об окончании: сертификат или диплом о профессиональной переподготовке установленного образца
Особенности и преимущества школы:
Курс можно пройти быстрее.
Есть программа скидок.
Выдача диплома или сертификата.
Доступ к материалам курса навсегда.
Есть программа помощи по трудоустройству через Центр карьеры.
Помощь менторов и координаторов.
Недостатки школы:
В отзывах есть жалобы, что программа для новичков сложная.
В данном разделе представлены курсы по веб-разработке. Программы рассчитаны как на новичков, так и на профессионалов для расширения своих знаний. Здесь вас также ждет помощь преподавателя или куратора и обилие практических заданий.
Стоимость: от 3 711 ₽/мес при рассрочке на 36 месяцев
Обратная связь: есть
О чем курс? На курсе вы получите знания от практикующих экспертов. Вас также ждет помощь менторов и содействие в трудоустройстве. Если вы не найдете работу после курса, вам вернут деньги за обучение. Длительность программы составляет 12 месяцев. Обучение проходит в формате тренажеров, тестов, видеоуроков, онлайн-митапов и проектов. По окончании обучения вы получите сертификат.
О чем курс? Обучение проходит на личной платформе школы. За время обучения вы выполните 8 проектов в портфолио, а через 7 месяцев со старта обучения уже сможете искать работу. Школа гарантирует трудоустройство или возврат денег. Курс подходит новичкам без опыта.
Вы изучите верстку сайтов на HTML и CSS, программирование на JavaScript и PHP, работу с JavaScript-фреймворками, создание серверной части сайтов с помощью Node.js и Laravel.
О чем курс? Вы изучите фронтенд-разработку с нуля и сможете выбрать язык программирования для работы с бэкендом: PHP, JavaScript или Python. В ходе обучения вы разработаете более 25 проектов для портфолио, включая кейсы от реальных клиентов. Вы также сможете претендовать на junior-позицию уже во время обучения.
Курс проходит в формате вебинаров, видеолекций и практики. По окончании обучения вы получите удостоверение о повышении квалификации и диплом о профессиональной переподготовке.
О чем курс? Вас ждёт участие в освоении техник работы с пользовательскими и серверными аспектами веб-сайтов и приложений. Трудоустройство происходит уже во время обучения. Создатели курса являются экспертами из таких крупных компаний, как Сбер, Яндекс и Skyeng. Длительность курса составляет 8 месяцев. По окончании обучения выдается сертификат.
О чем курс? Начать обучение вы можете бесплатно, пройдя первые модули курса для ознакомления. Доступ ко всем материалам программы остается навсегда. Обучение проходит в интерактивном формате с применением чат-бота. Вы получите личную поддержку от кураторов и преподавателей. Карьерные специалисты помогут вам составить резюме и подобрать вакансии. За период обучения вы выполните 3 проекта, которые пополнят ваше портфолио. В конце вы получите официальный диплом.
Другие курсы по программированию с трудоустройством
В данном разделе собраны еще некоторые интересные направления различных специальностей в программировании. Мы подобрали эффективные программы с поддержкой экспертов. Надеемся, здесь вы сможете подобрать подходящую для себя специальность в IT-сфере.
О чем курс? Вы сможете приобрести навыки специалиста в области Internet of things (IoT) с нуля, создав собственную сеть умных устройств. Освойте язык программирования C, изучите методы отладки и программирования микроконтроллеров (STM32, Arduino). Получите опыт работы с технологиями Wi-Fi, Bluetooth и LoRa для создания современных встроенных систем. По окончании программы вы получите диплом о профессиональной переподготовке.
О чем курс? Онлайн-курс поможет вам освоить профессию инженера по тестированию в удобном для вас темпе при поддержке опытного куратора. Вы изучите основы QA доступным языком на конкретных примерах, получите практический опыт работы с важными инструментами тестировщика. Вы сможете найти работу уже через 4 месяца обучения. Личный куратор будет помогать вам в течение 1 года.
О чем курс? Этот курс позволит вам проанализировать различные специальности и выбрать ту, которая наиболее подходит именно вам, и мгновенно приступить к её освоению. Вы сможете на практике попробовать разные профессии, определить, что именно приносит вам удовольствие и в чем вы наиболее успешны, после чего с уверенностью выбрать свою будущую профессию и приступить к ее освоению.
О чем курс? Для старта обучения необходимо пройти небольшое тестирование. Освоение новой профессии произойдет всего за 5 месяцев. Оплата курса производится только после успешного трудоустройства в Москве или Санкт-Петербурге. Вас подготовят к собеседованиям опытные специалисты.
О чем курс? Получите навыки разработки и внедрения программных решений для бизнеса, используя платформу 1С. Это обучение откроет вам двери в IT-сферу даже без технического образования, и вы сможете устроиться на работу уже через 4 месяца после начала курса. Авторы и спикеры курса — эксперты из Сбера, Yandex и Skyeng. Длительность программы составляет 6 месяцев.
Бесплатные курсы по программированию
В разделе собраны курсы для знакомства со сферой программирования. Они не гарантируют вам трудоустройства, но являются эффективным вариантом для знакомства с отраслью IT. Вы сможете подобрать близкое вам направление и продолжить дальнейшее обучение уже на конкретных полноценных программах с гарантией трудоустройства.
Бесплатные курсы по программированию от Нетологии (бесплатные курсы по разным направлениям программирования, без сертификата, доступ после регистрации)
Старт в программировании на Python от Eduson Academy (курс на 2,5 часа, подходит для новичков, без сертификата, доступ после регистрации)
Как мы подбирали школы и курсы для нашей статьи?
При выборе школ и курсов по программированию мы уделяли особое внимание нескольким ключевым аспектам при составлении списков для статьи.
Мы анализировали качество образовательной программы. Это включало в себя изучение программы обучения, обзор учебных материалов и опыта преподавателей. Мы ставили цель выбрать курсы, которые предлагали фундаментальное владение темой и позволяли студентам развивать практические навыки.
Кроме того, мы учитывали рейтинг и отзывы учащихся о каждом курсе или школе. Мы искали такие отзывы, которые отражали реальный опыт обучения и успех выпускников.
Также важным фактором была доступность курсов и возможность обучения онлайн. Мы понимали, что гибкость в обучении важна для многих студентов, поэтому заботились о том, чтобы наши рекомендации включали онлайн-программы.
Наконец, мы принимали во внимание стоимость обучения и возможность получения сертификатов или дипломов. Мы стремились найти курсы, которые сочетали в себе высокое качество обучения с разумной ценой и предлагали студентам возможность подтвердить свои знания официальными документами.
Итоги
Выбор курса по программированию требует внимания к нескольким аспектам: цели обучения, рейтингу, отзывам, актуальности материала, возможности практики, наличию сертификата, доступности и формату обучения. Также стоит заранее определиться с интересующим вас направлением, чтобы не потерять время. А мы предлагаем обратить внимание на следующие курсы:
Python-разработчик с нуля от Skypro — программа по разработке на Python и диплом о профессиональной переподготовке;
Профессия Python-разработчик от Skillbox — изучение Python-разработки и поиск работы при помощи специалистов школы;
Python-разработчик от Хекслет — обучение без сроков с обилием практических заданий.
Расскажите, какие курсы по программированию вы проходили или хотели бы пройти?
Реклама ОАНО ДПО «СКАЕНГ», ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ООО «Хекслет Рус», ООО «ЙОЛО», ООО «Тривиум», ООО «СКИЛФЭКТОРИ», АНО ДПО «Образовательные технологии Яндекса», ООО «КАТА АКАДЕМИЯ», ООО «Нетология», ООО «Эдюсон»
Что такое Trunk Based Development и фича-флаги, и как они могут значительно ускорить процесс разработки
Разработка программного обеспечения - не всегда простой процесс. Однако, существуют методы, способные сделать его более понятным и удобным.
В этой статье мы поговорим: ▹ О стратегиях ветвления в Git и методах использования Trunk Based Development при разработке программного обеспечения ▹ Рассмотрим, что такое фича-флаг, и как он может использоваться вместе с Trunk Based Development ▹ А в конце я поделюсь опытом нашей команды и отзывами счастливых пользователей, убедившихся в преимуществах использования этих методов
Кто я такой и почему вам тут вещаю? Меня зовут Иван, я frontend-разработчик DexSys. Делаю красивые интерфейсы в проекте UFO Pro, топлю за микрофронтенды и помогаю разработчикам развиваться.
Эта статья может быть полезна разработчикам, тестировщикам, менеджерам проектов и другим профессионалам, связанным с созданием программного обеспечения. Кроме того, она может быть полезна студентам и всем интересующимся современными методами и подходами к разработке. В частности, статья может быть интересна тем, кто хочет узнать о Trunk Based Development, фича-флагах, и их применении в процессе разработки.
В мире современной разработки выбор правильной стратегии ветвления является важной частью процесса. Так что же это такое, и какое влияние эти стратегии оказывают на процесс разработки?
Существует множество различных способов ветвления, которые можно использовать при работе с Git. В этой статье мы рассмотрим три наиболее распространенных способа ветвления: Git Flow, GitHub Flow и Trunk Based Development.
Git Flow и GitHub Flow являются наиболее популярными ветвящимися стратегиями в коммерческой разработке. Trunk Based Development является несколько более рискованным подходом, поскольку он не предусматривает постоянных веток. Рассмотрим их подробнее:
Git Flow
Git Flow - это методология ведения разработки с использованием системы контроля версий Git. Она была разработана Винсентом Дриессеном и опубликована в 2010 году.
Git Flow предлагает структуру ветвления репозитория Git, которая позволяет эффективно управлять процессом разработки, отделяя стабильные версии от версий, находящихся в разработке. Методология основана на использовании двух основных веток: master и develop.
Ветка master содержит только стабильные версии продукта, которые готовы к выпуску. Ветка develop используется для разработки новых функций и исправления ошибок. Кроме того, Git Flow предлагает использовать дополнительные ветки для различных типов задач, таких как feature - для разработки новых функций, release - для подготовки к выпуску новой версии, hotfix - для исправления критических ошибок в текущей версии, и т.д.
Git Flow также определяет процедуры работы с каждой из веток, например, процедуру слияния ветки feature в develop или процедуру создания новой версии из ветки release.
GitHub Flow
GitHub Flow - это методология ведения разработки с использованием системы контроля версий Git и платформы GitHub.
GitHub Flow предлагает использовать только одну основную ветку - master. Все изменения в коде вносятся через создание новых веток, которые называются feature-ветками. Каждая feature-ветка создается для решения конкретной задачи или добавления новой функции. После завершения работы над задачей в feature-ветке происходит запрос на слияние, pull request, в основную ветку master.
GitHub Flow также предлагает использовать дополнительные инструменты GitHub, такие как Issues и Projects, для управления задачами и проектами.
Эта стратегия ветвления ориентирована на непрерывную интеграцию и доставку (CI/CD), что позволяет быстрее и безопаснее выпускать новые версии продукта.
В целом, GitHub Flow является более простой и гибкой методологией, чем Git Flow, и может быть особенно полезной для небольших команд или проектов.
Trunk Based Development
Trunk Based Development (TBD) - это методология разработки программного обеспечения, которая предлагает использовать только одну основную ветку, trunk, для разработки и интеграции всех изменений в коде. Это означает, что все разработчики работают непосредственно в trunk и делают коммиты прямо в эту ветку.
Для крупных проектов предлагается использовать Scaled Trunk Based Development. Главным отличием является то, что коммиты делаются не напрямую в trunk, для этого используются короткоживущие feature-ветки.
Этот подход к разработке программного обеспечения стал популярен благодаря своей простоте и возможности быстро реагировать на изменения требований заказчика или рынка. TBD предлагает использовать автоматизированные тесты и непрерывную интеграцию (CI) для обеспечения высокого качества кода и быстрой проверки изменений.
Каждый коммит проходит через CI-систему, которая автоматически запускает тесты и проверяет, что изменения не нарушают работу приложения. Это позволяет разработчикам быстро обнаруживать и исправлять ошибки, а также быстро интегрировать новые функции и возможности в код.
TBD также предлагает использовать механизмы feature-флагов для поэтапного внедрения новых функций и возможности быстро откатывать изменения, если они приводят к проблемам. Это позволяет уменьшить риски и снизить влияние изменений на работу приложения.
Преимущества Trunk Based Development:
Ускорение процесса разработки и интеграции изменений в коде.
Быстрая реакция на изменения требований заказчика или рынка.
Высокое качество кода благодаря использованию автоматизированных тестов и непрерывной интеграции.
Возможность быстрого обнаружения и исправления ошибок.
Использование механизмов feature-флагов для поэтапного внедрения новых функций и возможности быстро откатывать изменения, если они приводят к проблемам.
Уменьшение рисков и снижение влияния изменений на работу приложения.
Простота и легкость в использовании для малых и средних проектов.
Хотя Trunk Based Development может быть эффективным методом для управления процессом разработки, он также имеет свои недостатки:
TBD может быть не очень удобен в использовании для больших и сложных проектов, где требуется более объемная система ветвления и управления изменениями.
TBD требует высокой культуры кода и сотрудничества, чтобы избежать конфликтов и проблем при интеграции изменений.
Одна из основных проблем, связанных с Trunk Based Development, - это высокая стоимость ошибок, которые могут привести к поломке основной ветки и, следовательно, к затратам на поиск и исправление ошибок. Одним из способов преодоления этой проблемы является увеличение частоты коммитов, более тщательное ревью кода, а также добавление большего количества тестов и использование линтеров для автоматической проверки кода.
Кроме того, Trunk Based Development не позволяет экспериментировать с новой функциональностью в отдельных ветках, потому что это может оказать негативное влияние на основную ветку и другие компоненты. Для решения этой проблемы можно использовать фича-флаги, чтобы временно включить или отключить опасные или еще не полностью разработанные функции, и избежать возможных проблем в основной ветке.
Что такое фича-флаг и как с ним работать?
Если сложно, то фича-флаги (feature flags, feature toggles) — это инструмент разработки, который включает и выключает выбранные фичи в рантайме без развертывания нового кода.
Если просто, то это if в коде.
Работа с фича-флагами заключается в том, что разработчик должен добавить в приложение код, который будет проверять значение флага и включать или выключать соответствующую функцию. Значение флага может быть установлено вручную или автоматически, например, на основе данных аналитики или результатов тестирования.
При работе с фича-флагами необходимо учитывать возможные риски, связанные с изменением логики приложения и возможными ошибками. Поэтому рекомендуется использовать автоматизированные тесты и системы непрерывной интеграции для быстрого обнаружения и исправления проблем.
Инструменты для работы с фича-флагами
Существует много комплексных инструментов для работы с фича-флагами, которые поддерживают флаги по определенным пользователям, ролям, процентному соотношению или сложные флаги, где значение не просто true или false. Вот несколько таких инструментов:
DevCycle
Flagsmith
Unleash
Если нужно что-то попроще, или хочется лишь протестировать подход, то подойдут следующие способы:
Старые добрые env-переменные
Простой, как палка, json-файл
Свой сервис с простой API
На данный момент мы на проекте используем json-файл как источник фича-флагов. Этот файл генерируется в момент запуска контейнера с приложением из репозитория с файлами конфигурации. Для каждой среды набор флагов отдельный, поэтому мы без проблем можем вести разработку и регрессионное тестирование параллельно. Но есть и существенный недостаток: для изменения значения флага все равно необходимо делать пулл-реквест и перезапускать сервис.
Но мы уже находимся в процессе перехода на Flagsmith, так что в скором времени работа с фича-флагами станет более удобной и быстрой.
Итак, теперь о нашем опыте
Что у нас было раньше?
Раньше на проекте у нас был Git Flow без релизной ветки, то есть ветка master использовалась в качестве релизной, а весь свежий код находился в ветке dev. Под каждую задачу заводилась своя фича-ветка, для тестирования она сливалась в ветку dev, затем ждала своего часа до попадания в master. Зачастую, дев сильно отличался от мастера своим набором фича-веток, и из-за этого возникало много конфликтов при сборке релиза.
Почему мы решили измениться?
Во-первых, было сложно: - сложно разбираться во всех наборах фича веток - человеку который собирает релиз было непонятно, какие изменения должны попасть в релиз, а какие нет, хоть это и было зафиксировано в задаче - иногда изменения делались не в рамках той ветки, где должны были
Во-вторых, было долго: - приходилось решать сложные и многочисленные конфликты при слиянии фича веток в мастер, так как зачастую задевался один и тот же код - релиз собирал один человек, и он не мог точно знать, какие изменения нужно принять, а какие отклонить, из-за этого возникали дополнительные баги
Соответственно, все эти проблемы выливались в финансовые потери, ведь время - деньги.
Подготовка и переходный этап, инструкция:
Мержим все что есть в одну ветку
Делаем резервную копию, на случай, если что-то пойдет не так
Настраиваем репозиторий: в нашем случае это squash вместо merge commit, сливаем только через pull-реквест, выставляем обязательных ревьюеров
Проводим инструктаж для разработчиков
Кодим
Отзывы пользователей:
1/3
Таким образом, можно заключить, что использование Trunk Based Development и фича-флагов может значительно улучшить процесс разработки и снизить количество ошибок. Однако, следует помнить, что каждый проект уникален и не все методы подойдут вам. Важно оценить потребности проекта и выбрать наиболее подходящие варианты.
Наша команда эффект от перехода на Trunk Based Development и фича-флаги почувствовала сразу. Сборки релизов и процесс разработки стали быстрее и комфортнее - если раньше только сбор необходимых веток, и слияние их в релиз могло занимать целый рабочий день, то теперь все пулл-реквесты создаются автоматически, достаточно только нажать кнопку подтверждения.
Первое время приходилось напоминать разработчикам, что размер пулл-реквестов должен быть небольшим, а ревью нужно проводить гораздо чаще, чем раньше. Например, при подходе Git Flow, мы делали ревью целой задачи, разработка которой могла занимать от одного до нескольких дней, в зависимости от ее размера. Сейчас же ревью проводится постоянно в течение дня, среднее количество пулл-реквестов в день - 10-15 штук.
Постепенно все привыкли к такому темпу работы, и это даже повысило качество кода, ведь небольшие пулл-реквесты гораздо удобнее проверять, а частые код-ревью повысили общую осведомленность о том, что происходит в кодовой базе.
О Каскадных Таблицах Стилей для новичков-энтузиастов. CSS - технология старая, обкатанная, меняющаяся крайне медленно. Курсов по CSS создано бесконечное количество. И знаете, что самое интересное? Почти все эти курсы качественные, интересные и полезные. Но они не отвечают на самый главный вопрос: нужен ли CSS именно Вам? Если Вы в поисках, куда бы приложить свои силы и таланты, то прочитайте эту короткую статейку. Может быть, она поможет Вам определиться.
*** Нужен ли CSS именно Вам? ***
Помню, когда учился в школе, с нами, старшеклассниками, провели такой эксперимент. Нам организовали экскурсию в морг. Результаты оказались впечатляющими. Несколько экскурсантов упали в обморок, зато двое или трое стали потом профессиональными врачами. Вот такой блестящий пример профориентации.
Примерно так и мы поступим сейчас для определения, нужно ли вам работать в области фронтенда (HTML+CSS+JS), конкретно стать специалистом CSS.
*** Подсмотрим за CSS мастером, что он там делает? ***
CSS специалист получает в виде полуфабриката некий готовый HTML макет с подготовленными блоками и контентом, а заодно получает задание как-то это все сделать красивым или хотя бы просто читабельным.
Пример HTML кода, который получил CSS специалист.
<div id="div1">
<h2>Я очень сильно <span id="span1">❤</span> CSS</h2>
<p id="p1">И эта любовь так сильна, что ее невозможно выразить словами.</p>
<p id="p2">Я готов все дни и ночи напролет колдовать над стилями, чтобы добиться максимального эффекта.</p>
</div>
Все это будет работать и без CSS.
Но это слишком скучно, хотя и понятно. И вот за дело берется специалист CSS и предлагает для обсуждения версию номер 1.
Начальник посмотрел на это творение и сказал так.
- Э-э-э... Как-то это все слишком уж... Э-э-э... Просто, что ли... Хочется, чего-то такого, - начальник пощелкал пальцами, - ну, ты меня понимаешь.
Фронтендер (так часто называют специалистов HTML + CSS + JS), конечно, сразу все понял и предложил версию номер 2.
- Вот это совсем другое дело! - обрадовался начальник, посмотрев на версию 2, - можешь ведь, когда хочешь!
Конечно, это вовсе не какое-то "другое дело", а то же самое. Просто стили CSS слегка изменены.
Важно. Если, даже получив одобрение руководства, Вы не останавливаетесь на достигнутом, а продолжаете даже в свободное от работы время изобретать новые версии не денег ради, а просто из любви к искусству, то это добрый признак. Вполне возможно, что CSS - Ваше призвание.
Например, Вам может прийти в голову идея реализовать что-то такое вроде "Версия 3. Под мухой".
Практическая ценность этой версии в том, что она демонстрирует возможности работы CSS с маленькими графическими файлами, в т.ч. и передвижения их по документу.
Затем, вдоволь наигравшись с мухой (а может и с другими насекомыми), возможно, в голову придет другая идея, например, почему бы не посмотреть на все это дело изнутри (т.е. с другой стороны монитора, планшета, смартфона и т.д.)
Получится примерно так.
Это вроде как послание тем загадочным существам, которые, возможно, живут по ту сторону экрана.
*** Вы почувствовали себя энтузиастом CSS? ***
Вот мы потихонечку подошли к самому главному принципиальному вопросу.
Если все эти простейшие штучки вас интересуют, забавляют, развлекают, значит, возможно, вам реально надо заняться CSS.
Собственно, работа CSS дизайнера в этом и заключается, чтобы придумать как максимально эффективно и даже эффектно преподнести пользователю ту или иную информацию.
Вы почувствовали себя энтузиастом CSS?
Это очень важно. Если у Вас есть внутренняя тяга к этому виду творчества, то вы обязательно и работу найдете в этой области, и удовольствие будете получать от процесса, да еще и будете хорошо зарабатывать.
Беседа с рекрутером при приеме на работу для Вас будет выглядеть не как попытка убедить и что-то доказать, а как разговор двух равноправных участников, которые обожают CSS. Это, конечно, значительно повышает Ваши шансы.
Информации выше вполне достаточно для внутреннего понимания, есть ли для Вас смысл глубже погрузиться в CSS.
Первоисточник здесь:
https://wpvi.ru/pages/story/00016/ - Здесь реализация на чистом CSS (в тексте выше просто скрины). Можно скачать файл CSS и получить дополнительные пояснения. Бесплатно, без СМС, без регистрации.
самое важное после определения цели составить план и начать действовать, если вы учите что то из списка то план за вас расписали, остаётся только действовать