Технический стек Backend-разработчика

Исходный пост:

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

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

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

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

Ожидается еще один набор навыков по умолчанию, поскольку всем приложениям потребуется хранить и извлекать данные. Знание традиционных реляционных баз данных обязательно. Однако в наши дни большинство приложений, как правило, распределяют некоторые из своих данных в зависимости от вариантов использования, и вам в конечном итоге потребуется знать одну из популярных баз данных документов NoSQL, таких как Mongo, Couchbase и т. д.

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

Веб-фреймворк — это инструмент, который помогает создавать веб-приложения, предоставляя набор библиотек и инструментов для решения общих задач. В зависимости от вашего основного языка программирования вы должны знать о соответствующих веб-фреймворках, таких как Spring Boot для Java, Django для Python, .Net Core API для C#, ExpressJs для Node.js и т. д.

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

Recommendation: Создание Restful API с помощью HarperDB и .Net Core

По мере роста размера вашего приложения асинхронное программирование играет жизненно важную роль в повышении производительности, масштабируемости и, что наиболее важно, надежности. Традиционно у нас были такие технологии, как очереди обмена сообщениями Windows, которые использовались для чего-то похожего, но теперь есть множество сервисов, таких как RabbitMQ, Azure Storage Queue, Service Bus, Apache Kafka и т. д. Ожидается знакомство хотя бы с одним из них, поскольку он создает основу, позволяющую использовать любую альтернативу.

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

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

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

Recommendation: Docker Compose для настройки тестовой среды разработки

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

Опять же, не для всех кодовых баз написаны модульные тесты, но они есть в правильно спроектированных системах, и умение писать код в шаблоне TDD — хороший навык. Для каждого языка существует несколько фреймворков, например, я использую монахиня для моей кодовой базы С#.

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

Клиенты для вызовов API — Postman, SoapUI и т. д.

Кодовые и текстовые редакторы, в частности Visual Studio Code

Терминал или командная строка

Контроль версий — Git и Git CLI

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

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *