Бэкэнд разработка

Backend Project — API новостей ✨

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

Я настроил экземпляр своей базы данных с помощью ElephantSQL и разместил свой API с помощью Render.

Вы можете проверить мой репозиторий GitHub для получения дополнительной информации.

Асинхронно/ожидание ⏲

Шаблон async/await — это синтаксический сахар, который позволяет писать асинхронность на основе промисов так, чтобы это выглядело как синхронный код. Его намного легче читать и понимать, и он поможет вам избежать ада обратных вызовов.

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

async function getSomeData() {
  const data = await fetchData();
  return data;
}

getSomeData()
  .then(data => console.log(data))
  .catch(error => console.error(error));

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

Как только результат доступен, он присваивается переменной данных, а затем функция возвращает данные.

Затем вызывается функция getSomeData(), и результаты записываются в консоль, и, если возникает ошибка, вместо нее записывается ошибка.

Его также можно записать в блоке try/catch, как показано ниже.

async function main() {
  try {
    const data = await getSomeData();
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}

main();

CICD

CI/CD расшифровывается как Continuous Integration и Continuous Delivery/Deployment, и это подход к разработке программного обеспечения, который включает в себя автоматизацию тестирования и внесения изменений в код.

Цель CI/CD — обеспечить более быстрые и частые выпуски программного обеспечения с более высоким качеством и меньшим риском. Это достигается за счет автоматизации процесса создания, тестирования и развертывания изменений кода, что позволяет быстро обнаруживать и устранять проблемы до того, как они станут серьезными проблемами.

Вот пример рабочего процесса для реализации CI/CD:

  1. Разработчик пишет код и отправляет изменения в репозиторий GitHub.
  2. CI-сервер обнаруживает изменения и извлекает код из GitHub.
  3. Сервер CI запускает автоматические тесты для обеспечения качества кода.
  4. Если тесты пройдены, сервер CI автоматически создает и упаковывает код.
  5. CD-сервер развертывает новый пакет кода в промежуточной среде.
  6. Команда QA проводит дополнительное тестирование и проверяет качество кода.
  7. Если код проходит тестирование, CD-сервер развертывает код в рабочей среде.

GitHub Actions — это мощный инструмент для автоматизации рабочих процессов программного обеспечения. Вы можете использовать его для создания конвейера непрерывной интеграции и доставки (CI/CD), который автоматически создает, тестирует и развертывает ваш код в целевой среде всякий раз, когда в репозиторий вносятся изменения.

Эмоциональная проверка 💻

Это была невероятная неделя для меня, у меня было множество глубоких рабочих сессий, что привело к высокому уровню продуктивности.

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

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

При этом я также рад работать над интерфейсом, поскольку он даст мне возможность раскрыть мою творческую сторону. 🌱

Прыжок во времени