Обновить

Фронтенд

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

Как запустить демопроект на Django, не утонуть в рутине и не потерять данные?

Настройка серверов, управление контейнерами, риск потерять наработанное после их перезагрузки... Или, другими словами, развертывание демо на Django.

Но мы знаем, что делать 🦸 Приглашаем вас на вебинар — ждем всех, кто хочет быстрее развертывать свои приложения.

О чем поговорим:

  • как организовать хранение файлов в Evolution Object Storage;

  • как подключить хранилище к приложению напрямую, без использования S3-клиентов;

  • как делать, чтобы защитить данные от потери после перезагрузки контейнеров.

Ну и куда без практики: в конце встречи в life-time расскажем, как запустить демо на Django в Evolution Container Apps.

📅 Когда? 28 октября в 11:00 мск.

📍Где? Встретимся онлайн — заходите на страницу вебинара и регистрируйтесь.

Теги:
Рейтинг0
Комментарии0

Новое видео с нашей Конференции Luxms, теперь с технологической сессии. Илья Гурешидзе @IlyaGureshidze начальник отдела разработки Luxms BI рассказал о магии вне Хогвартса внутри движка.

Одна из сильных сторон Luxms BI – гибкость клиентской части. Связка JSON + React дает предсказуемое поведение, быструю сборку и легкую доработку интерфейсов – без необходимости лезть в «ядро» или переписывать все с нуля.

Для удобства разработчиков в системе есть специальный проект – bi-magic-resources (BMR). Это проект на React, где можно разрабатывать интерфейсы, хранить наработки в GIT, вести совместную разработку, кастомизировать сборку и запуск, подключать свои библиотеки и переиспользовать уже готовые компоненты заказчика. С ним удобно разрабатывать, тестировать и пробовать новый функционал, не мешая основной ветке разработки.

Подробнее на:

Теги:
Рейтинг0
Комментарии0

Какие пет-проекты у фронтенд-разработчиков в бигтехе

Городские. И конечно, они связаны с дизайном. 😎

Привет! Это Саша Чабин, старший инженер-программист в Контуре. На работе разрабатывает пользовательские интерфейсы, развивает дизайн-систему, проводит ревью техстандартов в инженерном пути. А вне работы — создаёт онлайн-карты Екатеринбурга и преподаёт студентам УрФУ. Рассказал, как не чувствовать себя выжатым лимоном от такого количества дел и кто его на них вдохновляет.

Какие интересные проекты я делаю, когда свободен от рабочих задач:

  • Генплан Екатеринбурга, который помогает общественникам. Это такой сайт, на котором собраны все документы про то, как должен выглядеть генеральный план города. Позволяет не выкачивать кучу файлов сайта администрации, а сравнить и проверить всё в одном месте. Сделали генплан несколько лет назад, а им до сих пор активно пользуются: часто обновляют и проводят по нему слушания.

  • Дизайн-код Екатеринбурга. Это сообщество архитекторов и дизайнеров-энтузиастов, которые делают город красивым и понятным. Например, разрабатывают дизайн адресных табличек на дома и делают онлайн-карту города, на которой можно найти объекты культурного наследия, интересный стрит-арт, посмотреть этажность домов и многое другое.

  • Преподаю студентам третьих и четвёртых курсов ФИИТ. Рассказываю про фронтенд-разработку интерфейсов — то, чем занимаюсь в Контуре. Верстаем, перевёрстываем, выполняем домашки. 

Как получается не выгорать от такого количества дел?

Важно чувствовать интерес, любопытство и вдохновляться другими людьми. Своими проектами я занимаюсь после работы и в выходные потому что считаю их важными и полезными. Когда тебе искренне нравится то, чем занимаешься на работе и после неё, усталости нет. Думаю, многим знакомо это чувство и его сложно объяснить: оно просто есть. Конечно бывает и то, что ощущаешь себя выжатым лимоном — без этого никуда. Но когда видишь вокруг людей, которые двигают эту планету и делают в разы больше тебя, — вдохновляешься. Например, общественники Екб, которые договариваются с горадминистрацией о новых проектах — смотришь и думаешь, откуда в них столько смелости и напора?! 

Кто ещё меня вдохновляет:

  • Андрей Ситник — фронтенд-разработчик энтузиаст, который сделал кучу полезных инструментов для фронтендеров. Мне удалось немного поработать с ним. Его суперсила — в желании двигать индустрию и возможности помогать всем начинающим.

  • Александр Георгиевич Гейн — кандидат физико-математических наук, профессор. У него я учился и удивлялся, как этот человек искренне хотел помочь своим студентам и всегда находил время на то, чтобы проконсультировать всех, кто что-то недопонял по теме или просто хотел узнать больше. Подпитывать интерес студентов — было его суперсилой, которой и я стремлюсь обладать.

  • Николай Александрович Чабин, мой дедушка. Он был военным, объездил всю Россию. После 60 лет вернулся на родину, в Первоуральск, и занялся Книгой памяти о призванных в годы Великой отечественной войны. Дедушка работал в Совете ветеранов и учился осваивать компьютер: Word, Excel, интернет. Учился работать с архивами и возил ветеранов в Екатеринбург на разные мероприятия. Обижался всё время, что в интернете не вся информация есть. Меня всегда заражал его интерес ко многим вещам, наверное поэтому во мне развито желание успеть многое. Кстати, хочу доработать Книгу памяти дедушки, придумать для неё новый формат.

Все эти люди — маяки для меня. Хочу тоже быть для кого-то таким маяком.

***

«Пет проекты Контура» — это серия видеороликов, на которых наши разработчики рассказывают о своих личных инициативах вне работы и гуляют с собаками из приюта Хаски Екб. Выпуск про Сашу и собаню Пончика — первый, и его можно посмотреть в VK Видео, на RuTube и YouTube. А чтобы не пропустить новые выпуски, подписывайтесь на наш блог или любую другую площадку. 😉

Теги:
Всего голосов 4: ↑3 и ↓1+2
Комментарии0

Представьте: у вас есть идея магазина. Через час у вас уже главная, каталог и корзина. Реально?

Да! Это вайбкодинг — новый способ писать код в потоке и быстро превращать идеи в прототипы.

13 октября на бесплатном вебинаре «Вайбкодинг без рутины: готовый проект за час» за 60 минут:

✔️ Развернём проект в Windserf без долгого сетапа

✔️ Сравним Copilot и GigaCode прямо в деле

✔️ Потренируемся в промптинге, чтобы код писать быстрее

✔️ Соберём интернет-магазин целиком в прямом эфире

Время: 16:00–17:00 (Мск). 

📆 Дата: 13.10.2025.

👨‍🎓 Спикер: Кадочников Алексей — специалист в области фронтенд-разработки.

✍️ Зарегистрироваться

Теги:
Всего голосов 4: ↑0 и ↓4-4
Комментарии0
Кажется ХабрГПТ пытается нам что-то сказать..
Кажется ХабрГПТ пытается нам что-то сказать..

В прошлом году у нас был $mol_meetup, а на этой неделе будет Гипер Митап!

Уже в эту пятницу вечером, 10 октября, в Питере, в в ITentika, сообщество Гипер Дев соберётся для обмена опытом разработки на отечественном фреймворке мирового уровня $mol и набросает карту захвата мирового господства максимально экологичными методами.

Приходи познакомиться с профессиональными $mol разработчиками, узнать про их масштабные проекты, прочувствовать вайб гаражных инноваций, и стать участником этой упоротой безбашенной движухи, совсем потерявшей берега. Даже если сам не разраб - экспертиза в других областях тоже ценна. Главное - чтобы глаза горели, а руки не боялись творить невозможное.

Вход на площадку по паспортам, так что срочно регистрируйся!

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Как правильно внедрить SRI и обезопасить свой проект от атак через CDN?

Subresource Integrity (SRI) — это функция безопасности, которая позволяет браузерам проверять, не были ли данные, загруженные посредством CDN, изменены. SRI — важный инструмент для повышения безопасности веб-приложений. Он защищает от атак, в которых злоумышленник может внедрить вредоносный код в сторонние ресурсы.

В статье «Как настроить SRI, если у нас микрофронты» рассказываем, что это такое и зачем он нужен, как устроена технология на практике и почему она особенно важна в проектах с микрофронтами. Если вы работаете с микрофронтами или хотите повысить безопасность фронтенда — эта статья поможет сделать всё грамотно и без лишних головных болей.

Теги:
Рейтинг0
Комментарии0

...и вот у меня спрашивают «А какие у тебя мотивация работать и стимул для развития?», а я говорю «Деньги». Ты бы видел как на меня посмотрели! Как будто ждали какой-то другой ответ. Что мне надо было ответить? Не понимаю. Работать за идею?

Недавно общался со своим другом с прошлой работы и разговор зашел за повышения и performance review. И этот момент ТОТАЛЬНОГО непонимания руководителями желания сотрудника зарабатывать больше мне как-то скребется, я слышал о похожих ситуациях уже немало.

Хотелось бы здесь написать остро "НИКТО!", но буду мягче. Если мы будем честны: мало кто в найме готов работать только за идею. Я уверен, если предложить этому ревьюверу: «Ой, а давай мы твою зарплату попилим на весь отдел? Тебе же хватит идеи?», – он быстро сольется.

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

И вот у друга спрашивают: «А что тебя мотивирует, кроме денег?». И в этот момент я думаю: а что мотивирует стоматолога? Чтобы у меня зуб не болел. Но если ему сказать: «Давай-ка, дружочек пирожочек, ты полечишь меня бесплатно? Твоя ж идея – это здоровье людей»? Он меня пошлет и будет прав. И хирург, и пилот самолета, и строитель – все пошлют. Но почему-то в айтишечке считается, что я должен радоваться "идее".

Работа ради идеи возможна, если эта идея твоя. Если же это чужая идея, за чужие деньги, да ещё и без нормальной компенсации – это.. бесплатный кружок по интересам? Фан-клуб с членскими взносами? Секта? Выбирайте что больше нравится.

Отличная компенсация + интересные задачи + адекватный менеджмент = получаем мотивированную команду. Идея и миссия компании – это важно и круто, но это вишенка на торте, а не замена базовым потребностям.

Теги:
Всего голосов 5: ↑4 и ↓1+5
Комментарии8

Linkedin писали русские

Перевод: https://www.linkedin.com/pulse/observe-dont-just-see-sergey-derevyago-cbj7f

Ватсон: Я думаю, мои глаза не хуже ваших.
Холмс: Да, это так. Но вы смотрите и не видите...

Сколько лет вы уже смотрите на эту картинку?

Нет, там не аудио компонент. А простое понятное русское слово...

С днём программиста!

Теги:
Всего голосов 6: ↑5 и ↓1+5
Комментарии2

От TODO-листа к анимационному шедевру

Начал разбираться с Motion для React, но оказалось, что свежих обзорных статей почти нет? В нашей статье полный обзор библиотеки Motion — идеального инструмента для создания современных UI-анимаций. Внутри:

  • Разбор ключевых motion-компонентов.

  • Практические примеры кода с плавной анимацией TODO-листа.

  • Как настроить анимации появления, исчезновения и перетаскивания элементов.

  • Советы по оптимизации с LazyMotion и управлению анимациями через хуки.

  • Интересные лайфхаки для создания интерактивных интерфейсов без потери производительности.

Прочитал документацию и подготовил обзор библиотеки Motion для React и её возможностей
Что представляет из себя данная статья? Когда я начал разбираться с Motion для React, то оказалось, ...
habr.com

В статье «Попробовал библиотеку Motion в React: делюсь обзором» есть примеры кода, GIF-анимации и описание хуков, которых, достаточно, чтобы понять Motion, и, возможно, попробовать его руками, сэкономив время на чтении документации.

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

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

Какие способы навигации удобнее табов? Будем использовать cmd+p для Command Pallete, cmd+d для Open Recent, alt+<right> и alt+<left> для навигации по позициям курсора в разных файлах.

Конфиг выпуска:

{
  "workbench.editor.showTabs": "single",
  "workbench.editor.showIcons": false,
  "workbench.editor.labelFormat": "medium",
  "breadcrumbs.enabled": false,
}

Горячие клавиши:

{
  {
      "key": "alt+left",
      "command": "workbench.action.navigateBack"
  },
  {
      "key": "ctrl+-",
      "command": "-workbench.action.navigateBack"
  },
  {
      "key": "alt+right",
      "command": "workbench.action.navigateForward"
  },
  {
      "key": "ctrl+shift+-",
      "command": "-workbench.action.navigateForward"
  },
  {
      "key": "cmd+d",
      "command": "workbench.action.quickOpenPreviousRecentlyUsedEditorInGroup",
      "when": "!activeEditorGroupEmpty"
  },
  {
      "key": "ctrl+tab",
      "command": "-workbench.action.quickOpenPreviousRecentlyUsedEditorInGroup",
      "when": "!activeEditorGroupEmpty"
  },
}

Полный конфиг: https://github.com/sobolevn/dotfiles

Теги:
Всего голосов 7: ↑7 и ↓0+12
Комментарии0

В открытом репозитории «A to Z Resources for Students» представлены ресурсы для обучения Python, PHP, Ruby, C++, C#, Machine Learning и нейросетями, а также всё про разработку на Android и много материалов про Frontend и Backend.

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

На днях посмотрел два видео по рынку ИТ, в том числе с фокусом на российский сегмент (раз и два).

За завесой рассказов про ИИ, vibe coding, T-shape, динамику Восточной Европы и прочим анализом в тени остался, на мой взгляд, самый важный вопрос, на который можно ответить "да" или "нет". 

Способен ли "вкатун" - человек без коммерческого опыта, выучивший ответы для прохождения собеседования - удовлетворять потребностям компании, куда его наняли?

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

Приносит ли такой сотрудник по факту больше пользы, чем вреда, и стоит ли он своих денег.

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

Они могут дать вам только полезные знакомства, и вы обойдете сам процесс найма.

Поэтому работникам придется адаптироваться, находя новые подходы к прохождению собесов, или менять профессию.

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

А как думаете вы?

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

После прочтения статьи Меня сократили из Т-Банка, и я полгода искал работу в IT захотелось поделиться своим взглядом на ситуацию.

Согласен с автором, что тренды меняются.

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

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

В нашей компании («Росшоколад») мы используем разные форматы в зависимости от задач конкретной команды. Например, для одной из позиций в Санкт-Петербурге (Frontend/Fullstack) мы ищем специалиста именно на гибрид — считаем, что для этого проекта это будет наиболее эффективно.

Интересно узнать у вас:

  • Какой формат работы преобладает в вашей компании?

  • Замечаете ли вы сдвиг в сторону гибрида или возврата в офис?

(Если кого-то заинтересует наша вакансия в Питере, пишите в ТГ).

Теги:
Всего голосов 3: ↑2 и ↓1+4
Комментарии0

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

В продолжение темы серверного HTML рендеринга на Kotlin.

Если вы не читали статью, кратко напомню о чём речь: я написал небольшой можно сказать фреймворк для генерации HTML на стороне сервера на Kotlin. И поддержку строготипизированных routes для удобного создания ендпоинтов, ссылок на них и форм. Теперь Spring Views можно создавать на Kotlin и по крайней мере в моих проектах (а один из них очень большой - сотни отдельных страниц и десятки виджетов) это дало мне огромное удобство, уверенность, безопасность, рефакторо-пригодность, простое версионирование и переиспользование кода, например, теперь я точно не сделаю опечатку в URI или имени параметра и не смогу передать неверный тип данных на endpoint.

Одна из проблем которые до недавнего времени была в связи с использованием данного фреймворка - это CSS-стили. Приходилось либо инлайнить стили непосредственно для HTML элемента, либо мейнтейнить огромный (или несколько поменьше) CSS файл без возможности внятно следить за старыми более неиспользуемыми классами и селекторами. Кто создавал большие CSS файлы знает о чём я говорю - со временем количество классов накапливается и вычистить их не задев чего-то всё ещё нужного очень сложно. Вот так приходилось работать с CSS стилями раньше:

DIV("css-class-name") {...}
// или
DIV {
  style("color: red;")
  +"Hello World"
}

В принципе жить можно, но хотелось чего-нибудь:

  • что-то на подобии Styled-Components из ReactJS, но так же на Kotlin

  • по возможности поддержку JVM hot-reload в режиме отладки

  • как следствие кода на Kotlin - иметь возможность всегда отслеживать зависимости и удалять более неиспользующиеся CSS-правила.

Долго думал как это получше сделать, и пока что первая версия получила вот такой синтаксис:

@Component // Spring @Component
object MyCssClass : CssClass({
  style = "color: black;"
  hover = """
    color: red;
    text-decoration: underline;
  """
})

...

A(MyCssClass) {
  href(SomeUsefulRoute(param = 1))
  +"Click me"
}

То есть объявляем object который будет нести информацию о CSS свойствах элемента. И далее просто используем его в тех же местах где раньше можно было указать css-class-name. CssClass поддерживает массу "псевдоклассов" типа hover, active, firstOfType, before, after и так далее, так же можно добавлять media брейкпоинты и всякие другие штуки. Вот более насыщенный пример:

@Component
object Container : CssClass({
    style = "padding: 25px;"
    hover = "background: #eee;"

    add(">a", "color: green;")
    add(">a:hover", "text-decoration: underline;")

    media("max-width: 991px") {
        style = "padding: 10px;"
    }
})

Вы наверняка заметили двойные скобочки ({...}) - в конструктор я передаю функцию-инициализатор стилей. Это нужно для того, чтобы в дебаг режиме JVM можно было на лету менять свойства CSS класса без перезапуска приложения: код который генерирует сам css-файл может быть запущен в режиме dev-mode, когда на каждый запрос файла будут выполнены все функции-инициализаторы ещё раз и файл будет собран заново.

Если по какой-то причине вам не нравится object - можно просто объявить class и использовать его:

@Component
class Container : CssClass({...})
...
DIV(Container::class) { ... }

Теперь в проекте порядок с CSS стилями - нет давно умерших, всегда можно найти точки использования, стили лежат рядом с виджетами и т.п.

Смотрите исходники тут. Фидбэк приветствуется, всем хорошего дня.

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии4

Репозиторий react-bits содержит тысячи анимированных компонентов на React для создания веб-проектов и интерфейсов, а также большое количество элементов — кнопки, карточки, меню, необычные курсоры, анимированные списки и декоративные фишки. Каждый из компонентов можно протестировать в браузере — проверить работу и то, как он будет смотреться в вебе. Элементы интегрируются в проект за один клик.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Представлен сервис Strudel, который превращает строки кода в мелодии. В качестве основы используется — JS, по этому гайду можно сделать любую композицию из кода. Если есть синтезатор или целый музыкальный сетап, то его можно забустить через MIDI или OSC.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии1

HR-собеседование: почему не стоит задавать технические вопросы

За эти полгода я прошел больше 100 собеседований, и только на одном техническом интервьюер понял, о чем спрашивает. HR там занимается только React-разработчиками и умеет писать простые приложения.

На остальных собеседованиях меня спрашивали про ООП, связи таблиц в базе данных и типы данных в JS. На первый вопрос я уже могу не помнить ответа, так как пишу на функциях 5 лет. Второй вопрос — вообще не мой конек. Третий — вроде имеет смысл, но что HR этим проверяет? 🤔

HR-собеседование важно, но его цель — не в проверке технических навыков, а в оценке личных качеств. Когда HR начинает спрашивать про фреймворки или синтаксис, это пустая трата времени для всех. 🕐

Почему технические вопросы на HR-этапе — это плохо?

  1. HR может неправильно оценить ответ. Если кандидат скажет что-то сложное, HR не поймет, правда это или блеф. Если ответ будет неверным, HR может пропустить хорошего специалиста. 😕

  2. Создаётся ложное впечатление о компании. Кандидат думает: «Если HR лезет в технические детали, что будет на реальном собеседовании?» 😲 Это отпугивает сильных разработчиков, которые ценят время. ⏰

  3. HR-этап должен фильтровать другое. Мотивация, ожидания по зарплате, готовность к условиям работы (офис, гибрид, удалёнка). Умение коммуницировать, работать в команде, адаптироваться к процессам. 💼

Вывод

HR-собеседование должно помочь кандидату и компании понять, подходят ли они друг другу по культуре, запросам и ценностям, а не проверять знание фреймворков. Оставьте техническую часть технарям. 🛠️

Теги:
Рейтинг0
Комментарии1

Представлена библиотека красочных анимаций на чистом JS для разных проектов All-in-one animation engine. Все анимации интегрируются за один клик и разобраны по типам: скроллбары, загрузчики, меню, переходы, счётчики или просто стилизованные элементы.

Теги:
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

WT Yandex map items v.2.1.0 модуль для Joomla.

Выводит материалы Joomla в виде меток на Яндекс.Карты. Используется API 3.0.

v.2.1.0. Что нового?

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

Определение местоположения пользователя.
Модуль может определять местоположение пользователя и центрировать карту на нём. При одновременном использовании с функцией сохранения последнего вида карты определение геопозиции будет срабатывать только в первый раз. В дальнейшем, если обнаружены сохранённые данные центра и масштаба - будут использоваться они.

CSS классы для маркеров карты.
Всем маркерам карты добавлен CSS-класс wt-yandex-map-items-marker. Для просмотренных маркеров (по которым кликали) добавляется CSS-класс wt-yandex-map-items-marker-viewed, что позволит выделять просмотренные маркеры с помощью стилей в CSS-файлах вашего шаблона. Также для контейнеров маркеров ymaps на карте добавлены data-атрибуты: data-module-id - id модуля и data-marker-id - id маркера.

Обработка GET-параметров в URL.

Карта может реагировать на GET-параметры в url:

  • map[zoom] - устанавливает параметр масштаба.

  • map[center_latitude] и map[center_longitude] - широта и долгота центра карты.

  • map[marker_id] - id маркера, на котором центрируется карта. Таким образом вы можете создавать ссылку на карту с указанием конкретного маркера, на котором карта сфокусируется после загрузки маркеров. Например, https://site.ru/map?map[marker_id]=18465. Или же ссылку с указанием конкретных координат: https://site.ru/map?map[zoom]=16&map[center_latitude]=51.529706&map[center_longitude]=46.033922

Страница расширения

GitHub расширения

Видео-обзор на Youtube

Видео-обзор на VK Видео

Видео-обзор на Rutube

Теги:
Всего голосов 3: ↑1 и ↓2-1
Комментарии0