Моя одиннадцатая и предпоследняя неделя на Makers Bootcamp

Как упоминалось в блоге на прошлой неделе, мы проводим последние 2 недели буткемпа над групповым проектом, основанным на идеях, выдвинутых группой. Группа предложила множество отличных идей, охватывающих несколько категорий, включая игры, машинное обучение и вспомогательные программы, такие как VS Code и расширения Chrome. Нас попросили выдвинуть наш первый, второй и третий варианты, и наш тренер Makers разделил нас на группы соответственно. Моим первым выбором была игровая программа, а точнее текстовая приключенческая игра, такая как эта или игра, помогающая подросткам изучать английский язык и математику. Моим вторым выбором было веб-приложение для обзора фильмов (немного похожее на letterboxd), где люди могут зарегистрироваться, чтобы просматривать фильмы и делиться своими обзорами с другими пользователями. Мне дали второй выбор (вероятно, потому, что не было достаточного интереса к моим любимым играм), и мне снова очень повезло оказаться в группе прекрасных людей, включая одного из моих будущих коллег по Apple, с которым я сблизился. над буткемпом. Я также люблю смотреть фильмы, поэтому я очень рад возможности поработать над этим приложением.

Мы начали планировать поздно утром в понедельник и продолжили планирование до конца дня. Мы начали с доски Trello, где изложили цели обучения для проекта и обсудили, как мы можем их достичь. Мои цели:

  • улучшить мою способность писать тесты для программ, использующих службы RESTful;
  • понимать в общих чертах, как работает Spring Security для входа в систему/сбора пользовательских данных; и
  • работать в команде по методологии Agile, используя такие методологии, как планирование спринта, невыполненные работы, стендапы и ретроспективы.

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

Мы также обсудили, как мы хотели бы работать в команде и каков был наш MVP для приложения (которое нам нужно было реализовать к четвергу), а также название нашего приложения и всегда важное решение о названии команды! После решения этих предварительных вопросов, которые также включали составление расписания на неделю, мы углубились в планирование самой программы, в том числе составили несколько диаграмм объектных моделей, чтобы показать, как различные объекты в нашем приложении будут взаимодействовать друг с другом, и каркасные диаграммы. определение того, как приложение будет выглядеть на самом деле. Мне пришлось уйти немного раньше, чем обычно, в понедельник днем, поэтому после того, как я ушел, команда продолжила сеанс планирования, выписав потенциальные билеты на нашей доске Trello.

Во вторник утром мы работали над настройкой нашего проекта с помощью Spring Initializr и выбором необходимых зависимостей, включая Spring Security для регистрации и входа в систему, Thymeleaf для создания и интеграции HTML и CSS в Spring и JUnit для наших тестов. Мы также сделали все билеты для всего веб-приложения, используя проекты GitHub, и решили, какие билеты нам нужно добавить в спринт, чтобы удовлетворить MVP. После всего планирования мы были готовы приступить к программированию во вторник днем!

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

Выяснение того, как запрашивать API в нашем приложении, было, безусловно, сложной задачей, но нам удалось разобраться с этим в среду днем, и это было здорово. Другие в команде также разобрались с регистрацией в качестве нового пользователя, и мы работали над использованием Spring Security, чтобы войти в приложение как существующий пользователь, включая выполнение необходимых проверок аутентификации. Эта часть оказывается довольно сложной, но я не сомневаюсь, что мы доберемся до нее очень скоро.

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

Эти идеи и функциональность приложения могут показаться довольно простыми, однако за короткий промежуток времени очень многое нужно сделать, когда мы работаем как с интерфейсом, так и с сервером, а у всей группы был только 2-недельный опыт использования Spring Boot. Вдобавок ко всему, некоторые из нас занимаются Java всего 4 недели, а это совсем немного времени. Поэтому я очень горжусь всем, чего нам удалось достичь, и я уверен, что наша тяжелая работа окупится, когда мы продемонстрируем приложение на презентации в следующую пятницу. Мысли о презентации немного нервируют, так как это будет не просто презентация для нашей когорты, но мы будем презентовать нашим работодателям, а также любой семье / друзьям, которых мы пригласим. Таким образом, кажется, что существует большое давление, чтобы представить хорошо отполированную программу. Тем не менее, мы не можем забывать, насколько важен наш путь обучения, и я думаю, что на данный момент команда соблюдает довольно хороший баланс, сосредоточившись на создании достойной программы, но не за счет изучения новых вещей.

Вдобавок ко всему, команда Apple также проводит семинары по Python по средам утром, параллельно с групповым проектом, так что я действительно с нетерпением жду, когда у меня будет время, чтобы мой мозг расслабился на следующих выходных перед началом размещения 29 ноября!

Итак, наступает моя последняя неделя, когда я продолжу работу над групповым проектом и представлю готовый продукт со своей командой в следующую пятницу. Я дам вам знать, что это будет вместе с окончательными мыслями о буткемпе в целом в блоге на следующей неделе!