Наконец сделал это! Это пятый и последний спринт для Lamba Labs. Когда мы начинали наш проект, казалось, что нужно сделать так много и что 5 недель будет недостаточно. Однако, когда каждый разработчик в команде приступил к работе, мы разбили проект с огромного валуна на более мелкие камни и разделили обязанности. В мои обязанности входила настройка базового сервера Node.js/Express, помощь в планировании структуры базы данных, разработка аутентификации Firebase для серверной части и, наконец, в этом последнем спринте я внедрил Stripe.js, чтобы наше приложение могло принимать платежи по кредитным картам.

Чтобы включить Stripe.js, я на самом деле погуглил, чтобы узнать, как это сделать, и наткнулся на замечательный учебник, написанный на HackerNoon.com бывшим студентом Lambda, Джеймсоном Брауном. Это был отличный учебник, и я почти заработал. Тем не менее, я не мог заставить его работать, поэтому я связался с Джеймсоном в Slack, и он был так замечателен в масштабировании со мной и программировании на равных со мной, чтобы заставить мой код работать. Несмотря на то, что я работал над серверной частью Stripe, мне нужно было создать небольшой простой клиент React, чтобы протестировать его. Вот код для этого (примечание: я заменил публикуемый ключ бессмысленными данными — ключи должны быть как можно более секретными):

После того, как я создал этот клиентский компонент, я мог протестировать внутренний код Stripe. Вот сердце внутреннего кода Stripe:

В строке 3 я передаю секретный ключ Stripe. Затем вызывается get для сервера проверки Stripe, который возвращает нам сообщение и метку времени. Это ответ клиенту о том, что Stripe готов принять запрос. Наконец, сообщение вызывается передачей данных внутри объекта body, где мы передаем в Stripe API сборы и метод создания, передаваемый в теле и stripeChargeCallback. При возникновении ошибки возвращается сообщение об ошибке, если все проверяется, передается статус 200 и сообщение.

После этого мы вошли в стадию заморозки функций — никаких новых функций. Пришло время украсить и сделать наше приложение солидным. Работа в команде одновременно и сложная, и очень полезная. Были личные проблемы, которые вывели членов из состава комиссии на некоторое время. Но каждый раз, когда это случалось, товарищ по команде подходил! Кроме того, когда мы вошли в финальный спринт, мы стали намного чаще общаться. Это ключ. Команда хороша настолько, насколько хороша ее способность общаться. Мы также многое узнали о том, как работают друг друга. Некоторые любят работать до поздней ночи (виноваты!). В то время как другие придерживались строгого графика. Были также времена, когда наш руководитель группы, Джосу Перальта, действительно помогал нам отлаживать некоторые довольно хитрые проблемы. Этот проект Lambda Labs был очень ценен для меня тем, что в следующем проекте, над которым я работаю, я буду знать гораздо больше, чего ожидать.