Webpack Module Federation, как использовать Python и что важно в современной карьере IT-специалиста. Репортаж с конференции Career Day 2021

В Минске прошла седьмая ежегодная конференция для IT-специалистов Career Day 2021, посвящённая направлениям и возможностям развития в сфере IT. На этот раз конференция проходила как онлайн, так и офлайн. И более тысячи человек зарегистрировались на мероприятие. Те, кто предпочёл живое общение, мог не только узнать о вакансиях, но и пообщаться с представителями IT-компаний в экспо-зоне, поучаствовать в нетворкинге и задать все интересующие вопросы спикерам.

По традиции, открыл конференцию Игорь Мамоненко, генеральный директор Belhard и автор проекта "ИТ-Страна". Он отметил, что за 5 лет IT-отрасль увеличилась на треть, а количество программистов в мире уже сейчас достигает порядка 30 млн человек. И каждый год это число увеличивается ещё на 5%. ИТ-специальности остаются востребованными и высокоплачиваемыми: в Беларуси сейчас около 70 тысяч специалистов. Образовательные центры готовят ежегодно около 10 тысяч человек, также наблюдается переход из других профессиональных областей. IT-карьеру действительно можно сделать довольно быстро: год-два в качестве junior, потом middle. А через 3-4 года хорошие специалисты становятся senior-ами.

 

Python – где он на самом деле работает

Подробно и предметно разобрал любимый многими разработчиками Python Павел Сушко (Беларусь), Senior Python developer в LeverX, спикер генерального партнера конференции Career Day. Он выделил целый список задач, где может использоваться этот язык. Например, для разработки встроенного софта, который пишется для разных мелких «железяк», которые решают специфические задачи. Даже несмотря на то, что обычно для этого используются компилируемые системные языки типа С. Но проектов и технологических решений на Python тоже хватает. Наиболее популярное – gpiozero. Это библиотека, которая позволит общаться на Raspberry Pi, когда он выбирается в качестве основного «железного» устройства для работы. И Microphyton, который по факту – сильно модифицированный интерпретатор, из которого вырезано всё лишнее, для запуска на микроконтроллерах.

Для standalone applications, то есть приложений для ПК, мобильных телефонов, на Python можно быстро создавать MVP и рабочие прототипы. И сразу презентовать их при питче у инвестора. Kivy – фреймоворк, который умеет собирать десктопные приложения (под iOS и Android). И при этом весь его код – на Python. WxPython – это библиотека маппинга к wxWidgets для разработки графических приложений, более близких к Linux-средам. И PySide – библиотека qt, которая предоставляет один из самых гибких инструментов для разработки десктопных приложений.

В тестировании Python также можно использовать. Так как это интерпретируемый язык, которым можно писать скрипты, создавать сценарии тестирования, автоматизировать их запуск. Например, Robot framework, позволяющий строить тест-сьюты по acceptance testing. Pytest, который используется в основном для юнит-тестов. Selenium – чтобы видеть, что происходит в продукте при запуске браузера. И BeautifulSoup, чуть более широкая надстройка, позволяющая эффективно парсить сайты.

В DevOps снова играет роль тот факт, что Python – интерпретируемый язык. Существуют инструментарии и библиотеки с базовым инструментом, который имплементирует доступ к API-интерфейсам. Можно делать дополнительную автоматизацию, если программный продукт требует каких-то кастомных шагов перед развёртыванием. Для примера – Ansible, IT automation tool, позволяющий строить сценарии развёртки. Примерно тем же занимается Fabric, но на чуть низшем уровне. Также есть доступ к облачным API-системам разворачивания структуры (как Docker и Terraform).

В Data Engineering помогает Apache Airflow, один из самых используемых систем оркестрации ETL. И PySpark – интерфейс работы со Spark (технологией, которая позволяет проводить распределённое вычисление на кластерах). Это дает возможность быстрее написать алгоритм обработки данных с помощью Spark-кластеров. Есть ещё и инструменты дата-визуализации, например, библиотека Bokeh, которая позволяет написать красивую визуализацию с анимацией и интерактивностью.

Для работы с Data Science есть огромное количество инструментариев, готовых инфраструктур и несколько инфраструктурных компонентов. Экосистемы Jypyter и Anaconda. Это очень тяжёлый package-менеджер, который умеет доставать различные научные пакеты и ставить их в любые платформы. Инструмент NumPy – это система, оптимизирующая хранение и расчёты, Pandas позволяет работать с таблицами данных, будто это SQL, но внутри питон-кода. А Keras – расширенная библиотека, которая под собой использует механизм и алгоритмы TensorFlow, но позволяет быстро подготавливать механизмы обучения нейронных сетей. Scikit-learn в себе несёт набор алгоритмов машинного обучения, которые можно быстро применить.

Для web-разработки на основе бизнес-задач используют инструмент django, который позволяет быстро создавать приложения со сложными бизнес-требованиями.

 

Module Federation и как он изменит современный фронтенд

О работе с вебпаками рассказал Максим Смирнов, Lead developer в «Тинькофф». В качестве примера он обратил внимание на Webpack Module Federation, который привносит большое количество улучшений для фронтенд-разработчиков.

Сам Webpack появился ещё на заре фронтенда. Module Bunder позволял взять JS, "слить" его в один или несколько файлов. И настроить им историю так, чтобы они кооперировались по модулю. То есть, если был модуль, отвечающий за авторизацию, то был и определённый файл, отвечающий за неё. И всё, что должно было использоваться этим файлом, упаковывалось в отдельный JS-файл, туда же притягивались png, CSS и вёрстка. То есть, появилась система управления.

Любой современный фреймворк (React или Angular), различные проекты насчитывают тысячи файлов. И вебпак из этой тысячи предлагает сделать всего восемь-десять.

К тому же Webpack помогает собрать воедино все ресурсы в бандл. И затем уже его поставлять на прод. Он следит за изменениями в коде, и если надо срочно что-то поправить, то вебпак всё необходимое подтянет через hot module replacement. Также Webpack транспилирует JS до старых стандартов, если необходимо, разделяет выходной файл на несколько, чтобы избежать медленной загрузки страницы из-за большого размера. И главная фишка – tree shaking. Если пишется код, и в нём, например, не настроили отслеживание неиспользуемых переменных, а они занимают место, то на моменте компиляции JS в продакшн-сборку вебпак выполнит решение – всё, что не используется, он просто выкинет.

Module federation – это новый продукт Webpack, год назад его запустили на прод. Тот самый hot module replacement, который помогал заменять или удалять какие-то конкретные модули одномоментно в продакшне, решили сделать фрейморком для фронтенда.

У module federation есть два типа приложений – host, который агрегирует в себя, и remote, который встраивается. Он состоит из двух главных блоков: remote, который говорит, откуда будет тянуться приложение и какое у него будет название, и блок с shared-библиотеками. С помощью этой секции можно указать библиотекам, что они будут singleton-ами и едиными для всех приложений: и host, и remote.

В итоге Webpack создал гибкую систему для управления микрофронтендами, понизив планку входа.

 

Один в поле не воин? Как добиться карьерного успеха в современных условиях IT-индустрии

О современных требованиях к ИТ-специалистам рассказал Олег Чайко (Беларусь), QA в Solvd. Для многих очевидно, что спрос на IT-специалистов возрос. Дело в том числе в реализации в 2021 году отложенного за 2020 год спроса по вакансиям: в связи с коронавирусом в 2020 вакансий было меньше, а в этом году рынок как раз активизировался.

В Беларуси спрос высокий также потому, что найм у нас всё ещё более выгодный: в соседних странах налоги выше, а российские компании-инвесторы не хотят вкладывать деньги из-за боязни попасть под санкции. А в Украине – перегрет рынок. На этом фоне Беларусь смотрится крайне выгодно. Кроме того, во всём мире за белорусскими разработчиками закрепилась отличная репутация по качеству и объёму работ.

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

Также есть такое понятие как кроссфункциональность. Специалист, обладающий ей, способен закрыть собой плечо товарища в случае непредвиденной обстановки. Если кто-то из команды может проблему оперативно решить, это будет сотруднику только в плюс.

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

В любом случае будет полезно прокачать soft skills, особенно умение презентовать свои идеи. Это напрямую улучшает стрессоустойчивость и владение ораторским мастерством, а участие в кейс-презентациях свидетельствует о лидерских качествах специалиста. Всё это лишь добавляет ему конкурентных преимуществ.

 

Карьерные возможности: проекция знаний и опыта из иных сфер на карьеру в ИТ

Cвоим опытом перехода из разработчика в PM поделился Артем Цыбулько (Беларусь), Project Manager в IBA. Спикер предложил задать себе 10 вопросов перед переходом в эту специальность. Самый первый, если предстоит переход на позицию РМ – кто же это такой? Это тот человек, который отвечает за проект и команду в целом, от которого зависит успех проекта и компании. Он должен не просто следить за процессом, но и предвидеть возможные изменения и трудности. А также выступать связующим звеном между командой и заказчиком.

И вот тут уже вопрос: что же важнее, hard skills или soft skills? Для PM, конечно же, soft skills: коммуникабельность, адаптивность, креативность, убедительность и ответственность. И это напрямую связано со вторым вопросом – взаимоотношений с людьми. Важно понимать точку зрения сотрудников, сопереживать им и поддерживать. И не забывать, что на каждом проекте будут очень разные люди, команда может быть разнородной. РМ важно уметь предотвращать конфликты.

Самый болезненный вопрос затрагивает технические навыки, вернее, их потерю после перехода на должность менеджера. Технического бэкграуда хватит, чтобы понимать команду, даже вносить какие-то предложения, но, вероятнее всего, они будут не совсем корректные из-за того, что менеджер выходит из технического контекста и не следит за особенностями технологий и архитектуры. Любой новый проект для PM – это новый технический стек, и нет смысла в него глубоко погружаться.

Четвёртый вопрос затрагивает постоянное обучение. И имеет самый простой ответ: непрерывное изучение  – это кредо всех, кто находится в IT. Следующий вопрос – про многозадачность. Проводить одновременно 3 телефонных звонка, смотреть план продаж и отправлять по факсу счёт-фактуры – это рутина для менеджера по продажам, и в IT подобный опыт тоже пригодится. Для человека, который не готов совмещать несколько дел сразу, должность PM может не подойти. Кроме того, всегда есть отвлекающие факторы, и умение переключаться с одной задачи на другую важно прокачивать. Поможет тайм-менеджмент и наличие свободных слотов в расписании – для того, чтобы что-то перепланировать или проанализировать гору собранной ранее информации.

Вопрос шестой — про стрессоустойчивость. Падает продакшн, негодует клиент, тестировщик ругается с бизнес-аналитиком, и всё это в пятницу вечером. В идеальном мире PM всегда готов к рискам, потому что он их просчитал, сформулировал пути предотвращения и следит за их статусом. И в случае, если что-то идёт не по плану, менеджер перестроится и продолжит вести команду к цели.

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

Вопрос номер восемь – готовность нести ответственность за чужие ошибки. В обычной работе сотрудник ответственен сам за свои провалы, в работе ПМ чужих ошибок в команде нет, они все отчасти менеджерские. Девятый вопрос – перфекционизм или практичность? PM должен постоянно балансировать между интересами команды, клиента и компании. Если разработчик стремится к совершенству кода, то менеджер должен помнить: идеальный код неинтересен никому, кроме команды. А последний вопрос касается главного навыка для проектного менеджера. И это – широкое мышление, то, что позволяет видеть всю картину целиком. 

 

Миграция гибридной инфраструктуры в Azure

Cloud Architect *instinctools Олег Шальнов поделился экспертизой и опытом в работе с облачными технологиями и процессами переноса данных. Спикер подчеркнул: “Все когда-нибудь сталкивались с приложениями, которые "лучше не трогать – ведь работает". Но что предпринять, если нужно его перенести с родных серверов и сделать более “современным”?

Когда заказчик начинает задумываться о переносе в Сloud? В ситуации, когда бизнес растет, идёт нагрузка на приложение и почтовые системы, из-за этого приходится докупать “железо”. Случается, что оборудование не используется. И это влечет дополнительные затраты для компании. Чтобы избежать таких ситуаций, можно перейти в Cloud-решения: более гибкие и имеющие больше преимуществ. Вся ответственность переходит на облака.

Для того, чтобы успешно работать с Cloud, необходимо четко определить задачи миграции:

  • освободить ресурсы, чтобы не покупать новые сервера и не поддерживать локальные ЦОДы;
  • внедрить документооборот;
  • внедрить облачную систему управления компьютерами, чтобы удобнее нанимать пользователей;
  • провести аудит;
  • если приложение хостится на виртуальных машинах, то получить auto-scale, чтобы не тратить ресурсы впустую, и получить SLA и blue-green deployment.

Если приложение старое, которое «даже трогать страшно», то лучше использовать lift-and-shift миграцию. Что это значит? Поднимаются все виртуальные машины в том состоянии, в котором они есть, и переносятся в Cloud, строя гибрид. Нагрузка с локального дата-центра не меняется, только трафик встречают уже виртуальные машины. Для пользователя это незаметно.

Пример такой миграции для обычного пользователя – почта. Абсолютно скрытая миграция, когда в один день Outlook просит перерегистрироваться, и все продолжают пользоваться почтой. Миграция SharePoint - сложнее, обычно все происходит в Teams, и к ней лучше подготовить пользователей заранее – за месяц, например. Перевод компании с тысячей пользователей довольно длительный и может занять два-три месяца.

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

Если в части приложения происходит какой-то сбой, важно, чтобы это не влияло на всю виртуальную машину. Приходится разделять монолиты, и для этого есть Azure Application Gateway – балансировщик веб-трафика. Он может направить определённое приложение в один бэкенд-пул, а другое приложение – в другой пул.

Чтобы попробовать облака, можно зарегистрироваться на любой клауд – AZURE, AWS, GCP – у каждого есть бесплатная подписка, где можно их «потрогать» и поучиться.

Миграции и работы с облаками не нужно бояться, ведь за ними – будущее.

 

Полезные материалы конференции: фотографии, презентации спикеров и видео докладов можете найти по ссылке.

Организатор конференции: информационно-аналитический IT-Hub KV.by

Генеральный партнерLeverX Group

Золотые партнерыInnowiseSolvd, *instinctoolsRabota.byIBA GroupТинькофф Центр РазработкиДжили Центр МинскZborka LabsAvia Solutions Group.

Серебряные партнерыSyberryHelmesDerivEnglishDom.

 

Читайте новости первыми в нашем Telegram-канале!

Подписывайтесь на наш канал в Дзен!

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 0
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!