Нравится, что команда идёт в ногу со временем: веб-разработчики о работе, проектах ОМ и немного — об отношении к фулстеку

Нравится, что команда идёт в ногу со временем: веб-разработчики о работе, проектах ОМ и немного — об отношении к фулстеку

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

Статья будет вам полезна, если хотите познакомиться с нашим видением работы, процессами или присоединиться к команде 👇

💡
Сейчас мы ищем Middle Frontend Developer для проектов LALAL.AI и 4K Download. Переходите по ссылке, чтобы откликнуться или узнать о вакансии и используемом стеке больше.

В вебе не надо так глубоко погружаться в низкоуровневые детали

Влад, бэкенд-разработчик

Мне нравится программирование, но от низкоуровневого я устал ещё в универе. Когда уже представил, что будет делать программа, но от результата тебя отделяет огромное полотно кода с выделением памяти и подсчёта указателей, это несколько фрустрирует. В вебе не надо так глубоко погружаться в детали реализации. Фреймворки написаны за тебя — используй готовое. При этом бэк более строгий, чем фронт. Лаконичность и высокоуровневость — что может быть приятнее 🙃

Основная область моей работы над проектами Опен Медиа — платежи: рассчитать сумму платежа, налоги, скидки и бонусы. К такой ответственности было сложно привыкнуть. Поначалу было страшно списать лишнего или вообще аннулировать половину подписок. Страшно и сейчас, но уже не так: с коллегами на ревью внимательно изучаем каждое изменение, поскольку высока цена ошибки.

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

Захотелось научиться создавать красивые интерфейсы и приложения, которыми приятно пользоваться

Антон, фронтенд-разработчик

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

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

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

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

Из последних открытий коллег мне запомнилось, что Саша добавил Storybook в проект Waveroom. Эта штука позволяет изолированно проверять или смотреть компоненты, используемые в проекте. Мне стало удобнее проверять собственные изменения; также теперь не нужно добавлять скриншоты в пул-реквесты для задач, связанных с UI-компонентами. А ещё дизайнеры могут локально посмотреть, как реализованы вещи из дизайн-системы.

Из сложного в работе мне запомнился случай, когда на сайте 4K Download злоумышленники начали DDoS-атаку, перебирая случайные платёжные данные в форме покупки и отправляя огромное количество запросов на сервер. Пришлось коллективно придумывать, как с этим бороться, потому что оплата пользователям стала недоступной.

Тяжело назвать плюсы, когда просто любишь это дело и кайфуешь

Саша, фронтенд-разработчик

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

Из плюсов фронтенда я бы выделил много полезного опыта со стороны дизайнеров, пользователей и продакт-оунера, тогда как бэк почти всегда работает только с данными и их обработкой и серверами (даже пишу, и уже скучно становится 😀). На самом деле тяжело писать про плюсы, когда ты просто любишь это дело и кайфуешь, а значит — сплошные плюсы!

Конечно, в других компаниях иногда бэкендеры могут говорить, что ты недопрограммист, недодизайнер, что мы выравниваем кнопочки и раскрашиваем тексты. А если без шуток, то из минусов могу выделить, что фронт сейчас развивается ну очень быстро, и изменения — не всегда упрощения. Нужно уметь фильтровать большой поток новых библиотек, технологий, направлений и фокусироваться на главном.

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

💡 Моим открытием в ОМ недавно стала относительно новая методология по работе с архитектурой, которая позволяет чётко разделять визуал и бизнес-логику, поддерживать проект в чистоте, легко расширять его и модифицировать мелкие части, при этом не ломая ничего глобально. А открытием коллег для меня стали работы с Web API, а именно с внутренними модулями по работе со звуком и видео. Обычно на фронте я делал визуал и интерактив с помощью интерфейса сайта, но когда ты работаешь над продуктами, которые используют для работы с видео и аудио внутренние инструменты браузера, и за счёт этого создаются новые варианты коммуникации, ведения подкастов, записи, то это расширяет твои возможности как разработчика, да и это просто очень крутой, уникальный и интересный опыт.

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

Frontend — это как дневник в школе — лицо проекта

Илья, фронтенд-разработчик

Мне понравилось создавать интерфейсы ещё во время учёбы. С помощью веб-технологий и JS можно делать классные вещи! Это вдохновляет. Главный плюс фронтенда для меня в том, что ты вместе с пользователем видишь свою работу. По сути, frontend-часть — это как дневник в школе — лицо проекта. Получаешь большое удовольствие, когда удаётся получить обратную связь и чем-то помочь пользователям.

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

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

Для меня приоритетнее, чтобы что-то работало, нежели было красивым

Даша, бэкенд-разработчица

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

Работая над проектами ОМ, я продумываю архитектуру сайта, настраиваю хранилище информации, собираемой с сайта — базу данных, подкручиваю к сайту сторонние сервисы, например, платёжные системы, то есть реализую возможность работать со сторонним сервисом через сайт. Также слежу за безопасностью сайта и занимаюсь его оптимизацией.

За время развития проекта мы постоянно проходим этапы от «да как это сделать?» до «а что, так можно было, что ли?»

Артём, фронтенд-разработчик  

Я пробовал себя во многих направлениях. Наверное, многие хотели стать игровыми разработчиками; так вот, я один из них 🙃 Много времени уходило на рисование, а художник из меня тот ещё, из-за чего часто мотивация под конец разработки иссякала. Визуально я не дотягивал до того, что мне хотелось бы видеть. Затем пробовал мобильные приложения, но идей особо не было, поэтому решил вернуться к играм и создавать их для веба, чтобы прямо в браузере раз — и поиграл. Так и втянулся. Кроме изучения всего и вся, что есть во фронтенде, делал различные сайты для родственников и знакомых. Даже для военной кафедры сайт делал по исторической тематике. Это требовало изучения уже не только чистого фронтенда, но и дизайна, бэкенда, да и остального, что тогда называлось сайтостроением.

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

А нравится, конечно, многое. За последние 5-7 лет фронтенд сделал огромный скачок. То, что раньше можно было реализовать только в десктопных приложениях, сейчас можно реализовать прямо в браузере. А сколько ещё всего готовится в рабочих черновиках, ух! Нас ждёт много интересного. 3D, VR, AR, например, уже доступны в браузере. Даже NFC можно использовать. И всё это на компьютере, телефоне, планшете под любыми ОС — кайф же!

Кому интересно, можно посмотреть тут 👇

Web APIs | MDN
When writing code for the Web, there are a large number of Web APIs available. Below is a list of all the APIs and interfaces (object types) that you may be able to use while developing your Web app or site.

В ОМ я занимаюсь разработкой самого лучшего сервиса (а как иначе?) для записи подкастов в высоком качестве Waveroom. До этого участвовал в разработке сайтов для наших основных продуктов 4K Download, Combin, Qoob и нового — LALAL.AI.  

И тут можно много о чём рассказать.

💡 Мы пишем проекты буквально с нуля. За время развития проекта мы постоянно проходим этапы от «да как это сделать?» до «а что, так можно было, что ли?». Например, в Waveroom мы не ограничены используемыми технологиями, из-за чего можем начать использовать то, с чем ни у кого в команде не было опыта. Да и не только в команде — порой бывает очень тяжело найти нужное решение даже на Stackoverflow. Тогда и начинаются открытия! То нужно придумывать, как записывать видео в 4K-качестве, то объединить аудио с видео всех пользователей в одно красивое видео, то нужно разобраться, как реорганизовать внутреннюю структуру приложения или даже как красиво и удобно реализовать кнопку во фронтенде 😊 Всё это наши большие и маленькие находки, от которых зависят проекты.

Пока мы не очень открыты в плане публикации своих статей или библиотек, но у нас есть куча идей, так что всё впереди!

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

Например, была задача на работу с устройствами и создание потоков от них. Казалось бы, берёшь браузерный интерфейс, говоришь ему, что нужно видео такого-то качества и готово. Легко же? А на деле нужно продумать всю систему общения между браузером и приложением, которое видит пользователь. Нужно продумать и реализовать, как всё будет работать, если устройств много, какое качество может поддерживать выбранное устройство, что делать, если во время работы все устройства были отключены и многое другое.

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

Подобные задачи часто встречаются, они бывают разных видов и форм, но для меня смысл один: чем сложнее задача, тем интереснее её решение.

Нравится делать красивые интерфейсы и писать логику, которая работает

Андрей, фронтенд-разработчик  

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

Мне нравится делать красивые интерфейсы и писать логику, которая работает, а вот разбираться с багами — не очень 😊

Из последних новшеств в команде мне запомнилось, как коллега Александр ввёл в Waveroom Prettier — это форматтер для кода. Теперь код у нас выглядит более однородным, читабельным и красивым.

Мне нравится сразу видеть результат своей работы

Богуслав, фронтенд-разработчик

Я пришёл во фронтенд-разработку, потому что считаю, что это перспективное направление: сейчас всё больше приложений уходят в web, каждая фирма или продукт имеют свой сайт, и практически все при возникновении какого-либо вопроса обращаются в интернет для решения 😊

В Опен Медиа я работаю над сайтами 4K Download, Qoob и Combin, и мне очень нравится, что я могу сразу видеть результат своей работы.

Как мы относимся к фулстек-разработке, и почему в Опен Медиа не занимаются фулстеком

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

Отношение положительное. Если хватает времени и сил развиваться в обоих направлениях — это здорово. Я бы назвал не совсем корректным второе утверждение :) Всё-таки мы работаем с Django, и каждому из нас в той или иной степени приходилось разобраться с тем, как там устроены вещи. Да и ребята с бэкенда при необходимости могут кое-что сами поправить во фронте. Не стоит нас недооценивать 😊

Антон, фронтенд-разработчик

Я думаю, что фулстек — это пережиток прошлого; времён, когда веб не был так развит, сайт был всего лишь рекламной страницей, а не полноценным продуктом в себе. Сейчас что бэк, что фронт — огромная отдельная сфера с кучей нюансов. Для создания конкурентоспособных продуктов мирового уровня нужна команда, где каждый специалист в своей области. Чем больше проектов и функционала, тем больше команда. В моём представлении, фулстек и командная разработка — это противоположные вещи. Хотя у меня есть небольшой опыт фулстека в личных проектах. Если кратко: было сложно, и я радовался, когда возвращался с фронта на бэк.

Влад, бэкенд-разработчик

Фулстек — это хорошо, когда это нужно. В Опен Медиа же все заняты своим делом, что позволяет лучше погружаться, знать особенности и технологии своей части проекта. Опыт фулстек-разработки у меня есть. Однажды в ходе дипломной работы я создавал веб-интерфейс для одного из участков завода. Главной сложностью для меня стала интеграция в большую базу данных цеха. Очень пригодились знания баз данных и C#, т.к. главной технологией был фреймворк ASP.NET.

Илья, фронтенд-разработчик

Отношение двоякое. Без постоянной практики навыки теряются, и я понимаю, что фулстек не может быть, например, высококлассным верстальщиком. Да, он может сделать эту часть работы, но не так красиво, элегантно и, возможно, эффективно, потому что не будет уделять этому должное время. У нас в ОМ, я думаю, просто стремятся, чтобы каждый был профессионалом в своём направлении и погружался именно в его детали. Если сравнивать терапевта и хирурга-кардиолога, то ценнее и реже встретить второго, но это не означает, что терапевт – это врач второго сорта; просто разные ситуации требуют разного подхода и специализации. У меня был небольшой и не очень положительный фулстек-опыт: меня пытались подключить к разработке на PHP, но были очень сжатые сроки, и я мало понимал, что хотят получить в итоге. Планировалось обучение и поддержка, но в результате всё не сложилось, и так перестали подключать фронтов. Но был и хороший опыт на Node.js + GraphQL, настраивали так называемый бэкенд для фронтенда: пытались облагородить приходящие к нам данные с большого бэкенда, был интересный опыт.

Саша, фронтенд-разработчик

Скорее позитивно. Фулстек напоминает мне терапевта: он тоже должен знать многое из разных областей, но перелом, например, мы будем лечить у хирурга, глаза — у офтальмолога. Вот и фулстек-разработчик необходим для своих определённых задач. Например, на фрилансе чаще всего работают фулстеки, которые помогают создавать небольшие лендинги или сервисы. Когда работаешь в команде, то лучше, чтобы разработчик прекрасно разбирался в своей узкой области, чем пытался «вылечить» всё и сразу. Действительно достойный фулстек в моём представлении — это разработчик с огромным стажем разработки и бэкенда, и фронтенда. Это, объективно, невероятно тяжело. Мало сверстать, добавить функционал, положить сервис на хостинг и сохранить информацию в базе данных. Нужен постоянный контроль того, как ты используешь ресурсы на сервере, всё ли оптимально собирается на фронтенде, нет ли где бэкдоров в бэкенде и прочего. Не зря же во всех средних и больших компаниях есть свои конкретные отделы под бэк и под фронт. Ответственность огромная, уследить за всем может быть тяжело. Отсюда и позитивное отношение к фулстеку. У меня был опыт фулстек-разработки. На своих пет-проектах бэк сам чаще всего и пишешь. Всегда полезно быть в курсе, как что работает на той стороне, что выходит нового и как вся система взаимодействует в целом.

Артём, фронтенд-разработчик

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

Андрей, фронтенд-разработчик

Что нам нравится в работе в Опен Медиа

Здесь лучше в картинках.


💡
Сейчас мы в поиске Middle Frontend Developer для проектов LALAL.AI и 4K Download. Переходите по ссылке, чтобы откликнуться или узнать о вакансии больше.
Клара

Клара

Автор