Code Monkey home page Code Monkey logo

yandex-test's Introduction

Тестовое задание в школу Node.js Яндекса.

Запуск

Для запуска тестового задания необходим небольшой сервер nginx или же запуск из IDE WebStorm/Idea (что, собственно, очевидно, ведь загрузка локальных файлов посредством AJAX заблокирована политикой CORS из Google Chrome). Альтернативным методом является запуск Google Chrome с параметрами --disable-web-security --user-data-dir, что отлючит проверку Cross-Origin. Ну, или используйте другой браузер.

Работа

Работа приложения протестирована на latest Chrome с операционной системой Windows 10. Технологии, используемые в разработке присутствовали в этом браузере на момент написания. Приложение инициализурется и работает сразу после открытия. В глобальной области видимости присутствует объект MyForm, который отвечает за работу с формой. Для реализации AJAX используется XmlHttpRequest, обернутый в native Promises. Можно и использовать isomorphic fetch, но он еще хуже работает с файловой системой. Глобальный объект MyForm был написан с использованием ES6 Classes, потому что "почему бы и нет?". По желанию могу переписать на прототипы, хоть классы это всего лишь синтаксический сахар. Promise был использован исключительно для легкого украшения кода и может быть спокойно удален по одному лишь требованию.

Вопросы к "редакции"

  • В задании не были описаны способы переключения action формы, потому, я полагаю, будет переключение через Chrome Dev Tools, что, в принципе, работает.
  • Также в задании не было описано, требуется ли отправка данных на сервер и если требуется, то каким методом. Потому я решил это сам и выставил метод POST и отправляю данные в формате multipart/form-data только потому, что это быстро и легко. Парсить параметры в queryString я посчитал избыточным, потому не стал этого делать.
  • Ничего не было сказано про дизайн и наличие CSS, потому этот аспект я так же взял на себя и минимально оформил форму, чтобы она не выглядела ну уж совсем страшно.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.