Итак, я знаю, что сказал, что собираюсь обновлять это каждую неделю, но я также думал, что создание и заполнение базы данных всех предприятий в Сан-Франциско вместе со случайно сгенерированными пользователями и отзывами займет всего один день. Поскольку это заняло чуть больше недели, мы можем просто сказать, что все, что я говорил кому-либо 2 недели назад, было ошибочным в одну неделю. К счастью, это не похоже на тенденцию на прошлой неделе, и хотя создание базы данных заняло ЗНАЧИТЕЛЬНО больше времени, чем я думал (в значительной степени из-за трудностей с получением хороших, чистых, репрезентативных данных), мне удалось закончить свой MVP. (минимально жизнеспособный продукт) в основном вовремя.

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

Это подводит меня к тому, почему я не писал в прошлые выходные. Честно говоря, я не чувствовал, что имею на это право. Первая неделя была (мягко говоря) ошеломляющей. Я пришел на неделю с уверенностью в том, что делать дальше, все мои маршруты были написаны, ключи API уже настроены вместе с моим виртуальным окружением, у меня был план.

Как оказалось, этот план был ерундой.

Хорошо, на самом деле это неправда, но и не особо помогло. Известный военный стратег однажды сказал: Ни один план не выдерживает первого контакта с врагом, и это относится и к программированию. Ну, на самом деле он сказал: Kein Plan überlebt die erste Feindberührung!, но это немного сложнее, так что давайте придерживаться английского. Причина, по которой это верно для кодирования, заключается в том, что, как бы банально это ни звучало, проект — это живая, дышащая вещь, состоящая из различных экосистем (фласк-маршруты, вспомогательные/логические функции, база данных, модели и т. одна мелочь в одной из этих экосистем ВСЕ РАЗРУШЕНО НАВСЕГДА. Хорошо, может быть, и не разрушен навсегда, но любые тщательно продуманные планы того, как вы собирались справиться с ситуацией, становятся фактически спорными, потому что данные обстоятельства изменились.

В то время, когда я боролся с ограничениями смещения API yelp и моими функциями начальных данных, делающими всевозможные непреднамеренные вещи, я чувствовал, что не делаю никакого прогресса как инженер, и поэтому мне не о чем писать. Оглядываясь назад, я могу сказать, что это совсем не так, я на самом деле многому научился за эту неделю, больше, чем, я думаю, я узнаю за любую другую неделю, если буду честен с самим собой. Когда я начал размышлять о первой неделе и о том, почему она меня так разочаровала, я понял, что немалая часть этого была вызвана тем, что я был расстроен из-за того, что большая часть заложенной мной основы в основном стала неактуальной, потому что изменилась одна маленькая вещь. Конечно, были и разочарования, которые сопровождались небольшими оплошностями, но чтобы украсть еще одну цитату, я узнал 100 способов, как не построить лампочку из них (или, в данном случае, 100 способов, как не засеять реляционную базу данных) поэтому они обычно, по крайней мере, сопровождались более непосредственными знаниями, чтобы компенсировать их.

Большим, более болезненным осознанием было то, что я просто не могу все спланировать, и это урок, который не всегда ясен на первый взгляд. Он часто маскируется под фразу «ну, вы просто не умеете планировать, в следующий раз вам следует планировать больше результатов», а не как «это то, что вы не можете спланировать, возможно, вам не следует строить множество фундаментальных планов». функции, прежде чем вам нужно было бы в случае, если что-то изменится». По сути, мне нужно принять и усвоить принципы Agile-разработки, пока я кодирую, что противоречит тому, как я прожил свою жизнь, особенно в прошлом году. Хорошая новость заключается в том, что теперь, когда я осознаю, насколько моя склонность к контролю может просочиться в мой стиль разработчика, я могу держать ухо востро и нести ответственность за то, что отклоняюсь от курса. С тех пор я стал спрашивать себя: «Нужно ли мне еще писать это?» и много раз, ответ нет.

Хорошей новостью является то, что после 1-й недели ничто не смогло меня остановить. Даже если я потрачу целый день (а затем большую часть другого после того, как я что-то рефакторинг) проработаю и найду одну ошибку в одном AJAX-вызове, это не поможет мне. Я вспомнил, что независимо от того, насколько неразрешимой кажется проблема, я найду решение, преодолею его и перейду к следующей проблеме (ВСЕГДА есть еще одна ошибка или другая функция, которую нужно реализовать), и сосредоточусь на том, насколько сложной она кажется в то время. только приносит пользу моей неуверенности. Страх убивает разум и все такое.

На этой неделе мы начинаем наш функциональный спринт, и я с нетерпением жду возможности встать на локти в Javascript (или, по крайней мере, получить удовольствие от вызова и возможности расширить свои знания о нем). Моя цель — реализовать некоторую интерактивную визуализацию данных (читай: причудливые диаграммы) вместе с отображением, чтобы заставить Haven действительно работать больше более удобным для пользователя и полезным способом и вывести его на пресловутый «следующий уровень». Мы также погрузимся в тяжелые лекции по Comp-Sci, которые должны быть интересными и помочь завершить мое образование.

В общем, я с нетерпением жду этой недели и того, как я могу использовать интерфейсные инструменты для формирования и проектирования взаимодействия с пользователем, что уже давно меня завораживало. На данный момент серверная часть (должна) полностью поддерживать ее или требовать минимальной настройки. Думаю, я дам вам знать на следующей неделе.

-Айс