Зачем вашей компании нужен front end разработчик

Автор: Евгений Рыжков Дата публикации: 17.01.2011

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

Миф об end to end разработчике

мастер на все рукиЭто мастер на все руки? Или «специалист», который толком ничего не умеет? Давай попробуем составить перечень навыков, которыми должен обладает end to end разработчик. Значит, он умеет реализовывать бизнес логику, обеспечивать безопасность данных, обеспечить высокую производительность, уметь все это расширять и в добавок превосходно отобразить данные на стороне клиента. Конечно, подобные «супергерои» существуют, но их очень-очень мало. Если вы считаете, что ваша компания таким обладает — вам можно только позавидовать, если это действительно так. Но скорей всего, у вас обычный работник. Но даже, если вам действительно повезло и ваш разработчик в состоянии написать хороший код от руки как серверной части, так и клиентской, все равно, что-то из какой-то части разработки будет принесено в жертву: даже способностей супергероя уже недостаточно чтобы охватить все отрасли веб разработки.

Серверные разработчики обычно используют различные инструменты для создания разметки. Опасно считать, что данная разметка является достаточно хорошей. Тут самое время задаться некоторыми вопросами. Будет ли такое посредственное решение способствовать развитию вашего бизнеса? В глазах ваших пользователей и клиентов будете ли выделяться профессионализмом? Получат ли они прекрасное впечатление от посещения вашего ресурса?

Приведем другой пример. Вы покупаете Aston Martin. Свой выбор остановил(а) на нем потому что у него много «лошадок»? Или потому что тебя завораживает его благородный звук двигателя через тонко настроенный двойной глушитель, а легкий поворот руля позволит плавно войти в крутой поворот, и при этом ты сидишь в кожаном сидении с поясничной поддержкой и подогревом, да еще слушаешь любимую музыку через шестнадцать динамиков? Вот это прекрасное впечатление, вот это настоящий user experience.

aston martin

Этот четырехсотсильный мотор конструировали инженеры-эксперты. А что было бы, если те же самые инженеры проектировали и сидения с подогревом? Даже если у них были бы в этом деле какие-то навыки, мы бы в лучшем случае получили неплохие сидения для Wall mart.

Front end разработчик — кто он?

Front end разработчики являются экспертами в своей области и обычно имеют ряд навыков из смежных областей. Они прочитали книги по HTML разметке, CSS, юзабилити, дизайну, теории цветов и несколько по Javascript. Скорей всего, в добавок, прочитали одну-две книги по серверным языкам программирования, в которых описано взаимодействие с серверной стороной с помощью технологий Ajax. Front end разработчикам приходится рассматривать методы разработки проекта в целом: им в добавок к HTML разметке и написанию Javascript кода часто приходится иметь дело с еще рядом технологий:

  • веб юзабилити и эвристика;
  • web 2.0 тренды, различные API и кучу других новых и революционных технологий;
  • графический дизайн, архитектурное проектирование, проектирование баз данных и программное проектирование;
  • кроссбраузерность и веб стандарты;
  • дизайн и оптимизация под мобильные устройства;
  • высоконагруженные веб сайты;
  • создавать мультимедия и внедрять ее в веб приложения;
  • SEO или даже SOA;
  • обладать способностями копирайтера и корректора.

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

front end разработчик

Front end разработчик в своей работе оперирует не только конкретными понятиями и задачами, но часто имеет дело с абстрактным мышлением. Он относится к тем немногим кто способен проложить «мост» между математикой и искусством, он воспринимает математику как искусство. Из-за того что он способен объединить две эти дисциплины, из-за того что способен подключить пользовательский опыт (user exprerience) к процессам логической обработки — он являются очень ценным сотрудником для бизнеса.

В денежном выражении

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

Впечатление и удобство

Пользователи, кроме содержания, хотят видеть приятный сайт, хорошо работающий и интуитивно понятный. Существует большое количество причин, почему пользователи могут покинуть сайт. Front end разработчик это как раз тот человек, кто способен их распознать (по крайней мере большую часть). Сайт может быть с плохим дизайном неприятный глазу, буквально отталкивающий посетителей. Продуманный дизайн производит впечатление профессионального сайта. Интерфейс может быть сложным в использовании и посетители могут пойти поискать то, что им нужно в другом месте.

впечатление пользователей

Дорогостоящий тест на юзабилити в большинства случаев не нужен. Достаточно следовать лучшим практикам и шаблонам описанным в книгах «Не заставляй меня думать» Стива Круга и «Jakob Nielsen's excellent site» Якоба Нильсена.

Тестирование

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

Качество кода

Оказывается, что такие «безобидные» действия, как разметка с помощью таблиц (прим. ред.: сюда можно смело относить и просто некачественный код, даже если он сделан дивами), может дорого стоить. Подобное смешивание представления и содержания, ведет к избыточности кода и как следствие требует большей пропускной способности канала (за трафик платите и вы, и посетители).

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

Таблицы имеет гораздо меньшую доступность и «убивают» мобильные телефоны и PDA: такие пользователи для вас будут потеряны. И Google нравятся с сайты с лучшей доступностью: как следствие — несколько лучшие позиции в выдаче результатов поиска.

После избавления от таблиц и некачественной разметки, front end разработчик должен побеспокоится о создании внешних таблиц стилей и javascript сценариев, чтобы браузер мог кэшировать этот код. Это иногда может сократить трафик на 50%. При таком подходе будет подгружаться точно один внешний CSS файл и может быть пара javascript файлов. Использование CSS3 позволяет избавится от графики для создания теней, градиентов, скругленных углов, что ощутимо снижает количество обращений к серверу. Остальная графика должна быть грамотно оптимизирована.

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

Время разработки

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

время = деньги

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

Серверный и клиентский разработчики имеют различные цели: «достать» данные и обеспечить удобство использования, соответственно. Эти обе цели важны и следует добиться их достижения. Идеальный способ для этого — использование API. Back end предоставляет данные через API, с которыми дальше уже работает front end. Правильно спроектированный API не только освобождает серверного разработчика от необходимости разбираться в тонкостях пользовательского интерфейса, но и от потенциальной небезпасности и ненадежности интеграции серверной логики с пользовательским интерфейсом. Это дает возможность четко разделить работу front и back end разработчиков, это снижает риски безопасности, это уменьшает количество сгенерированного кода, который страдает отсутствием гибкости.

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

А если вы рассматриваете аутсорсинг — это не решение. Этому можно было посвятить целую статью. Но тут мы приведем высказывание главы CEO в Intel Andy Grove, который утверждает, что «для того чтобы увидеть новые возможности роста вы должны иметь тесные отношения с разработчиками. Вы не получите нужной отдачи от людей, которые работают просто за деньги. Такой человек не имеет такой же заинтересованности в успехе компании как работник с долей прибыли от компании».

В завершение

Обычно бизнес стартует с ограниченным бюджетом и нанимается один серверный разработчик. Вся работа строится вокруг него. Проблема начинается когда бизнес начинает расти. Добавляется отдел продаж, финансовый директор и наконец, потому что разработчик жалуется, что на его плечах лежит очень много обязанностей и он не успевает писать весь нужный код...нанимается еще один серверный разработчик. Вы не можете обвинить такого разработчика в том, что он не хочет или не может сделать сам все этапы разработки. Он скорей всего готов будет взяться за это. Инструменты вроде Visual Studio или фреймворки вроде JSP или jQuery дают ему ложную уверенность, что он сам в состоянии все сделать.

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

Но те времена пошли и сейчас задачи front end разработчика кардинально изменились, его задачи стали более сложными и важными в связи с появлением Ajax, HTML5, CSS3, веб приложений, социальных сетей, мобильных устройств и SEO. Сейчас слишком много технологий чтобы их мог охватит один человек. Бизнесу следует идти в ногу с появляющимися трендам и расширяющимися технологиями. И при этом нанимать разработчиков правильного типа, чтобы бизнес достиг успеха.

Материалы