Создание приложения-генератора идей для фильмов

Проблемы роста с помощью JavaScript

JavaScript дал мне небольшую паузу в прогрессе, и похоже, что я не единственный. Это чрезвычайно захватывающий язык и очень популярный, и я понимаю, что полезно потратить время на то, чтобы действительно глубоко понять как можно больше. В то время как Rails был естественным продолжением Sinatra, для меня это вызвало некоторые трудности с выяснением «странных частей», как это называет Тони Алиса. Его видео на YouTube, которым поделились в качестве дополнительной части учебной программы, определенно помогло, когда я вернулся и посмотрел полную ссылку и еще несколько уроков, заплатив за остальную часть на Udemy. Мне потребовалось некоторое время, чтобы понять синтаксис, понять асинхронную функциональность, прослушиватели событий, вызовы вложенных функций, AJAX и как ориентироваться в том, что казалось паутиной скобок, как только дело продвинулось. Мне нравится множество видео, которые есть в архиве Flatiron. Медленное возвращение к каждой из тем помогло мне понять ее в гораздо большей степени, и теперь, пройдя проект, который я намеренно сделал довольно сложным, я чувствую себя намного лучше, включив его в свой инструментарий для работы. мир.

Мое первое полезное приложение

Приступая к этому учебному плану, я знал, что Javascript — довольно динамичный язык, в котором вы можете управлять движущимися частями, и это меня очень волновало. Это также заставило меня задуматься над идеей, которой я хотел бы заняться. Я понимаю важность демонстрации различных навыков и стилей в своем портфолио, и хотел по-настоящему усовершенствовать этот проект, чтобы сделать его уникальным по сравнению с двумя предыдущими проектами. Первой идеей, которую я преследовал какое-то время, была попытка придумать способ сделать новостной сайт Готэм-сити джокером. Темный рыцарь — один из моих любимых фильмов, и перед его выходом в прокат была проведена вирусная маркетинговая кампания в Интернете, которая представила множество стилей и образов, которые в конечном итоге будут связаны с Джокером. Где-то есть забавный способ манипулировать DOM с помощью смеха шутника, вырванных страниц, выцарапанных слов, но я не смог его поцарапать с моей текущей базой знаний. Второй идеей, которую я преследовал (до того, как узнал о требованиях проекта одностраничного приложения), было какое-то приложение Выбери свое собственное приключение. Я видел, что есть фанфик Выбери свое собственное приключение с Пятницей, 13-е, и после глубокого погружения в эти фильмы не так давно я подумал, что было бы забавно использовать некоторые звуковые ландшафты и образы для сделать пользовательский опыт на основе этого. Оглядываясь назад, это может немного оттолкнуть некоторых работодателей, и в конечном итоге я гораздо больше доволен тем, что я в конечном итоге придумал, а не этими двумя концепциями.

Не знаю почему, но в какой-то момент я вспомнил книгу, которую мне подарили лет 15 назад, когда я учился в колледже. Названный «Генератор киносюжетов», это журнальный столик / книга-шутка, которая «генерирует» сюжеты фильмов. В основном это то, над чем можно посмеяться, но иногда я обнаружил, что это помогает растопить лед и придумать законную идею сценария. К написанию сценариев я относился очень серьезно в колледже, даже стажировался читателем в сценарной студии в Лос-Анджелесе после первого года обучения, и это то, чем я надеюсь вернуться в качестве хобби в ближайшем будущем. Взяв за основу структуру книги и подумав о том, как это можно перевести в веб-приложение, идея пришла ко мне довольно быстро после этого момента. Было легко поддержать это с большой страстью, особенно после того, как вы поняли, как объединить концепцию этой книги в законно используемое приложение. Я, вероятно, потратил в два раза больше времени на это приложение, чем на другие, но, несмотря на разочарования, которые возникли при его создании, я очень доволен результатом и мог бы даже сам использовать его, чтобы помочь придумать будущее письмо. идея.

Семена данных Whole Lotta

В то время как основная проблема моего проекта Rails заключалась в связях данных и в том, как ими манипулировать, проблемой в этом проекте было то, как данные взаимодействуют друг с другом, а также как они читаются в DOM. Сами данные на самом деле гораздо важнее для этого проекта. 3 части рандомизированных презентаций, представленных в книге, написаны очень специфическим образом, поэтому их можно смешивать и сопоставлять. После откровенного (отдавая должное и) плагиата многих питчей, представленных в книге, я понял, что их недостаточно, чтобы соответствовать тому, что мне нужно было сделать с этим проектом, чтобы соответствовать требованиям. После посещения учебной сессии с Тао Лю и обсуждения того, как заставить отношения «один ко многим» работать в подобном проекте, возникла идея сделать это отношением между идеями и жанрами. Жанр не был чем-то, что обязательно было даже мыслью в книге, поэтому потребовалось много внешних копаний и рефакторингов, чтобы придумать достаточно, чтобы равное количество (7) было представлено для 6 разных жанров. Хотя поток данных был простым на бэкэнде, было довольно сложно переформулировать и реорганизовать презентацию онлайн-фильмов, чтобы она соответствовала этой структуре. Задача только начиналась.

Первоочередной подход к дизайну

На этот раз базовый дизайн пришел ко мне довольно быстро, и, поскольку поток данных был несколько простым, я решил использовать другой подход и сначала сосредоточиться на дизайне. Написав довольно подробный план того, что я хотел, и несколько грубый набросок от руки, я решил сразу же перейти к HTML и CSS, думая, что вернусь и напишу более подробные планы. На этот раз это просто сработало с этой точки зрения. Я действительно интересовался CSS в последних двух проектах, и на этот раз я чувствовал себя намного более комфортно, ориентируясь в нем. Я не думаю, что в будущем я буду псевдо-создавать весь сайт в HTML/CSS, как это, без более подробной проработки деталей функций, необходимости откатывать идентификаторы и выполнять гораздо больше строк кода. для доступа к элементам. Тем не менее, в зависимости от потребностей проекта, я могу снова представить себе, что делаю что-то подобное, поскольку это помогает взволноваться, увидев, как что-то будет выглядеть, прежде чем сделать это функциональным так, как вы этого хотите.

Видео Ayanna, функциональность интерфейса/бэкенда

Как я уже сказал, у меня были некоторые проблемы с пониманием концепций JS поначалу, но я смотрел первые несколько (их много!) видеороликов о сборке проекта Аянны. Я, вероятно, вернусь к остальным позже, когда я добавлю больше функций/функций в это приложение, как только оно будет запущено. Аянне было потрясающе следовать за ней, и она очень четко описывала концепции по мере их создания. Я обнаружил, что эти видеоролики о сборке проекта — прекрасный способ увидеть концепции, над которыми вы работали в каждом разделе, и на самом деле закрепить их в своей голове, когда вы воплощаете свою собственную идею в жизнь. После просмотра 4 базовых видео первое, что я сделал, это составил более четкий план, список точных элементов функциональности, которые я хочу добавить в каждый раздел, независимо от того, знал ли я, как это сделать или нет. Я даже дошел до того, что распечатал разработанный, псевдосозданный сайт и разметил его. Работая с видео, я часто обнаруживал, что просмотр одного и того же проекта в разных визуальных стилях, вдали от компьютера и/или программного обеспечения, с помощью которого вы его создаете, часто может органично привести к более эффективной разработке лучших идей, чем просто пучеглазый взгляд. ваш экран. На этот раз я обнаружил, что препятствия, с которыми я столкнулся, не обязательно были такими длинными или разочаровывающими, потому что я знал, что иду к чему-то довольно сложному, что потребует дальнейших исследований, и у меня было очень четкое представление о том, что я иду к . В какой-то момент я решил не заморачиваться с функциональностью входа в систему, ориентированной на JS, зная, что 1) я уже использовал сайты входа в последние 2 проекта, включая OAuth в последнем проекте, и 2) он не нужен для это. Это приложение-песочница, и, хотя в будущем это может стать чем-то, я добавлю пользователям возможность хранить свои идеи в базе данных, поскольку MVP этого достаточно. И после того, как я проработал над этим почти 2 недели, потратив на это МНОГО часов, я доволен этим как MVP и готов двигаться дальше и (скрестим пальцы) получить работу в ближайшее время!

Первое, что меня повесило, это правильная раздача данных. Фактические данные для этого проекта никоим образом не являются вздором или тестовыми данными, поскольку они являются ключевым компонентом того, как пользователь взаимодействует с программой, и с чем мне пришлось тщательно поработать, чтобы убедиться, что каждую часть можно перепутать с другой. элемент. Это была пара очень разочаровывающих дней, когда я просматривал форматирование каждой отдельной части начальных данных, не замечая ничего неправильного и все еще придумывая сообщения об ошибках, попадающие в первую или вторую часть данных как имеющие неопределенные данные. Не смог найти в Интернете ничего, что хотя бы близко могло ответить на этот вопрос, и после того, как я почти прибегнул к простому заполнению вручную с помощью консоли Rails, я попытался использовать одинарные кавычки, а не двойные кавычки для некоторых данных. Я заметил, что он изменил цвет в VS Code, тот же цвет, на который изменились «действительные» фрагменты данных. После этого я все еще не видел ни одной статьи, в которой кто-то сталкивался с похожей проблемой, но теперь я знаю, что у меня будет что-то, что может попробовать такая же бедняга в будущем, если я увижу всплывающую проблему, подобную этой. о переполнении стека.

Еще одна вещь, которая доставляла мне много головной боли в течение 4-5 дней, заключалась в том, что данные JSON правильно отображались. Я добавил логический атрибут (generator_default), чтобы пользователь мог взаимодействовать и строить идеи по своему усмотрению, и их идеи даже будут добавлены в базу данных, но это не повлияет на основные данные, которые я хотел сохранить нетронутыми в область «Генератор сюжетов» приложения. После этого я постоянно сталкивался с ошибкой JSON при попытке публикации в базе данных и обнаружил, что не могу провести данные через все итерации, которые хотел, не сталкиваясь с этой ошибкой и не добавляя их в базу данных должным образом. После нескольких дней отслеживания моих шагов снова и снова я, наконец, нашел решение этой проблемы, поскольку мне не нужно было определять атрибут «generator_default» для элемента во внешнем интерфейсе, так как бэкэнд предоставил это « false» по умолчанию для атрибута сам по себе.

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

Последние мысли

Прохождение части программы, связанной с Javascript, было немного эмоциональным, потому что, исходя из оценок времени, предоставленных Flatiron, я потратил почти вдвое больше времени, чем «среднее» количество времени, которое студент тратит на этот раздел. Для меня это была настоящая кривая обучения, и я не позволил этому помешать мне создать технически сложный проект. В конечном итоге я согласен с этим и в восторге от конечных результатов проекта и базы знаний, которую я получил за последние 4 недели этого раздела. Но я также сейчас нахожусь в той точке, когда мне нужно как можно скорее найти работу ради моей семьи, даже временную работу, прежде чем в конечном итоге получить эту первую работу программиста. Я так долго представлял себе, как приближается день после 13 месяцев участия в этой программе, и финишная черта уже видна. Независимо от того, что произойдет в последнем разделе React/Redux, я буду держать голову высоко, зная, что я все еще чувствую себя счастливым и уверенным, что это был правильный выбор для меня, чтобы сделать этот карьерный переход и сделать самостоятельную работу. программу буткемпа, такую ​​​​как Flatiron, чтобы сделать это максимально гибким, насколько вы позволяете, это также очень структурированная программа, которая углубит вас в кроличью нору изучения программирования. Моя цель (если я не найду работу заранее) - отпраздновать фейерверк в честь Дня труда в Цинциннати, который в этом году завершается программой; но я закончу только тогда, когда я почувствую себя так, как сейчас с JavaScript, что даже если это на неделю или 2 дольше, чем я планировал, стоит понять его на том уровне, который вам нужен.