Microcamtest

Лайфстайл портал

Как ваш стек технологий может привлечь ведущих разработчиков

Примеры употребления на «Секрете»

«ИТ-специалисты должны чётко представлять, что ключевое в EdTech — открытость API, возможность интегрироваться с другими платформами, а также использование современного стека технологий».

(Основательница Smart School Pro Елена Игнатьева — о типичных ошибках образовательных стартапов.)

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

(CEO Realweb Partners Эмин Аветисян — об ошибках офлайновых компаний при выходе в онлайн.)

Видео

Для чего нужен стек?

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

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

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

Сетевой стек мобильного приложения

Базовые состояния приложения:

  • Пользователь находится на главной странице приложения.
  • Пользователь выбирает товар.
  • Пользователь оформляет покупку.

Для каждого из этих состояний приложению достаточно совершить один запрос к серверной части, получить ответ и отобразить данные. Собственно говоря, это стандартный Rest API поверх HTTPS. Теперь попробуем добавить в наше приложение возможность общения с консультантом магазина:

  • Отправка сообщения серверу.
  • Получение сообщения от сервера.

Отправка может быть осуществлена с помощью привычного нам Rest API, но какие варианты есть для получения сообщения от сервера?

Конечно, мы можем использовать Push Notification и нам в любом случае придется применить эту технологию для получения сообщений в режиме offline. Однако, использование Push Notification для сообщений в online-режиме является нецелесообразным из-за задержки доставки.

Выбор правильного стека технологий

MEAN или LAMP лучше всего подходят для большинства проектов, но как выбрать?

У обоих есть компромиссы, поэтому важно учитывать, какие факторы наиболее важны для вашего конкретного проекта.

Вы захотите рассмотреть:

  • Какого типа это будет приложение? Облачные, гибридные и т.д.?
  • Каков ожидаемый срок службы этого приложения?
  • Какие технологии доступны в инфраструктуре моего клиента? Будет ли он стандартизирован или изменен?
  • Какой объем трафика потребуется вашему приложению? Трафик бывает скачкообразным или постоянным?
  • Насколько динамичным будет ваше приложение? Будет ли он обновляться в реальном времени?
  • Сколько потребуется переобучения вашей команде?
  • Какой объем обслуживания вы хотите выделить приложению?

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

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

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

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

ИМЕТЬ В ВИДУ ФОНАРЬ
Тип приложения: Современные типы приложений, такие как облачные, гибридные, PWA или SPA. Многостраничные приложения.
Продолжительность жизни: Длительный срок службы, создание приложения для будущей поддержки MEAN. Короткий срок службы, вы разрабатываете это приложение для работы только сейчас и в ближайшем будущем.
Движение: Стабильный трафик от низкого до среднего, резервирование не требуется. Высокий трафик с большими пиками в часы пик.
Клиентская или серверная: Рендеринг на стороне клиента. На стороне сервера вы не хотите полагаться на клиентскую инфраструктуру для хорошего взаимодействия.
Динамический или статический: JavaScript позволяет создавать приложения, управляемые событиями, с обновлениями в реальном времени. Приложение представляет собой статическое приложение, которое не требует обновлений в реальном времени.
Обучение: Нужно только изучить JavaScript. Команде придется изучить несколько инструментов, но PHP и MySQL легко освоить.
Обслуживание: Высокий уровень обслуживания для поддержки частых обновлений каждого инструмента. Низкие эксплуатационные расходы, стабильная экосистема.

Клиентская часть приложения

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

Рассмотрим основные компоненты стека интерфейсов.

HTML

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

CSS

Каскадные таблицы стилей (CSS) — это язык разметки, который определяет оформление и макет элементов HTML. Таким образом, HTML задаёт структуру, а CSS — стиль. С помощью CSS задаются шрифты, цвета, стили, расположение отдельных элементов, а также отображение страниц на разных устройствах. 

JavaScript

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

Чтобы эффективнее разрабатывать на JavaScript, разработчики используют фреймворки, которые также являются важной составляющей технологического стека. Фреймворк — это рабочая среда, своего рода каркас, который помогает эффективнее создавать и поддерживать программные продукты. Далее мы перечислим некоторые из фреймворков и библиотек, которые мы обычно используем в проектах.

Популярные фреймворки и библиотеки JavaScript

React

Одна из ключевых особенностей React — универсальность. Эту библиотеку можно использовать на сервере и на мобильных платформах с помощью React Native.

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

React основан на компонентах. Каждый компонент возвращает часть пользовательского интерфейса со своим состоянием. Объединяя компоненты, программист создаёт завершённый интерфейс веб-приложения.

Angular

Angular — это фреймворк от компании Google. Прежде всего он нацелен на разработку SPA-решений.

Эта среда разработки известна прежде всего потому, что она предоставляет разработчикам лучшие условия для объединения JavaScript с HTML и CSS. К веб приложениям на Angular.js относятся Google и Youtube.

Vue

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

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

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

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

Нереляционные БД устроены иначе. Например, документо-ориентированные базы хранят информацию в виде иерархических структур данных. Речь может идти об объектах с произвольным набором атрибутов. То, что в реляционной БД будет разбито на несколько взаимосвязанных таблиц, в нереляционной может храниться в виде целостной сущности.

Внутреннее устройство различных систем управления базами данных влияет на особенности работы с ними. Например, нереляционные базы лучше поддаются масштабированию.

Наиболее распространенные базы данных для разработки веб-проектов: MySQL, PostgreSQL, MongoDB.

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

Теги

Теги