В котором я делаю ретроспективу первых четырех недель/мой первый проект

Эй, незнакомцы и друзья! Я вернулся с Карибских островов и снова в игре ~веб-разработки~

Ну типа. Как я уже упоминал на прошлой неделе, я должен завершить свой первый веб-проект, kusamochi.me, и перейти к следующему проекту на следующие 6 месяцев: платформа для чтения, публикации и обмена мангой, которую я предварительно вызов moshi-moji.xyz. Это означает, что сейчас самое время остановиться, сделать (ВНИМАНИЕ: длинную) ретроспективу и хорошенько подумать о том, как подойти к моему следующему проекту.

Я полагаю, что мог бы также применить тот же формат, который я использовал для каждой недели, чтобы сделать эту ретроспективу. Знаешь, старое, проверенное и верное 1. Что я собирался сделать? 2. Что я в итоге сделал? 3. Краткое изложение того, что прошло хорошо / что было сложно / что я бы попробовал по-другому в следующий раз, и 4. Одна интересная вещь, которую я узнал.

Что это? Вы только что запрыгнули на этот пост и не понимаете, о чем я говорю?? Вы умираете, чтобы наверстать упущенное? Что ж, вот предыдущая запись (-mortems) в этой удивительной серии блогов:

В любом случае, без лишних слов, давайте посмотрим, как прошел прошедший месяц.

Что я собирался делать?

Прежде всего, я хотел (пере)создать свой личный художественный блог/сайт kusamochi.me за один месяц.

Кроме того, в начале проекта я поставил перед собой несколько целей обучения:

  1. в целом: познакомиться с некоторыми основными компонентами веб-проектов и перейти к более крупным веб-проектам
  2. узнать о роли и ограничениях использования популярной CMS Wordpress
  3. применять принципы MVC
  4. освежить в памяти использование React или Jinja для внешнего интерфейса
  5. познакомитесь с примером нереляционной базы данных (MongoDB) — сможете рассказать о ее ограничениях и преимуществах

Некоторые более широкие цели заключались в том, чтобы самостоятельно реализовать навыки, которые я получил ранее во время учебы в Холбертонской школе, получить опыт работы с несколькими ключевыми технологиями, улучшить оценку того, сколько времени мне потребуется, и улучшить свои результаты.

Что я в итоге сделал?

Мне не удалось сделать веб-сайт, так как в целом я только начал реализовывать интерфейс React и не трогал серверную часть Wordpress, кроме как настроить ее.

Я получил представление об основных задачах, которые я должен решить для любого веб-проекта — возможно, самым большим успехом моей работы с kusamochi.me была подготовка к моему следующему проекту, moshi-moji.xyz. Было бы неплохо прояснить немного больше, например, как вызовы к выбранному мной бэкенду будут выглядеть из моего интерфейса React.

Поскольку я на самом деле не касался своего бэкэнда Wordpress, я не достиг своей цели изучения «роли и ограничений популярной CMS Wordpress» в качестве бэкэнда (в отличие от создания собственной CMS). Это было моим большим желанием, и оно будет продолжать возвращать меня на kusamochi.me, пока я не удовлетворю свое любопытство.

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

Освежить в памяти React — я закодировал только 6 или около того компонентов, но я многому научился и понял, что в разработке React есть много моментов, которые я упустил из виду при первой попытке использовать его (с моим старым личным сайтом rochong.space — больше не размещается, извините!): жизненный цикл компонентов, различные варианты управления состоянием, ES6, JS и JSX, как работает React и т. д. Так что я хорошо продвинулся в этом. Хотя я не использовал Jinja. Я не уверен, что Jinja актуален в сочетании с React.

Познакомившись с нереляционной базой данных, такой как MongoDB, я полностью обошел ее, поскольку Wordpress обычно работает с реляционной базой данных, и я решил не усложнять ее. Возможно, у меня есть потенциал для использования MongoDB с kusamochi.me, если я выясню, что есть ресурсы, которые я хочу хранить и извлекать за пределами моей CMS Wordpress. Но да, может быть, в другой раз с другим проектом.

Самостоятельно применять навыки, которые я получил ранее во время учебы в Holberton School: ✔ в основном связанные с определением и реализацией архитектуры проекта самостоятельно

Получите опыт работы с несколькими ключевыми технологиями: ✔

Улучшить оценку того, сколько времени у меня займет: ✔ Я плохо оценивал, но я приобрел опыт, сравнивая эти оценки с моими фактическими результатами.

Станьте лучше в доставке: немного шатко с этим. Я должен либо лучше урезать то, что необходимо для «доставки» продукта в отведенные сроки, либо лучше быстро решать новые задачи.

Что прошло хорошо / Что было сложно / Что я бы попробовал по-другому в следующий раз

Что прошло хорошо:

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

Почетные упоминания: увеличение глубины моих знаний о React и подготовка к моему следующему проекту.

Что было сложно:

Управление всем, что я намеревался сделать. Моя цель состояла в том, чтобы двигаться очень быстро со всем и исследовать только то, что мне нужно знать, чтобы выполнить задачу в первые один или два дня в неделю до того, как приступить к этой задаче. Фактическая модель моей разработки (или развертывания) заключалась в том, чтобы выяснить, что мне нужно сделать что-то, что я еще не полностью знал, как сделать, прекратить кодирование, изучить, как это сделать в течение нескольких часов, попробовать эту задачу, и часто отлаживают в течение одного-двух часов или дней после этого. Затем повторите. Мне нравится называть это паттерном стоп-н-старт.

Как я уже упоминал ранее, мне было трудно предвидеть вопросы, которые я хотел задать своим наставникам, пока я действительно не попробовал это задание.

Наконец, мои наставники (в основном Руди Риго, Ник Чен и Иоганн Кербрат для этого проекта) потрясающие и вдумчивые, но я должен признать, что мне было трудно понять, какие вопросы им задать, поскольку я не хотел забрасывать каждый вопрос. это тоже пришло мне в голову.

Что касается моего процесса разработки, вот небольшое дополнение:

Интерлюдия: давайте соберем статистику!

(Да, я понимаю, что немного утрирую это ретро! Но,) Вот разбивка некоторых статистических данных о том, как я провел свое время в этом проекте:

  • Обычно я работал 6 дней в неделю, но не было ничего необычного в том, что один или два из этих дней в основном были потрачены на другие дела (по поручениям или прогулкам), так что я работал на kusamochi.me всего несколько часов на эти дни. Так что обычно я рассчитываю на 4–5 дней реальной продуктивности в неделю.
  • В те дни я действительно работал, я работал где-то от 2,5 часов до 9,5 часов (не считая перерывов). Среднее значение было близко к 5 (4,9 часа).
  • Обычно я приходил в 11 утра и уходил в 7 вечера, так что примерно 5 часов сосредоточенной работы — это работа на целый день.
  • Не было ничего необычного в том, чтобы тратить один день или 5 часов в неделю, отвечая на отзывы, объединяя вопросы этой недели и отправляя эти вопросы своим наставникам.
  • Также не было ничего необычного в том, чтобы тратить 3–4 часа на сбор статистики и написание сообщения в блоге. К сожалению (´- ω-`) я люблю уточнять.
  • В сумме это составляет примерно 2 из 5 продуктивных дней, потраченных на общение с наставниками и обсуждение проекта. Или только 3 дня в неделю действительно тратятся на исследования, кодирование и отладку.
  • По приблизительным подсчетам, я бы сказал, что 70% моего времени на разработку или развертывание было потрачено на исследование чего-то нового или отладку чего-то, что я пытался заставить это работать, как задумано. (Цель состояла в том, чтобы исследовать только 1–2 из 6 рабочих дней, то есть до 33% моего времени).
  • Из 5–7 задач, которые я назначал себе на эту неделю, я выполнял около 1–2. Так что я немного переоценил, сколько я сделаю за неделю.
  • Требуется около 1 дня или 5 часов, чтобы спланировать, что нужно сделать в течение следующих 4 недель.

/конец интерлюдии

Что бы я попробовал по-другому в следующий раз:

Учитывая вышеприведенную статистику, вот что, я думаю, мне следует сделать по-другому в следующий раз.

  1. Вместо того, чтобы выделять 1–2 дня на исследование в начале каждой недели, назначьте 1–2 недели на исследования/исследования в начале проекта. Меньше полагайтесь на учебники и больше полагайтесь на более полные руководства (книги). Это должно уменьшить шаблон «стоп-и-старт», а также уменьшить количество вопросов, которые у меня возникают по ходу дела.
  2. Получайте отзывы о запросах на вытягивание, чтобы прояснить небольшие вопросы по кодированию, не задавая их (на самом деле отличная идея от моего наставника Йохана). Это поможет уменьшить мой psyducing.
  3. Установите менее агрессивные цели. Например, я больше не ожидаю, что буду заканчивать новую итерацию моего MVP каждые 2 недели. Ржу не могу.
  4. При постановке цели оцените, сколько часов потребуется, чтобы заставить себя подумать о том, реалистична ли эта цель.
  5. Планируйте попробовать что-то заранее, когда я действительно захочу это сделать, чтобы помочь мне предвидеть, какие вопросы мне нужно направить своим наставникам.
  6. Постарайтесь быть более лаконичным в своих размышлениях и сообщайте только самое необходимое (здесь есть некоторая ирония).
  7. Вставай и приезжай в Холбертон пораньше, чтобы увеличить количество часов, которые я работаю каждый день.
  8. Ожидайте, что мне потребуется время, чтобы разобраться во всем, что я пробую в первый раз, и будьте терпеливы к себе.

Это то, что я имею в виду на данный момент. И угадайте, что! ЕСТЬ СЛЕДУЮЩИЙ РАЗ, поэтому я могу попробовать реализовать эти идеи прямо сейчас :D с помощью moshi-moji.xyz. Бум.

Я узнал одну интересную вещь

Помимо этой ретроспективы и планирования моего следующего 4-недельного блока, я провел прошедшую неделю, читая половину руководства О’Рейли по Learning React (TY Guillaume за то, что дал мне это позаимствовать!!). В целом, мне очень нравится это руководство. Это укрепило многое из того, что мои наставники Ник и Йоханн начали рассказывать мне о передовых методах разработки React, и убедило меня в том, что React — это, по сути, подход функционального программирования к дизайну внешнего интерфейса.

И сейчас,

Разные ссылки для вашего удовольствия просмотра: