Обновить

Фронтенд

Сначала показывать
Порог рейтинга
Уровень сложности

CI/CD для чайников — разберитесь и начните наконец-то автоматизировать рутину в разработке. Часть1. Введение

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров43K

Всем привет. Наверняка каждый, кто так или иначе связан с IT сферой, слышал модную аббревиатуру CI/CD. Везде мы слышим про необходимость ее использования, преимущества автоматизации процессов и т.д.

В вакансиях все чаще требуется опыт работы с одним из инструментов в этой инфраструктуре – Jenkins, Travis, AWS, Gitlab CI/CD.

⚠️Я предлагаю вам посмотреть на этот процесс, глазами простого разработчика. Чем ему может помочь автоматизация. Что в конечно итоге скрывается под этой аббревиатурой, и как уже начать получать дивиденды в своей ежедневной рабочей практике.

Первые шаги

Мы рассмотрим внедрение инструментов автоматизации в приложение, построенное на базе React. В целом разберем именно основные подходы и моменты, на которые стоит обратить внимание в самом начале.

В целом, это будет актуально для любого стека.
Чаще всего я использую для хранения кодовой базы и групповой работе над проектами Gitlab. Очень кстати, что эта площадка предоставляет инструментарий CI/CD.

Я пытался пару лет подступиться к этому вопросу. Стильно, модно, молодежно. Да, дает кучу преимуществ. Но все попытки переварить официальную документацию, заканчивались неудачей. А видео уроки или материалы в общем доступе – чаще всего давали рецепт автоматизации какого-то конкретного кейса, который либо частично, либо полностью отличался от моего приложения.

Мне не хватало именно взгляда на основные шаги – что, зачем и как мы делаем. А уже потом реализации практических задач.

CI – continuous integration

Что же скрывается за термином "непрерывной интеграция". Когда мы работаем над созданием программного продукта – в одиночку, или в рамках команды, мы стараемся добавить в наш проект, несколько строк кода. Новый функционал, исправление или доработки. Суть не особо важна. В конечно счете – либо появляется новый код, либо появляются изменения в старом. И нам нужно убедиться, что эти новые изменения, не содержат ошибок, которые могут вызвать проблемы или неработоспособность приложения. ⛔️

Читать далее

Второй шаг в мир RxJS: Операторы RxJS — как изучать и зачем они нужны

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров3.6K

Добро пожаловать во вторую статью на тему RxJS! Если вы прочли первую часть, то, скорее всего, уже экспериментировали с from()interval() и знакомились с элементарными операциями — фильтрацией и преобразованием данных. На этом фундаменте мы будем строить знакомство с более хитрыми инструментами, чтобы из просто «интересных экспериментов» RxJS превратился в реальный мощный инструмент для ваших проектов.

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

Читать далее

Бросаем IT ради доставки или нет: сколько на самом деле зарабатывают курьеры

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров69K

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

Читать далее

Яндекс SmartCaptcha в Angular

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1K

Защита веб-форм от ботнетов и автоматических атак стала критически важной, особенно после ухода зарубежных сервисов. Яндекс SmartCaptcha предлагает российскую альтернативу Google reCAPTCHA, но её интеграция с Angular требует дополнительной работы.

В этой статье разберём создание Angular-адаптера, его архитектуру и особенности использования.

Читать далее

OpenSource платформа BayLang Technology

Время на прочтение6 мин
Количество просмотров2.2K

Добрый день! Меня зовут Ильдар. Сегодня я расскажу про свой стартап BayLang Technology.

BayLang Technology — инновационная OpenSource IT-платформа для создания сайтов, CRM, ERP систем и мобильных приложений.

С помощью BayLang Technology можно значительно ускорить разработку платформ, CRM и мобильных приложений.

Основная цель BayLang Technology — сделать разработку ERP и CRM систем быстрой и эффективной.

Читать далее

DOM-Scope: создание искусственных областей видимости и управление идентификаторами элементов

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров732

В процессе работы с HTML-документами часто возникает необходимость получить доступ к конкретным элементам DOM. Обычно это делается с помощью уникальных идентификаторов, которые присваиваются нужным элементам. Однако существует вероятность, что в большом документе может оказаться несколько элементов с одинаковыми идентификаторами, что может привести к путанице.

Чтобы избежать этой проблемы, я разработал библиотеку dom-scope, которая позволяет создавать искусственные области видимости (скоупы) внутри DOM. Я хочу поделиться своим решением с сообществом Хабра.

Читать далее

Импортозамещение для бедных — что нам стоит свою open source Jira построить

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров9.4K

Внутренние хакатоны — отличный способ протестировать новые идеи. Мы не только экспериментируем, но и получаем практический опыт. Однажды, работая над CRM для управляющей компании (УК) в Дубае, мы задумались:

Мы сделали систему для работы с заявками для УК. А почему бы не создать свою Jira для работы с задачами? Почему еще никто не напилил полноценную Open Source Jira для бедных?

Сначала это звучало как шутка. Но мысль возвращалась снова и снова — особенно когда Jira начинала тормозить или раздражать.

Поэтому мы решили собрать велосипед 🚲 из готовых Open Source решений.

Что из этого вышло? 🚀

Переключение между контекстами убивает эффективность разработчиков на корню

Время на прочтение10 мин
Количество просмотров31K

Я программист. Меня всё время отвлекают, и я хочу об этом поговорить.

Вы когда-нибудь задумывались, что сильнее всего подрывает эффективность работы? Много чего. Но мы часто недооцениваем один фактор, который выделяется на фоне остальных.

Каждое короткое сообщение, которое вы отправляете коллеге в Slack, отнимает у него 23 минуты продуктивной работы. И это далеко не всё.

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

Читать далее

Первый шаг в мир RxJS: знакомство с Observables

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров6.4K

Проблема многих новичков, впервые сталкивающихся с темой подписок, заключается в обилии тем и нюансов, связанных с этим направлением. Тонны статей, дискуссий, документаций на темы, аля «RxJS mergeMap vs switchMap vs concatMap vs exhaustMap» могут вызвать головную боль уже в первые пятнадцать минут. Потому первый мой совет: ограничьте список тем и осваиваемых инструментов до самого минимума, декомпозиция важна везде и всегда — слона надо есть по частям. Так начинающий учиться шахматам сначала разбирает каждую фигуру в отдельности, запоминает возможности и нюансы, постепенно переходя к глобальной стратегии игры. Поэтому давайте смахнем все фигуры с доски и оставим там только пешку.

Читать далее

ИИ в ритейле: что сейчас, и что дальше

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров816

Привет! Меня зовут Андрей Головкин и я директор генерального ИТ-подрядчика Fix Price. Про ИИ, конечно, написано много статей, но я же хочу сфокусироваться на том, как ИИ меняет конкретно наш бизнес, и поговорить о профессиях, которые пока ещё не слишком известны широкой публике, однако перспективы которых весьма радужны. 

Читать далее

Webpack, Vite или Rspack: что это за зоопарк или чем собирать микрофронтенды в 2025?

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров13K

Привет! Разбираясь с микрофронтендами в монорепозитории для проекте с Vue3 пришёл к выводу, что так много уделяется внимания гибкости в построении архитектуры и бизнес-задачам, что все боятся заниматься улучшением "условий труда" связанных со сборкой приложения! Решил что эта задачка как раз мне подходит и представляю вашему вниманию небольшую статью которая возможно поможет вам сделать выбор или подтолкнет попробовать новые инструменты сборки фронтенда! Для справки - микрофронтенды у нас на Module Federation, Nx для управления монорепозиторием, общаемся мы через GraphQL, тестируем с Jest и конечно куда без TypeScript. Проект активно развивается, и с ростом его масштабов столкнулись с вопросом: какой сборщик лучше всего справится с нашими задачами? Webpack уже давно с нами, но его медлительность заставляет искать альтернативы. Vite обещает молниеносную разработку, а Rspack — производительность без сложной миграции. Давайте разберёмся, что подойдёт именно нам — и, возможно, вам.

Читать далее

Приложение для структурирования информации. Часть 2

Уровень сложностиПростой
Время на прочтение1 мин
Количество просмотров1.5K

Это продолжение статьи про приложение для работы с данными, которые представляются деревьями.

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

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

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

Сайт приложения так же написан на blazor, но на другом типе проекта: blazor webassembly standalone. Приложение же написано на MAUI Blazor Hybrid. Оба этих типа загружают net сборку в браузер. В теории можно легко сделать веб версию, заменив при этом базу и добавить взаимодействие по api с пользователями и авторизацией. Скорее всего после всех запланированных TODO я этим и займусь.

Читать далее

Почему долгосрочное планирование не работает в UI-разработке?

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров934

Эта статья была написана для конкурса Технотекст-7 «Тот момент, когда происходит изменение». Тема адаптации UI к меняющимся деталям была выбрана, так как связана с темой конкурса.

Современная UI-разработка живет быстрыми темпами. Мы постоянно создаем и меняем код, чтобы соответствовать новым трендам, но часто это делается «на коленке» и без долгосрочного видения. В итоге уже через пару месяцев все, что казалось суперсовременным, превращается в легаси из-за смены моды фреймворков и других деталей реализации.

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

Читать далее

Ближайшие события

Карьера разработчика 2к25: берём вторую работу или помогаем заработать бизнесу?

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров15K

Привет! Я Вероника, фронтенд‑разработчик, работала в корпорации и была человеком-оркестром в стартапе. В стартапе я как раз задумалась над темой развития карьеры по двум стратегиям: хайповой — поднимать зарплату раз в год через собеседования, и консервативной — то самое «думать с позиции бизнеса».

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

В статье разберём, какие бенефиты и подводные камни вас ожидают в каждой из стратегий.

Читать далее

День 4-й проекта объёмом «закончу до обеда»

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров4.2K

TLDR: ИИ — это не ваш помощник, а разработчик-джун, имитирующий профессионализм. Доверяйте ему на свой страх и риск.

Я уже четыре дня занимаюсь своим хобби-проектом. Я был уверен, что реализую его. У меня был хороший план и большой интерес к проекту. Позвольте мне познакомить вас с Deskthang. Это настольный уведомлятор. Во время работы я хочу оставлять свой телефон в другой комнате и получать только важные уведомления. В случае сбоя конвейера развёртывания я хочу, чтобы устройство на моём столе загоралось красным и показывало мне логотип gitlab. Я не хочу, чтобы мне приходилось проверять телефон, почту или другие источники, которые могут отвлечь от работы.

Читать далее

Сложность концепции компоновки на примере для Qt (шпаргалка)

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров3.3K

Описания компоновки (управления автоматическим размещением визуальных элементов) которые мне попадались на родном языке мне кажутся не достаточно погружают читателя в реальную проблематику которая стоит за этим процессом. Мне хочется акцентировать внимание на том откуда берется сложность в этом вопросе. Хотелось бы чтобы кто-то покритиковал мои формулировки.

Читать далее

Что такое MR-стенды и с чем их едят

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.6K

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

Читать далее

Теория вероятностей в действии 2.0 (суть алгоритма корректировки прогнозов разработчиков)

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров3.9K

Раз в несколько лет возвращаюсь к задаче создания алгоритма для наиболее вероятного прогноза на основании ошибок предыдущих прогнозов. Кажется, поиск истины завершён успешно... Или нет? (демо web приложения в конце)

Предложенный вариант алгоритма определения наиболее предсказуемого "вранья" не претендует на абсолютную истину, но имеет под собой вполне устойчивый фундамент

Читать далее

ICOGON: натянем шахматы на глобус

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров1.8K

Игра на сферической (полиэдрической) доске: JavaScript, jQuery, THREE.js.
Краткая информация об истории создания, правилах и интерфейсе.

Рвануть шаблон ↓

Еще раз про отличия Excel Vba vs OnlyOffice/Р7 офис JavaScript

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров2K

В рамках учебного курса основы разработки для Р7 Офис публикуем самый полный список сравнений в разработке Excel Vba vs OnlyOffice/Р7 офис JavaScript

Читать далее