Мое первое полнофункциональное приложение

Несколько месяцев назад я решил удвоить усилия, чтобы научиться программировать. На момент написания этой статьи я наполовину закончил 12-недельный иммерсивный полный курс веб-разработки в General Assembly в Сан-Франциско. Хотел бы я сделать это много лет назад, но считаю, что никогда не поздно. И до сих пор это было фантастически!

После нескольких месяцев самостоятельной подготовки, а затем изучения основ в классе, мы были готовы к Проекту 1. Цель Проекта 1 - создать первое полнофункциональное веб-приложение на основе HTML, CSS, Javascript, jQuery, Express. и MongoDB. Мы рассмотрели все эти темы и создали несколько небольших игр и веб-сайтов, но это не значит, что мы пока хорошо разбираемся в веб-разработке.

Планирование

Первым шагом проекта было определение основной цели, назначения и объема приложения. Направление, которое я выбрал, перекликается с настоящим стартапом, над которым я работаю. Затем я создал каркас основного потока и пользовательского интерфейса приложения, которое собирался создать.

Прототип

Затем я засучил рукава и построил рабочий прототип приложения на HTML, CSS и jQuery на стороне клиента. Логика и данные были жестко запрограммированы и смешаны вместе. Каждой кнопке назначается 6–7 событий обработчика кликов. Каждый раз, когда пользователь отвечает на вопрос, нажимая кнопку, jQuery добавляет на страницу HTML-тег div. Сборка была сырой, глючной и очень сложной для редактирования. Но это сработало! И я смог оформить интерфейс так, как я хотел. Хотя это был долгий и болезненный процесс, создание ручной статичной первой версии с ошибками было отличным упражнением. Это заставило меня по-настоящему понять стили CSS и функциональность jQuery и позволило мне создать рабочую основу.

Настройка серверной части

Затем наступила самая техническая и сложная часть проекта: настройка сервера, схем, моделей данных, базы данных и построение нашего программного дерева решений. При большой поддержке со стороны группы инструкторов я изо всех сил пытался создать API и написать маршруты RESTful API, которые связывали клиента с размещенной базой данных.

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

В целом Проект 1 представлял собой 10-дневный спринт от планирования до завершения. И качество приложений, которые создали мои одноклассники, просто потрясающее. Генеральная ассамблея порождает серьезные таланты как в передней, так и в задней части.

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

Пользовательское тестирование

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