Закрываем 2013-ый

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

Тенденции

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

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

Говоря о клиентской части или фронтенде невозможно не упомянуть Javascript, который, как мне кажется, получил второе дыхание. Сложно найти веб-разработчика, который не слышал об AngularJs, Backbone, EmberJs, DerbyJs и многих других фреймворках, активно двигающих нашу отрасль вперед. А с появлением Node.js Javascript теперь активно используется и на серверной стороне. Мне кажется, что вся отрасль веб-разработки постепенно идет к упрощению и ускорению процесса создания веб-приложений. Порог входа снижается, так как практически любой может писать на том же Javascript.

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

Облачность

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

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

IMHO

С каждым годом количество различных фреймворков и библиотек растет. Разработка современного веб-приложения, да и вообще любого программного продукта, становится похоже на складывание кубиков. Роль разработчика - это правильно соединить их вместе. Мы упрощаем процесс созидания, так как хотим быстрее "выкатить" продукт конечному пользователю и это главное. Те кто создают продукты для людей не занимаются копированием велосипедов и не подвержены чрезмерному перфекционизму. Скорость разработки выходит на первый план. В тоже время, веяния последних тенденций заставляют заострять особое внимание на фронтенде приложения, UX, юзабилити продукта и его стабильности. Однако я не склонен думать, что с появлением новых инструментов работа разработчиков упрощается. Появляются новые задачи, для решения которых необходимо генерировать новые идеи и знания. В этом и заключается прелесть отрасли информационных технологий: чтобы оставаться на волне необходимо постоянно совершенствоваться и учиться. А как говорил дедушка Ленин: "Ученье - свет."

В уходящем году я открыл для себя Ruby on Rails, Node.js, AngularJs, DustJs и много других полезных инструментов. Как инженеру, проработавшему 3 года на Java, поначалу было непривычно писать серверный код на Javascript. Но используя RoR или Node.js ты понимаешь насколько продуктивным и приятным может быть процесс разработки продуктов. Ты чувствуешь что идешь в ногу со временем и это действительно мотивирует. При этом я продолжаю работать с Java, так как это действительно мощный инструмент со своей областью применения.

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

Удачи и успехов в 2014-ом!