Цель этого проекта заключалась в создании одностраничного приложения с использованием Javascript и HTML для внешнего интерфейса и внутреннего интерфейса Rails API, демонстрирующего связь между клиентом и сервером.

AutoSwift — это приложение, созданное для пользователей, которые хотят продать свой автомобиль через Интернет или просмотреть последние выставленные на продажу автомобили. Пользователь может опубликовать объявление, введя URL-адрес изображения, информацию об автомобиле, а также выбрав свое имя в раскрывающемся меню выбора.

Отношение объектной модели: автомобиль принадлежит пользователю, а у пользователя много автомобилей. Связь клиент-сервер обрабатывается асинхронно с использованием Fetch, извлекая данные объекта из API Rails и используя JSON в качестве формата связи. Я включил 3 разных запроса на выборку, 2 из которых являются запросами GET для автомобилей и пользователей. И 1 POST запрос на создание Car.

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

Статические методы:
 –
также называются методами класса.
 –
используются для реализации функций. которые принадлежат всему классу, а не только одному объекту. Они не имеют никакого отношения к данным, хранящимся в определенных объектах, таких как методы экземпляра или переменные.
— Вы можете вызывать статические методы, вызывая их по имени самого класса.
напр. Car.method()
— вам не нужно создавать «новый» экземпляр объекта, чтобы использовать его.
— «Это» внутри статического метода относится к класс.
напр. this.method() будет интерпретироваться как Car.method()

Например, я использовал статический метод для Car.createCarHandler(event). Я взял пользовательский ввод из формы, схватив значение элемента DOM, сохранил их как переменные и передал их в CarApi.postCarReq() для отправки обратно в серверный API. Это остается общим и не связано с каким-либо конкретным Объектом. Это может использоваться любым объектом.

Методы экземпляра:
— используются для отдельного объекта/экземпляра класса.
— необходимо создать «новый» экземпляр класса. чтобы использовать метод экземпляра. напр. const newCar = new Car("BMW", "M3")
— может вызываться как метод объекта ex. newCar.method()
— «Это» внутри метода экземпляра относится к конкретному отдельному объекту.
напр. this.method() будет интерпретироваться как newCar.method()

Например, я использовал метод экземпляра класса Car, который называется renderCar(). Это использовалось для получения данных и формата отдельного объекта в HTML для последующего добавления в DOM. Это остается исключительным только для определенного объекта.

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

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