Как стать автором
Поиск
Написать публикацию
Обновить
99.16
hh.ru
HR Digital
Сначала показывать

Работа с толстофичами: как разобрать слона на части и собрать обратно

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

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


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


Читать дальше →

Магическая шаблонизация для Android-проектов

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


Начиная с Android Studio 4.1, Google прекратил поддержку кастомных FreeMarker-ных шаблонов. Теперь вы не можете просто взять и написать свои ftl-файлы и сложить их в определённую папку, чтобы Android Studio самостоятельно добавила их в меню New → Other. В качестве альтернативы нам предлагают разбираться в плагиностроении и создавать шаблоны изнутри плагинов IDEA. Нас в hh такая ситуация не очень устраивает, так как есть несколько полезных FreeMarker-ных шаблонов, которые мы постоянно используем и которые иногда нуждаются в обновлениях. Лезть в плагины, чтобы поправить какой-то шаблон? Нет уж, увольте. 


Всё это привело к тому, что мы разработали специальный плагин для Android Studio, который поможет решить эти проблемы. Встречайте – Geminio.

Читать дальше →

Разбор вступительных задач Школы Программистов hh.ru

Время на прочтение7 мин
Количество просмотров15K
20 октября закончился набор в Школу программистов hh. Он длился два с половиной месяца. Мы благодарим всех участников, уделивших время попытке поступить к нам. Надеемся, вам понравились задания и вы получили удовольствие от их решения!

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

image
Читать дальше →

Исследование узнаваемости работодателей в ИТ

Время на прочтение6 мин
Количество просмотров13K
Всем привет! Недавно мы провели исследование технобренда hh.ru и решили поделиться его результатами. У нас стояла задача выяснить, насколько популярен hh среди аудитории ИТ-специалистов как потенциальный работодатель. Но поскольку себя нужно с чем-то сравнивать — в исследовании также спрашивали про ряд других компаний на рынке. Под катом получился некий helicopter view на рынок труда в ИТ. 


Читать дальше →

Navigation Component-дзюцу, vol. 3 — Corner-кейсы

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


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


Это третья и заключительная статья в цикле про различные кейсы навигации с Navigation Component-ом. Вы также можете ознакомиться с первой и второй частями

Читать дальше →

Перфоманс фронтенда как современное искусство: графики, код, кулстори

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

Всем привет. В предыдущих статьях мы говорили о базовых вещах оптимизации: раз и два. Сегодня я предлагаю с разбега окунуться в одну часть из тех задач, которыми занимается команда архитектуры фронтенда в hh.ru.


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


  • Перфоманс приложения
  • Инфраструктура: сборка, тесты, пайплайны, раскатка на продакшене, инструменты для разработчика (например бабель-плагины, кастомные eslint правила)
  • Дизайн-система (UIKit)
  • Переезд на новые технологии

Если покопаться, можно найти много интересного.


Поэтому, давайте поговорим о перфомансе. Команда фронтенд архитектуры ответственна как за клиентскую часть, так и серверную (SSR).


Я предлагаю посмотреть на метрики и разобраться, как мы реагируем на различные триггеры. Статья будет разбита на 2 составляющие. Серверную и клиентскую. Графики, код и кулстори прилагаются.


Читать дальше →

Navigation Component-дзюцу, vol. 2 – вложенные графы навигации

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


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


Это вторая из трёх статей про реализацию кейсов навигации при помощи Navigation Component-а.

Читать дальше →

Navigation Component-дзюцу, vol. 1 — BottomNavigationView

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


Два года назад на Google I/O Android-разработчикам представили новое решение для навигации в приложениях — библиотеку Jetpack Navigation Component. Про маленькие приложения уже было сказано достаточно, а вот о том, с какими проблемами можно столкнуться при переводе большого приложения на Navigation Component, информации практически нет.


В этой и следующих двух статьях я расскажу о кейсах, с которыми может встретиться разработчик, желающий опробовать Navigation Component в большом Android-приложении.

Читать дальше →

Коротко: рынок труда в разработке после Covid

Время на прочтение4 мин
Количество просмотров26K
Что происходит на рынке труда спустя полгода с начала локдауна, какие отрасли восстанавливаются, сколько вакансий открыто для разработчиков? Под катом посмотрим на реакцию ИТ-сферы на «ковидную» весну, сравним июль прошлого года с нынешним по количеству вакансий и узнаем о зарплатах. Обзор максимально сжатый, в 10 минут уложимся.


Читать дальше →

В диких условиях. Итоги проектов Школы программистов в эпоху самоизоляции

Время на прочтение6 мин
Количество просмотров2.1K
За четыре месяца занятий были прочитаны 54 лекции на двух потоках бекэнд и фронтенд, проведены несколько крутых практикумов с live-coding’ом. Проверены сотни заданий, на все вопросы получены две сотни ответов. Тут пришел 2020 год и сразу после того как мы сняли с елок гирлянды, всем нам самим пришлось нарядиться в маски и надеть перчатки. А теперь по порядку:



Десятая Школа Программистов hh.ru стала особенной. Юбилей, огромное количество планов, неиссякаемый поток учеников, неугасающая мотивация наших преподавателей и организаторов. Мы приложили максимум усилий, чтобы этот выпуск стал образцовым.
Читать дальше →

Оптимизация производительности фронтенда. Часть 1. Critical Render Path

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

Здравствуйте. Меня зовут Ник, я фронтенд разработчик (жидкие аплодисменты). Кроме того, что я пишу код, я преподаю в Школе программистов hh.ru.


Записи наших лекций от 2018-2019 учебного года можно посмотреть на youtube


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



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


Лонгридом можно пользоваться как справочником, чтобы не читать за один присест. Вот список тем, которые мы затронем:


  1. Зачем думать о производительности
  2. FMP, TTI + подробнее в докладе
  3. Critical render path, DOM, CSSOM, RenderTree
  4. Шаги по улучшению производительности первой загрузки + подробнее в докладе
Читать дальше →

Swift: Копируй-изменяй

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


Часто бывает так, что нам нужно скопировать объект, изменив некоторые его свойства, но сохранив остальные неизменными. Для этой задачи существует функция copy().

Это отрывок описания метода copy() из документации Kotlin. На нашем родном языке Swift это означает примерно такую возможность:


struct User {
    let id: Int
    let name: String
    let age: Int
}

let steve = User(id: 1, name: "Steve", age: 21)

// Копируем экземпляр, изменив свойства `name` и `age`
let steveJobs = steve.changing { newUser in
    newUser.name = "Steve Jobs"
    newUser.age = 41
}

Выглядит вкусно, не так ли?


Увы, в Swift отсутствует подобный функционал "из коробки". Это небольшое руководство поможет реализовать его самостоятельно.

Читать дальше →

Портрет российского специалиста Data Science от MADE и hh.ru

Время на прочтение2 мин
Количество просмотров7.4K
16 июля 2020 г. Академия больших данных MADE от Mail.ru Group и hh.ru составили портреты российских специалистов по анализу данных (Data Science) и машинному обучению (Machine Learning). Аналитики выяснили, где они живут и что умеют — а также чего ждут от них работодатели и как меняется спрос на таких профессионалов.

Академия MADE и HeadHunter проводят исследование уже второй год подряд. На этот раз эксперты проанализировали 10 500 резюме и 8100 вакансий.



Читать дальше →

Предвзятый и субъективный взгляд на резюме разработчика

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

Привет! Недавно мои коллеги из hh.ru провели вебинар, где разбирали резюме разработчика. Я решил поделиться своей точкой зрения на этот счет.


image


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

Читать дальше →

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

Оля, тесты и фабрика — путь к красивой архитектуре и чистоте кода

Время на прочтение17 мин
Количество просмотров11K
В автоматизации тестирования существует много разных подходов, решений и способов. Самый распространенный и незаменимый —  паттерн Page Object (Screen Object). Я столкнулась с двумя подходами при работе с этим паттерном: c фабрикой для своих page object-ов и без нее. В этой статье на примере наших автотестов сравним оба подхода, их плюсы и минусы. Покажу, как выглядит наша фабрика page object-ов. Также расскажу о проблемах, с которыми мы столкнулись в автотестах с фабрикой и как их решили.

Все примеры в статье буду приводить на языке Swift, но для Android автотестов все работает аналогично.

Идеальное резюме разработчика

Время на прочтение7 мин
Количество просмотров117K
Привет! Недавно прошел бесплатный вебинар, где наши эксперты в прямом эфире препарировали резюме разработчика и наглядно разбирали, каким должно быть идеальное CV IT-инженера. Только факты: в этой статье изложены все ключевые моменты, которые стоит учитывать при создании резюме, а также масса любопытных советов, призванных помочь вам стать еще более желанными на рынке.


Читать дальше →

Учись, пока самоизоляция

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

Всем привет! На связи Школа программистов hh.ru. Самоизоляционная пора отлично подходит для того, чтобы подтянуть хвосты в знаниях, выучить что-то новое или просто освежить уже изученное. Впереди майские праздники, и многие из нас проведут их в сиянии лучей мониторов, поэтому мы решили подлить масла знаний в ваше пламя самообразования и выпустить в свободный доступ ещё больше наших лекций!


image

Читать дальше →

Вебинар: Разбор резюме для IT-специалиста

Время на прочтение1 мин
Количество просмотров5.9K
Что должно быть в резюме у разработчика, а о чем лучше не писать? Какие скиллы в нем – must have? На что в первую очередь обратят внимание ваш потенциальный руководитель и рекрутер?

Обо всем этом расскажут 28 апреля в 18:00 на примере конкретной анкеты соискателя Олеся Плотникова, главный рекрутер hh.ru, и Александр Блинов, руководитель нашего мобильного направления.

Хотите, чтобы ваше резюме усовершенствовали в режиме онлайн?

Регистрируйтесь на вебинар прямо сейчас.

Как профессионалу оставаться востребованным

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


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

Часто попадаются вакансии, где на первые строчки ставят не конкретные технологии, а понимание основ и skill set, которые способствуют успешному решению задач вне зависимости от знаний языков программирования, приложений и фреймворков.

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

Как заменить target-action и delegate замыканиями

Время на прочтение7 мин
Количество просмотров4K
Apple предоставляет различные варианты обработки данных и событий в iOS приложениях. Обработка событий UIControl происходит через паттерн target-action. В документации к UIControl написано следующее:
The target-action mechanism simplifies the code that you write to use controls in your app
Посмотрим на пример обработки нажатия на кнопку:
Читать дальше →

Информация

Сайт
hh.ru
Дата регистрации
Дата основания
Численность
1 001–5 000 человек
Местоположение
Россия