Backend-разработка может быть довольно сложной из-за огромного количества инструментов, библиотек и пакетов, из которых приходится выбирать.
Однако правильные инструменты способны значительно облегчить работу разработчика.
Сегодня мы познакомимся с 10 инструментами, которые сделают backend-разработку проще.
Этот список вас удивит.
1. Encore — фреймворк для backend-разработки на TypeScript и Go, предназначенный для создания надёжных и типобезопасных приложений
Создание масштабируемых приложений с использованием облачных сервисов часто сопряжено с плохим опытом разработки. Разработчикам приходится управлять сложной инфраструктурой и выполнять рутинные задачи, что замедляет их работу.
Encore помогает решить эту проблему, предлагая полный набор инструментов, ускоряющий разработку приложений.
Это как если бы у вас была кухня, полностью укомплектованная ингредиентами и инструментами, и вы могли бы сразу приступить к готовке, не тратя время на сбор всего необходимого.
Encore предоставляет opensource-фреймворк для backend-разработки (на TypeScript и Go), который позволяет определять инфраструктуру в виде типобезопасных объектов прямо в вашем приложении, объединяя инфраструктуру с кодом приложения. Encore автоматически занимается предоставлением инфраструктуры и DevOps, анализируя код приложения.
Это позволяет быстро создавать готовые к продакшену backend’ы, используя такие инструменты, как микросервисы, Postgres и Pub/Sub, без излишней сложности и забот о DevOps. Дополнительно вы получаете:
Трассировку и логирование с помощью локальной панели мониторинга.
Автоматически создаваемые архитектурные диаграммы для наглядного представления системы в реальном времени.
Эксплорер API для тестирования эндпоинтов вашего API.
Вы можете посмотреть это вводное видео, чтобы понять большинство функций Encore.
Для начала нужно установить CLI:
brew install encoredev/tap/encore
Затем создайте приложение, выполнив следующую команду:
encore app create
Это создаст приложение-пример. Перейдите в your-app-name/hello/hello.ts:
import { api } from "encore.dev/api";
export const world = api(
{ method: "GET", path: "/hello/:name", expose: true },
async ({ name }: { name: string }): Promise<Response> => {
return { message: `Hello ${name}!` };
},
);
interface Response {
message: string;
}
Вы определяете эндпоинт API, обернув обычную асинхронную функцию вызовом api. Это позволяет Encore идентифицировать функцию world как публичный эндпоинт API.
Encore автоматически обрабатывает множество аспектов, таких как аутентификация, маршрутизация HTTP-запросов, валидация запросов, обработка ошибок, observability (наблюдаемость) и документация API.
Эндпоинт world относится к сервису hello, потому что в той же папке находится файл encore.service.ts, который выглядит так:
import { Service } from «encore.dev/service»;
export default new Service(«hello»);</source>
Так с помощью Encore определяются сервисы. Все файлы в папке hello и её поддиректориях будут рассматриваться как часть сервиса hello. Если вы хотите создать новые сервисы, просто создайте новые папки и добавьте в них файл service.
Вы можете запустить приложение локально с помощью команды: И открыть локальную панель мониторинга по адресу http://localhost:9400.
Я не буду углубляться в детали — вы можете изучить документацию, чтобы понять процесс полностью. В официальном блоге Encore подробно объясняется, почему этот инструмент больше, чем просто очередной фреймворк для backend-разработки.
Если вы не знаете, с чего начать, ознакомьтесь с учебными материалами и готовыми приложениями, которые предлагает команда Encore.
На GitHub у Encore 7,7 тыс. звёзд, а также активное сообщество в Discord с более чем тысячей участников.
2. Cursor — лучший способ программировать с помощью ИИ
Я много лет использовал VSCode и избегал редакторов с ИИ, думая, что код, написанный ИИ, будет сложнее отлаживать. Я думал, что это лишь снижает продуктивность, но понял, насколько ошибался.
Cursor действительно понимает ваш проект. Он учитывает ваш стиль кода, знает структуру проекта и даже подстраивается под лучшие практики вашей команды.
Cursor — это форк VSCode, который позволяет импортировать настройки, темы, горячие клавиши и расширения, чтобы сохранить привычный опыт работы.
Лично я использовал почти все функции и был просто поражен. Я не могу охватить все из них (обратитесь к руководству, приложенному ниже).
Tab
Традиционный автокомплит часто работает недостаточно хорошо. Функция Tab в Cursor постоянно анализирует ваш текущий код и предсказывает следующий шаг.
Она чрезвычайно точна, так как учитывает последние изменения и общий контекст проекта.
⌘ K
Эта комбинация клавиш раскрывает весь потенциал ИИ-помощника, позволяя генерировать код, рефакторить большие части кода и выполнять множество других задач.
Терминал
Редактор также интегрируется с терминалом, и вы можете использовать комбинацию клавиш ⌘ K прямо в терминале.
Например, вместо того чтобы запоминать точный синтаксис команды find, вы можете просто ввести Find all files added in the last 24 hours и позволить Cursor сделать всю работу.
Чат
Cursor «понимает», в каком файле вы находитесь и где находится ваш курсор. Это похоже на разговор с разработчиком, который смотрит на ваш экран. Эти разговоры учитывают контекст, что делает их намного удобнее.
Composer
Одна из самых впечатляющих функций, позволяющая создать целое приложение с нуля. Да, полностью функциональную кодовую базу за считаные минуты, включая все необходимые импорты и шаблонный код.
Если вы хотите узнать больше о функциях, моделях и терминах, таких как контекст или проверка кода ИИ, ознакомьтесь с официальной документацией.
Когда я только начинал, я прочитал блог The Ultimate Introduction to Cursor for Developers от команды Builder.io. Настоятельно рекомендую!
Основной кодовой базы в открытом доступе нет, но вы всё равно можете сообщить об ошибках в репозитории GitHub QnA.
Поверьте, Cursor будет чрезвычайно полезным, особенно при работе со сложным backend.
3. Datadog — сервис мониторинга инфраструктуры
Datadog — это сервис мониторинга инфраструктуры с сотнями интеграций. Он подходит для любого стека, любого приложения и любой масштабируемости.
Представьте, что вы управляете автомобилем и хотите знать всё о его состоянии: сколько осталось топлива, перегревается ли двигатель и т.д. Теперь представьте, что автомобиль отправляет эту информацию на ваш телефон в реальном времени.
Вот что делает Datadog, но для приложений и веб-сайтов. Это инструмент, который используют компании для мониторинга всех своих систем (серверов, приложений, баз данных), чтобы убедиться, что всё работает стабильно.
С помощью Datadog можно: визуализировать метрики производительности с помощью дашбордов, собирать и организовывать логи для быстрой отладки, создавать карты зависимостей сервисов и многое другое.
Давайте рассмотрим два простых примера:
Мониторинг API
Backend-разработчики сильно зависят от API. Datadog может отслеживать время отклика, частоту ошибок и шаблоны запросов. Если ваш API вдруг замедляется или начинает возвращать ошибки, Datadog мгновенно уведомит вас.
Интерактивные дашборды помогают определить, вызвана ли проблема высоким трафиком, узким местом в базе данных или отказом микросервиса.
Оптимизация производительности базы данных
Datadog мониторит запросы, использование соединений и задержки. Например, если запрос выполняется слишком долго или блокирует таблицу, Datadog это отметит.
Чтобы начать: зарегистрируйтесь, установите агента, настройте API-ключ и интеграции для необходимых сервисов. Подробнее можно узнать в документации.
Посмотрите видео Introducing Datadog in 45 Seconds или прикреплённый туториал от команды Datadog!
Datadog может работать где угодно, а его репозиторий на GitHub имеет 2,9 тыс. звёзд.
4. Copycat — генератор детерминированных фейковых данных
Во время backend-разработки часто приходится работать с API, и тут Copycat пригодится для создания мок-данных для таких эндпоинтов, как пользовательские профили.
Copycat помогает генерировать фиктивные данные. Это похоже на faker.js, с которым знакомы многие разработчики, но Copycat работает детерминированно.
Это означает, что для одного и того же ввода всегда будет возвращено одно и то же значение независимо от среды, порядка вызовов или других факторов.
Приведенный ниже пример поможет вам разобраться. Например, вызов copycat.email('foo') всегда возвращает одно и то же сгенерированное письмо.
import { copycat } from '@snaplet/copycat'
copycat.email('foo')
// => 'Raleigh.McGlynn56687@wholewick.info'
copycat.email('bar')
// => 'Amir_Kris69246@raw-lout.name'
copycat.email('foo')
// => 'Raleigh.McGlynn56687@wholewick.info'
Существует множество вариантов использования: например, мы можем провести стресс-тестирование или создать базу данных с 1 000 товаров, каждый из которых имеет уникальные категории и цены, для тестирования приложения электронной коммерции.
Вы можете ознакомиться с документацией, включая справку по API и альтернативные подходы.
Copycat имеет 794 звезды на GitHub и написан на TypeScript.
5. Infisical — платформа для управления секретами
Infisical — это opensource платформа для управления секретами, которую команды используют для централизованного хранения таких данных, как API-ключи, учетные данные для баз данных и конфигурации.
Она может пригодиться, если вы работаете с командой и вам нужно:
Отслеживать все изменения секретов и иметь возможность отката.
Синхронизировать секреты между членами команды
Динамически создавать секреты по запросу, которые уникальны для каждого клиента.
Идентифицировать и предотвращать утечки секретов с помощью непрерывного мониторинга и проверок перед коммитом.
Возможно, он был бы не так полезен, если бы предназначался только для одной цели, но вы получаете журналы аудита, возможность настраивать строгие разрешения, возможность поддерживать рабочие процессы утверждения, например назначать рецензентов для утверждения изменения секретов перед распространением в приложениях, и многое другое.
Предоставляются четыре SDK для Node.js, Python, Java и .Net, которые вы можете хостить самостоятельно или использовать их облако.
Начните работу со следующей npm-команды
npm install @infisical/sdk
Вот как вы можете использовать команду get started (Node.js SDK).
import { InfisicalClient, LogLevel } from «@infisical/sdk»;
const client = new InfisicalClient({
clientId: "YOUR_CLIENT_ID",
clientSecret: "YOUR_CLIENT_SECRET",
logLevel: LogLevel.Error
});
const secrets = await client.listSecrets({
environment: "dev",
projectId: "PROJECT_ID",
path: "/foo/bar/",
includeImports: false
});
Вы можете прочитать документацию и узнать, как установить CLI, что является лучшим способом использования.
Infisical можно интегрировать с Kubernetes для автоматической передачи актуальных секретов при развертывании. Доступно множество вариантов интеграции.
Проверьте их лицензию, прежде чем использовать весь исходный код, потому что у них есть код корпоративного уровня, который защищен MIT Expat, но не волнуйтесь, большая часть кода свободна для использования.
На GitHub у Infisical более 15 тыс. звёзд, а CLI скачали более 5,4 млн раз.
6. Raycast — ваш инструмент для повышения продуктивности
Raycast — это приложение для Mac, которое служит настраиваемым и расширяемым лаунчером для повышения продуктивности и автоматизации задач.
Вместо стандартного лаунчера вы можете установить Raycast и получить доступ к множеству уникальных возможностей.
Теперь у вас есть сотни расширений, созданных сообществом. Например, вы сможете: Напрямую взаимодействовать с ChatGPT из лаунчера, работать с GitHub, интегрироваться с VSCode и многое другое.
Что умеет Raycast:
Автоматизировать повседневные задачи.
Использовать функцию Quick AI, которая объединяет возможности искусственного интеллекта и веба для ответа на любые вопросы.
Создавать AI-команды для автоматизации рутинных процессов и избавления от скучных задач.
Выполнять множество полезных действий, таких как: ведение заметок, отслеживание ваших полётов, поиск файлов, запуск скриптов, управление окнами, планирование дня, напоминания, перевод на любые языки, поиск текста в скриншотах.
Возможности автоматизации с Raycast практически безграничны.
Вы можете ознакомиться с руководством по началу работы, API-документацией и примерами приложений с открытым исходным кодом, если планируете создать что-то своё.
Чем быстрее вы получаете доступ к своим инструментам, тем выше ваша продуктивность.
Если вам всё ещё недостаточно, вот 101 вещь, которую можно сделать с Raycast.
Обратите внимание, что открытым исходным кодом обладают только команды скриптов, расширение для разработчиков (API) и несколько инструментов.
7. Qodo — пишите, тестируйте и проверяйте код с помощью ИИ
Qodo (ранее известный как CodiumAI) — это инструмент для разработчиков с ИИ, который помогает генерировать осмысленные тесты для кода. Он анализирует ваш код, докстринги, комментарии и предлагает тесты по мере написания.
Это очень удобно для правильного тестирования сложных вещей. Основные возможности:
Qodo Gen: Установите цель покрытия кода тестами, и Qodo автоматически создаст тесты. Обнаруживайте баги и документируйте их.
Qodo Merge: Упростите работу с пул реквестами (PR), предоставляя ревьюерам удобный пошаговый обзор кода и рекомендации с ранжированием по серьёзности.
Посмотрите короткий 1-минутный ролик о том, как Qodo помогает достичь нуля багов!
Инструмент доступен в VSCode Marketplace и в виде расширения для JetBrains.
Также команда разработчиков создала популярные инструменты, такие как PR Agent (для работы с PR) и Codiumate.
Ознакомьтесь с документацией и сравните возможности CodiumAI и ChatGPT для генерации юнит-тестов.
Qodo полностью open source, включая все его инструменты.
8. Seed — пакет для генерации данных для базы
Seed — это не инструмент, а пакет, который может значительно облегчить ваш рабочий процесс.
Seed генерирует реалистичные синтетические данные на основе схемы базы данных. Он автоматически определяет, какие значения нужны в вашей базе, чтобы вы не заполняли её вручную.
Начните, использую следующую команду
npx @snaplet/seed init
Например, если вы хотите создать 3 комментария для одного из постов, просто укажите схему, и Seed сделает всё за вас.
Компоненты Seed:
a. Seed Client: Автоматически генерируемый типобезопасный клиент для работы с данными на Node.js и TypeScript.
b. Seed CLI: Интерфейс командной строки для генерации данных и синхронизации клиента с базой.
c. Seed AI: Кастомная модель, которая определяет структуру ваших данных.
Seed совместим с PostgreSQL, SQLite и MySQL. Вы можете прочитать документацию или посмотреть короткое демо о том, как работает Seed.
Пример использования: настройка базовых данных, необходимых для корректной работы приложения (админ-аккаунты, роли, статические категории).
На GitHub у Seed 481 звезда.
9. Библиотеки хуков
Сколько раз вам приходилось создавать хуки с нуля?
Хуки играют ключевую роль в разработке, и изобретать велосипед каждый раз — неэффективно.
Существует множество отличных библиотек хуков, которые покрывают 90% ваших потребностей. Они тщательно протестированы, имеют надёжный код и экономят бесчисленные часы работы.
Вот некоторые из лучших библиотек:
Mantine Hooks
Предоставляет более 60 хуков с демонстрациями и примерами кода для каждого из них. Очень понятная документация.
Эта библиотека охватывает всё: от работы с local storage до пагинации, скроллинга, пересечения элементов (intersection) и даже интересные утилиты вроде инструмента выбора цвета (eye dropper) и выделения текста.
React Supabase Hooks
Эта библиотека предназначена для разработчиков, работающих с Supabase. Особенности: Поддерживает аутентификацию, управление данными, обновления в реальном времени и хранилище.
Автоматически обрабатывает внутреннее состояние. Готова к работе с TypeScript. Не требует дополнительных зависимостей.
usehooks
Коллекция современных React-хуков, безопасных для работы на сервере. Каждый хук сопровождается чётким описанием, примерами кода и демо в CodeSandbox.
React Use
Самый популярный репозиторий React-хуков на GitHub (более 40 тыс. звёзд).
Есть и другие библиотеки, но перечисленные выше особенно просты в использовании.
Многие разработчики всё ещё создают хуки с нуля, хотя существуют готовые решения с минимальным количеством зависимостей.
10. Flyway — инструмент для миграций баз данных
Flyway — это инструмент для управления миграциями баз данных и их версионирования. Он поддерживает более 25 баз данных, включая PostgreSQL, MySQL, SQL Server, MongoDB и Oracle.
Что такое версионирование?
Версионирование — это способ отслеживания изменений. Представьте, что вы ведёте дневник, где записываете каждое изменение в доме: добавили новую комнату, перекрасили стены или заменили пол. Теперь любой человек, открыв этот дневник, сможет понять, какие изменения были сделаны.
Flyway делает то же самое для базы данных, чтобы вся команда работала с одинаково актуальной версией схемы.
Зачем это нужно?
Синхронизация базы данных в команде. Когда несколько разработчиков работают над одним проектом, Flyway помогает согласованно вносить изменения в базу данных. Например, если один разработчик добавил таблицу users, Flyway применит это изменение на всех окружениях без ручного вмешательства.
Обновления базы во время релизов. При выпуске обновлений приложения Flyway автоматически выполняет миграции базы данных. Например, если новый функционал требует добавления столбцов в таблицу, Flyway выполнит соответствующий скрипт во время деплоя, чтобы схема базы соответствовала требованиям приложения.
Вы можете узнать больше о Flyway, прочитав блог Baeldung или посмотрев обучающее видео на YouTube: Database Migrations for Beginners with Flyway.
На GitHub у Flyway 8,2 тыс. звёзд.
Несколько инструментов, которые заслуживают внимания, но не попали в основной список:
Платформы Backend-as-a-Service, такие как Appwrite и Supabase (о них знает практически каждый!).
Клиенты API, например, Postman и Hoppscotch.
Инструменты для работы с терминалом, такие как iterm2 (Mac) и Zsh/OhMyZsh (174 тыс. звёзд на GitHub).
Проекты для повышения продуктивности с базами данных, такие как Vanna и Chat2DB.
Это лишь начало большого списка инструментов, которые могут быть полезны каждому разработчику, работающему со сложным бэкендом.
Я постарался выбрать уникальные инструменты и надеюсь, вы нашли что-то полезное.
anaxita
Боюсь это не для бекенденов, а для фронтов которые решили в фулстек