Моя девятая и десятая недели на Makers Bootcamp

Последние 2 недели буткемпа были потрачены на групповой проект с моими коллегами из Apple, и они пролетели как одно мгновение. Пока остальные в нашей группе создавали клон Facebook, мы с коллегами реализовывали что-то похожее на iMusic, проект, специально разработанный для нас Makers в сотрудничестве с нашим работодателем.

Мы начали первую неделю с введения в существующую кодовую базу под руководством одного из тренеров Makers, Кей. Кей фактически поддерживала нас в ходе проекта, и я не могу выразить, насколько я и остальная группа благодарны ей за руководство и помощь в течение этих двух недель. Итак, нам показали то, что на первый взгляд выглядело чрезвычайно сложной кодовой базой, однако Кей собрал несколько пояснительных видеороликов о коде и его различных компонентах, что очень помогло. Нам сказали, что мы будем работать с инфраструктурой Java Spring Boot и облачной платформой Google, чтобы работать над добавлением функций в онлайн-музыкальный проигрыватель в соответствии со спецификацией, которая была разбита на серию заявок для нас. Нам нужно было иметь дело только с серверной частью, поэтому нам вообще не нужно было беспокоиться о внешнем интерфейсе (ура!), И это было здорово, поскольку мы могли посвятить все свое время пониманию того, как работает среда Spring Boot, и опираться на наши знания. Java, не беспокоясь о дизайне приложения.

После пары дней проведения некоторой исследовательской работы, которая включала выяснение того, как работает приложение, построение схем различных циклов HTTP-запросов/ответов для различных функций и тестирование добавления новой функции (которую нельзя было использовать). в производстве), мы были готовы начать рассматривать билеты и решать, как подойти к проекту в команде.

Мы собрались вместе в среду первой недели, чтобы провести мозговой штурм рабочих идей нашей команды, где мы обсудили, какие подходы наши команды использовали для задачи Makers BnB, которую мы хотели воспроизвести, и какие аспекты той недели, по нашему мнению, можно было бы улучшить. Например, мы хотели проводить ежедневные вставания и вставания, однако для некоторых в группе они иногда обнаруживали, что эти занятия длились слишком долго, поэтому мы договорились, что вставания и вставания будут ограничены 15 минутами и больше никогда. Мы также согласились с тем, что регулярное общение в течение дня с помощью Slack действительно важно, и что, хотя мы будем объединяться каждый день, мы также будем выделять время для самостоятельного обучения и будем проводить экспертную оценку в конце каждого дня, где каждый из нас демонстрировал то, что мы работали над тем, чтобы у всех было достаточно знаний кода, даже если они не имели дело с этим конкретным тикетом.

После согласования нашего графика мы начали работать над кодовой базой в четверг первой недели. На нашем сеансе планирования мы рассмотрели каждый из билетов и решили, являются ли они задачами S, M, L или XL, поэтому сначала начали с билетов с пометкой S. Их было довольно просто реализовать, и пользователи имели возможность удалять треки, которые они добавили в свою библиотеку, а также удалять треки из своих списков воспроизведения и также удалять списки воспроизведения. Затем мы перешли к другому билету S/M, который не позволял пользователям добавлять треки в свою библиотеку без указания названия и исполнителя, а также из своего плейлиста без указания названия плейлиста. Нам удалось довольно быстро пройти эти первые тикеты, и мы были заманены ложным чувством безопасности, поскольку затем столкнулись с действительно сложным тикетом, который после 2,5 дней борьбы мы обсудили с одним из других тренеров Makers и согласились, что мы перейдет от этого билета к некоторым другим. Тренер, с которым мы разговаривали (прекрасный Эдди), на самом деле изучил билет и попытался сделать это сам. Он прислал нам код в конце недели, и, надо сказать, реализация была непростой, что нас вполне утешило. Я уверен, что если бы у нас было больше времени, мы бы со всем разобрались, но, как и со многими задачами и проектами, которые мы делаем в Makers, время было не на нашей стороне! Борьба с этим билетом, казалось, длилась часами, действительно повлияла на боевой дух нашей команды, однако позже в проекте было еще несколько побед, которые подняли наш дух.

На второй неделе мы работали над реализацией дополнительных функций, в том числе над значительным улучшением приложения, которое, хотя и имело страницу входа в систему, показывало все плейлисты и все треки, добавленные любым пользователем, а не только те плейлисты и треки, которые были добавлены пользователем. авторизованный пользователь. Мы смогли получить сведения о сеансе для любого вошедшего в систему пользователя и использовали их, чтобы гарантировать, что только вошедший в систему пользователь может видеть свои собственные треки и плейлисты. Затем мы перешли к другой паре сложных задач: обеспечение того, чтобы при удалении трека он также удалялся из корзины Google Cloud Storage (GCS) для приложения, а также реализация функции безопасности, которая включала использование объектов передачи данных. (DTO) для передачи данных между процессами приложения. Прежде чем перейти к ним, у нас была ретроспектива, чтобы обсудить, что до сих пор было хорошо, что мы ценим, что можно улучшить и как мы себя чувствуем в настоящее время.

Несмотря на то, что *этот* билет сбил нас с толку, у нас было так много хороших слов о том, как наша команда работала вместе и сообщала, что положительные моменты полностью перевешивают отрицательные. Однако мы заметили, что отклонялись от нашего графика, особенно во второй половине дня, когда мы должны были встречаться в 16:00 для наших экспертных оценок, и часто встречались через 20–40 минут после того, как эта встреча была запланирована, поэтому пообещали друг другу, что мы будем уважать график (а также время друг друга) и начать наши встречи быстро.

Мы успешно внедрили паттерн DTO в четверг второй недели, однако реализовать билет на удаление GCS было немного сложнее. Однако после того, как мы нашли код из документации GCS API, а также получили необходимые разрешения для выполнения удаления из GCS, наш код заработал! Мы могли бы добавлять треки, а затем удалять их как из нашей базы данных, так и из GCS. Однако один из тестов на удаление треков начал давать сбой. Арх! Причина сбоя была немного сложной, но по сути проблема была не в коде, а в том, как работает аутентификация для использования GCS, что не совсем было рассмотрено в наших тестах. Опять же, имея немного больше времени, мы могли бы понять это, но мы не могли тратить на это больше времени, учитывая, что мы были в последний день второй недели и у нас была презентация работы, которую мы проделали за последние 2 года. недели на подготовку.

Пятница второй недели наступила очень быстро, и мы потратили утро на подготовку нашего основного доклада и решение, как мы будем демонстрировать то, что мы сделали, учитывая, что вся наша работа была на бэкэнде (хотя мы показали реализацию некоторых функций на фронтенде). ). Однако это не было проблемой, и мы получили исключительно положительные отзывы от нашей когорты. Итак, после презентации мы завершили групповой проект! Это была замечательная пара недель, и я с нетерпением жду начала работы в Apple с такими замечательными людьми.

После нашей презентации мы обсудили идеи для финального группового проекта, который мы будем делать в течение последних 2 недель в Makers. Проекты, которые мы будем делать, полностью наши собственные, без устаревшей кодовой базы, без спецификаций, на 100% мы от начала до конца. Из всех идей, собранных группой, мы выбрали 3 лучших, и Эдди сообщит нам, в каких группах мы находимся, в понедельник утром. Итак, на ближайшие 2 недели!!

Хотя этот групповой проект рассчитан на 2 недели, из-за того, что это очень важное время (мои последние 2 недели на буткемпе), я сделаю запись в блоге на следующей неделе, а также через неделю. Увидимся на следующей неделе!