Бэкэнд разработка
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:
- Разработчик пишет код и отправляет изменения в репозиторий GitHub.
- CI-сервер обнаруживает изменения и извлекает код из GitHub.
- Сервер CI запускает автоматические тесты для обеспечения качества кода.
- Если тесты пройдены, сервер CI автоматически создает и упаковывает код.
- CD-сервер развертывает новый пакет кода в промежуточной среде.
- Команда QA проводит дополнительное тестирование и проверяет качество кода.
- Если код проходит тестирование, CD-сервер развертывает код в рабочей среде.
GitHub Actions — это мощный инструмент для автоматизации рабочих процессов программного обеспечения. Вы можете использовать его для создания конвейера непрерывной интеграции и доставки (CI/CD), который автоматически создает, тестирует и развертывает ваш код в целевой среде всякий раз, когда в репозиторий вносятся изменения.
Эмоциональная проверка 💻
Это была невероятная неделя для меня, у меня было множество глубоких рабочих сессий, что привело к высокому уровню продуктивности.
Несмотря на то, что ранее мы работали над более мелкими функциями с конкретными целями, на этой неделе я стал свидетелем того, как код оживает, и понял, как все сочетается друг с другом. Кроме того, теперь у меня есть возможность создать API с нуля.
Тем не менее, на следующей неделе мы приступим к разработке внешнего интерфейса, и мне кажется, что я еще не полностью изучил внутреннюю часть. Мне очень понравилось создавать логику на стороне сервера, и я хочу углубиться в нее.
При этом я также рад работать над интерфейсом, поскольку он даст мне возможность раскрыть мою творческую сторону. 🌱
Прыжок во времени
- Неделя 1: Командная строка, Git и GitHub, основы JavaScript и введение в HTML/CSS
- Неделя 2: Node.js, NPM, разработка через тестирование, парное программирование и замыкание
- Неделя 3: Рекурсия, объектно-ориентированное программирование, структуры данных — стеки и очереди
- Неделя 4: День обзора, асинхронные обратные вызовы, Интернет и обещания
- Неделя 5: HTTP, Express, Model-View-Controller (MVC) Pattern & SQL
- Неделя 6: Node Postgres, супертест и обработка ошибок с помощью Express
- 7 неделя 👀
- Неделя 8: DOM, React-компоненты, состояние и хуки
- Неделя 9: Вызовы API, React — Router, контекст и оптимистичный рендеринг
- Неделя 10: Фронтенд-проект, обработка ошибок, пользовательские хуки и классовые компоненты