Куда пойдет разработка программного обеспечения в 2022 году

автор vadim


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

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

Программирование для удовольствия и прибыли

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

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

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

Тенденции разработки программного обеспечения объединяются

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

Тенденции разработки программного обеспечения в 2022 году. ИДГ

Объединение: технологические тенденции, определяющие разработку программного обеспечения в 2022 году.

Внедрение облака и инфраструктура более высокого порядка

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

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

Виртуализированная инфраструктура позволяет инновационным игрокам разрабатывать решения более высокого порядка. Игроки на этой арене делятся на два широких лагеря: хостеры API и провайдеры API.

Бессерверные развертывания и поставщики API

Такие сервисы, как Vercel и Netlify, являются двумя хорошими примерами современных API-хостингов. Они представляют собой своего рода бессерверную инфраструктуру, расположенную поверх уровней IaaS и PaaS. Более того, они представляют собой специализацию этой инфраструктуры, ориентированную на определенный набор вариантов использования.

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

Между тем, хорошим примером современного поставщика API является MongoDB Atlas. Это API, который обеспечивает в первую очередь сохранение данных. По своей сути MongoDB Atlas — это удаленно доступный API как услуга. Такие сервисы, как Sentry.io и Auth0, похожи.

Ключевым моментом является то, что, как и Vercel для хостинга, эти решения предлагают высокую степень абстракции — много мощности при небольшом объеме работы — и привязаны к определенному набору потребностей. Они построены поверх современного виртуального слоя. Развертывание хранилищ данных в виртуальной инфраструктуре — это традиционная модель, только перенесенная в облако. Использование чего-то вроде MongoDB Atlas больше похоже на наличие специализированного партнера по хранилищу данных, призванного упростить интеграцию того, что у вас есть, с тем, что вам нужно.

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

А как насчет разработчиков API?

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

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

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

Интерфейсные инструменты и фреймворки

Во внешней части, где магия сторонних API и внутренней логики находит свое человеко-машинное выражение, язык JavaScript продолжает неуклонно развиваться. Между тем, фреймворки, построенные на основе JavaScript, подвергаются безудержному естественному отбору в условиях острой конкуренции. Такие проекты, как Solid, Svelte и Qwik, расширяют границы возможностей в различных направлениях, в то время как более устоявшиеся реактивные фреймворки, такие как React и Vue, продолжают расти. Редко можно увидеть столь тщательно сфокусированную итерацию и перекрестное опыление в одной области программного обеспечения.

Пользовательское промежуточное программное обеспечение

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

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

Существующие решения, такие как Java, Node.js и Python (и связанные с ними платформы), хорошо подходят для данной среды и постоянно развиваются в ответ на требования реального мира. Я считаю, что они останутся важной сферой деятельности. Так же, как IaaS продолжает оставаться жизненно важным уровнем в бессерверной системе, код промежуточного программного обеспечения будет важен в обозримом будущем.

Низкий код и машинное обучение могут поставить под угрозу конкуренцию с разработчиками-людьми, но в конечном итоге окажутся просто дополнительными инструментами в наборе инструментов разработчика. Отличным примером инновационного подхода с низким уровнем кода является Builder. Чтобы увидеть, как машинное обучение может помочь в кодировании, мы можем обратиться к GitHub Copilot.

Разделенные архитектуры, также известные как микросервисы

Далее, переход к удаленно развязанным архитектурам, также известным как микросервисы, будет продолжать расти и становиться все более понятным. Парадигма монолитной архитектуры была явно неспособна полностью реализовать потенциал, присущий облаку. Альтернативная архитектура, микросервисная архитектура, предполагает взваливание на себя бремени DevOps, которое далеко не тривиально. Микросервисы одновременно позволяют масштабировать процессы и повышают сложность.

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

Автоматизация процессов

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

Множество решений CI/CD, инструментов управления сборкой и зависимостями, а также платформ тестирования являются примерами того, как инструменты автоматизации процессов фокусируются на деятельности разработчиков. Контроль версий и сопутствующие сервисы, такие как GitHub, также попадают в эту категорию. Автоматизация процессов — еще одна ключевая область, которая сыграет свою роль в будущем программного обеспечения.

Новый вид опыта разработчиков

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

Related Posts

Оставить комментарий