Ткаченко Игорь Сергеевич

Институт компьютерных наук и технологий

Факультет интеллектуальных систем и программирования

Кафедра Программная Инженерия им. Л.П. Фельдмана

Повышение эффективности создания сферических панорам по фотографиям для генерации виртуального окружения в VR-системах

Научный руководитель: д. т. н., проф. Зори Сергей Анатольевич

Мой опыт разработки веб-приложений

Введение

  1. Определение веб-приложений
  2. Становление веб-разработчика
  3. Мой первый коммерческий опыт
  4. Работа в реальной компании

Заключение

Ссылки на подобные работы магистров

Список источников

Введение

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

Определение веб-приложений

Чем веб-приложения отличаются от сайтов? Сайт – это в первую очередь что-то информационное и статичное: визитка компании, сайт рецептов, городской портал или вики. Набор подготовленных заранее HTML-файлов, которые лежат на удаленном сервере и отдаются браузеру по запросу. Сайты содержат различную статику, которая как и HTML-файл не генерируется на лету. Чаще всего это картинки, CSS-файлы, JS-скрипты, но могут быть и любые другие файлы: mp3, mov, csv, pdf. Блоги, визитки с формой для контакта, лендинги с кучей эффектов я тоже отношу для простоты к сайтам. Хотя в отличие от совсем статических сайтов, они уже включают в себя какую-то бизнес-логику. А веб-приложение — это что-то технически более сложное. Тут HTML-страницы генерируются на лету в зависимости от запроса пользователя. Почтовые клиенты, соцсети, поисковики, интернет-магазины, онлайн-программы для бизнеса, это все веб-приложения.

Какие бывают веб-приложения? Веб-приложения можно разделить на несколько типов, в зависимости от разных сочетаний его основных составляющих:

  • Backend (бэкенд или серверная часть приложения) работает на удаленном компьютере, который может находиться где угодно. Она может быть написана на разных языках программирования: PHP, Python, Ruby, C# и других. Если создавать приложение используя только серверную часть, то в результате любых переходов между разделами, отправок форм, обновления данных, сервером будет генерироваться новый HTML-файл и страница в браузере будет перезагружаться.
  • Frontend (фронтенд или клиентская часть приложения) выполняется в браузере пользователя. Эта часть написана на языке программирования Javascript. Приложение может состоять только из клиентской части, если не требуется хранить данные пользователя дольше одной сессии. Это могут быть, например, фоторедакторы или простые игрушки.
  • Single page application (SPA или одностраничное приложение). Более интересный вариант, когда используются и бэкенд и фронтенд. С помощью их взаимодействия можно создать приложение, которое будет работать совсем без перезагрузок страницы в браузере. Или в упрощенном варианте, когда переходы между разделами вызывают перезагрузки, но любые действия в разделе обходятся без них.

Становление веб-разработчика

Мой путь в веб-разработке начался с изучения популярного бэкенд фреймворка на языке PHP Laravel. Я просмотрел немало обучающего материала по этой технологии, выполнял простые задания и довольствовался результатом. Даже выполнил тестовое задание на позицию бэкенд Laravel разработчика, но так никуда его и не отправил. Так я набирал начальный опыт, и такая работа мне очень даже понравилась.

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

Мой первый коммерческий опыт

Первый реальный заказ предполагал разработку страницы-визитки (лендинга), и для этого в большей степени нужны знания фронтэнд технологий. На тот момент я еще не достаточно изучил Vue.js, поэтому осваивал его с помощью реальной практической задачи. Могу отметить, что это самый продуктивный для меня способ обучения – есть реальная задача, которую нужно выполнить, а я по мере накопления вопросов и проблем их решаю.

Рисунок 1 - Мой первый реализованный заказ

Рисунок 1 - Мой первый реализованный заказ

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

Работа в реальной компании

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

В основном мои задачи были типичными джуновскими тасками. Я исправлял старые недочеты работы веб-приложения, подправлял дизайн и т.д. То есть, задачи связанные с фронтэнд частью приложения.

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

Рисунок 2 - Переписанная страница под новые технологии

Рисунок 2 - Переписанная страница под новые технологии

Заключение

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

Ссылки на подобные работы магистров

  1. Кубашевский Денис Вадимович
  2. Борщ Дмитрий Павлович
  3. Зимцев Пётр Петрович

Список источников

  1. Разработка веб-приложений [Электронный ресурс] – Режим доступа: https://infoshell.ru/blog/razrab...
  2. Как работают веб-приложения [Электронный ресурс] – Режим доступа: https://habr.com/ru/post...
  3. Определение фриланса [Электронный ресурс] – Режим доступа: https://www.e-xecutive.ru/wiki...
  4. Мой первый реализованный проект [Электронный ресурс] – Режим доступа: https://vdlab.com.ua
  5. Мое текущее место работы [Электронный ресурс] – Режим доступа: https://geoservice24.ru