Неделя создателей 5
После пяти недель обучения в Makers Academy пришло время открыть для себя мир JavaScript, Jasmine (среда тестирования JS) и jQuery. Наш тренер предупредил нас, что поначалу мы можем ненавидеть JavaScript, но как только мы поймем, что мы можем сделать с этим языком, мы найдем его увлекательным. И был ли он прав!
Так каково было писать на JavaScript в первый раз? Мое первое впечатление было, что там много скобок, фигурных скобок и точек с запятой. Возникла путаница вокруг того, что на самом деле представляет собой «прототип», три знака равенства «===» и как заглушить в Jasmine. Ниже приведен снимок нашей программы Fizzbuzz, когда мы только начинали изучать JavaScript.
Мы продолжали сравнивать языки и задавались вопросом, что эквивалентно тому и этому в Ruby. Начиная с того, что мы чувствовали себя очень позитивно и взволнованно по поводу JavaScript в начале недели, он постепенно утомлял нас, поскольку количество синтаксиса сводило нас с ума. Мы все очень скучали по Ruby и начали ценить его простость.
Нас попросили выполнить стандартную задачу Fizzbuzz, затем перевести нашу первую задачу выходного дня (создание авиадиспетчера) и, наконец, создать термостат с использованием JavaScript, HTML/CSS и jQuery. И, как нам и было обещано, все действительно начало меняться.
Нас попросили создать термостат с некоторыми простыми функциями, которые включали в себя температуру по умолчанию 20 градусов, функцию увеличения/уменьшения, минимальную температуру 10 градусов, режим энергосбережения (понижение максимальной температуры) и функцию сброса. Кроме того, он также должен показывать текущее использование энергии в виде «низкого использования», «среднего использования» и «высокого использования».
С точки зрения использования JavaScript и Jasmine это была довольно простая задача. Мы прорабатывали его шаг за шагом, тестируя нашу программу через Jasmine и консоль. С точки зрения функциональности, раньше мы создавали гораздо более сложные программы, поэтому это казалось довольно простым, несмотря на то, что мы использовали язык, с которым познакомились только накануне.
Следующим шагом была реализация программы на HTML/CSS и jQuery. Несмотря на некоторое первоначальное замешательство и колебания, нам удалось связать кнопки, которые мы создали в HTML, с нашей программой JavaScript через jQuery, и здесь началось волшебство…
Мы могли нажимать на разные кнопки, и на экране все начинало меняться. Мы могли нажать «увеличить», «уменьшить», «сбросить», «PSM вкл.» и «PSM выкл.», чтобы использовать термостат и изменять температуру, цвета и отображать изображения в зависимости от температуры. Нам даже удалось внедрить API, чтобы видеть выбранную наружную температуру для всех городов мира!
После многонедельного программирования серверной части у нас наконец появился полнофункциональный интерфейс. Я провел оставшуюся часть недели, сосредоточившись на добавлении дополнительных функций в нашу программу и выполняя задание выходного дня, которое заключалось в создании таблицы результатов боулинга с десятью кеглями (см. скриншот ниже, это еще не конец). Подводя итог, вот уроки этой недели:
Что я узнал и в чем улучшил:
- JavaScript
- Жасмин
- jQuery
- HTML/CSS
- Тестирование в консоли
- Изучение, исследование и изучение нового языка
- Сравнение сходств и различий между языками
- Золотое правило в JS: как только вы открыли скобку, закройте ее.
- Изучение jQuery похоже на изучение магии
О чем я хочу узнать больше:
- Извлечение объектов в JavaScript
- Создание более сложных программ на JavaScript
- Больше jQuery (обожаю!)
- Еще Жасмин (многому еще предстоит научиться)
- Создайте реальный веб-сайт с нуля (у нас никогда не будет времени закончить проект, прежде чем мы двинемся дальше..)
В целом, у меня была замечательная неделя изучения JavaScript, и мне это очень понравилось! Я в восторге от того, что можно сделать с этим языком, объединив его с HTML/CSS и jQuery, и мне нравится использовать эти языки сами по себе, а не встраивать их в Ruby.
Я не совсем понял, лучше ли изучать JavaScript как совершенно новый язык или переводить его с Ruby. Я использовал комбинацию обоих, которые, как мне кажется, лучше всего подходят для меня. Иногда проще провести сравнение, например, сравнить переменную Ruby с переменной JavaScript, чтобы понять различия. Однако большую часть времени я стараюсь сохранять непредубежденность и установку на рост, чтобы изучать и впитывать новые концепции, модели и фреймворки из разных языков. Я верю, что это поможет мне лучше учиться и стать более открытым разработчиком.