Стек технологий – разновидности и тренды использования

10.11.2021

Что такое технологический стек?

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

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

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

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

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

Выделяют при этом различные уровни IT-стека в рамках различных классификаций технологического стека.

Уровни IT-стека и виды стеков технологий

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

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

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

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

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

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

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

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

Специфика разработки веб-приложения заключается в необходимости ее реализации на двух уровнях: клиентском и серверном.

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

  • языки программирования, типичные для веб-разработки браузерных продуктов (HTML, JavaScript, Python и иные);
  • интерфейс платформы, используемой для веб-разработки указанных продуктов (Yii, Django, Express.js, при этом конкретное решение, как правило, выбирается под определенный язык программирования).

В свою очередь, на серверном уровне будут применены:

  • языки программирования бэкенд-части приложения (например, Java, PHP);
  • языки систем управления базами данных (DDL, DML).

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

Для разработки мобильных приложений

Если речь идет о создании мобильных приложений на Android, то типичная структура технологического стека будет представлена:

  • языками Java, Kotlin;
  • интерфейсами Android Studio, Jetpack Compose.

Для создания приложений iOS чаще используются другие языки – Objective-C, Swift, C++, а также иные среды разработки – такие, как Xcode.

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

Современный стек технологий – тренды

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

1. Унификация и одновременное упрощение требований к составу компетенций для разработки продуктов.

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

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

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

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

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

4. Рост популярности стеков, приспособленных к оперативному изменению структуры.

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

Возврат к списку