За последние три месяца я провел большую часть своего свободного времени с группой талантливых и голодных разработчиков, работающих над созданием отличного небольшого приложения для путешествий, которое поможет обычному человеку ориентироваться в пост-Ковидном (нынешнем Ковидном?) мире.
Идея заключалась в том, чтобы создать веб-приложение, которое сочетало бы ваш внешний интерфейс, ваш веб-API бэкэнда и веб-API DS, чтобы создать бесшовный и настраиваемый интерфейс. Мы собирались использовать несколько решений AWS, Docker, React, PostgreSQL, пытаясь использовать все навыки, над которыми работали последние 13 месяцев, чтобы не только создать отличное приложение, но и приложение, которое помогло бы нам найти работа, делающая то, во что мы вложили так много своей жизни.
Сейчас я не могу говорить за остальную часть группы, поэтому не буду. Тем не менее, я могу разбить процесс, через который я прошел, чтобы перейти от идеи к работающему приложению.
Я в первую очередь отвечал за веб-бэкенд, что означало аутентификацию, таблицы, базы данных, пути маршрутизации, просмотр объектов json и, что самое сложное, логические пути и имена столбцов («user_trip_locs» звучит описательно, верно?). Но все должно с чего-то начинаться! Мы собрались как коллектив и подкинули свои идеи, как это должно выглядеть, общее течение, как оно должно слиться во время зимнего солнцестояния в прекрасный сон, едущий на спине мифического фей-дракона, который приносит надежду разработчикам. повсюду. Мы составили план!
Планирование в наши дни означает несколько ночей встреч в Zoom, доску Trello, Figma и Dbdesigner. Мы набросали нашу дорожную карту, где мы хотели быть, как мы хотели туда попасть и кого винить, если мы этого не сделали! Все складывалось плавно.
Затем приблизился тот страшный день, дни, когда мы действительно должны были начать выполнять все то, что, как мы говорили, мы могли. Объединение нескольких таблиц для бесконечной настройки, вы получили это! Oauth2 для авторизации, не проблема! Нет, я никогда не использовал докер, это не должно быть проблемой, так как в прошлом году наша учебная программа научила нас постоянно брать иностранную технологию или концепцию, адаптироваться к ней и усваивать ее.
И вот тут-то и начались неприятности, когда нас, студентов, постоянно бросали в проекты, где мы не знали ни одной части технологии, или знакомили с новой библиотекой. С этим проектом меня забросило в бэкенд с использованием совершенно чуждых мне технологий, а потом я проснулся в холодном поту и понял, что все это был сон. Что?! Слабые сообщения?! Это не сон.
Честно говоря, я начал терять самообладание. Я был поражен. Единственное, что я мог видеть, — это вся база данных, связь с другой базой данных и проверка того, может ли внешний интерфейс связываться с этим огромным кораблем-неудачником, который я собирался направить в порт.
Я был настолько сосредоточен на идее этой большой базы данных, которая будет передавать данные между несколькими таблицами и компонентами, что это было все, что я мог видеть. Я позволил себе быть загипнотизированным всем этим.
После нескольких часов размышлений о том, как все это будет работать вместе, все, что я делал раньше, чтобы все заработало, начало работать. Я разбил его на управляемые части. Я настроил и запустил докер локально, чтобы начать сборку своего контейнера.
Я построил первую таблицу и связал ее. Потом второй, третий и так далее. Я начал тестировать эти компоненты, чтобы убедиться, что данные генерируются и передаются туда и обратно.
После этого и начального момента нервного срыва все было как обычно, и несколько поздних ночных сеансов программирования с моим фронтенд-коллегой.
В конце концов мы остановились на этом.
Полнофункциональное приложение, которое существует благодаря использованию четких основ коммуникационного программирования, множеству бессонных ночей и большому количеству кофеина.