Привет, читатель! Обновленная версия этой статьи (и всех моих статей) доступна бесплатно на моем сайте: victoria.dev - Спасибо за внимание!

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

Хорошо, а как насчет этого: я научу тебя готовить паэлью!

И вы узнаете, как написать функцию, которая выполняет то, что я упомянул выше, точно так же, как я сделал для этого челленджа freeCodeCamp.

Я обещаю, что это всеобъемлющий моральный урок, который будет приносить вам пользу каждый день всю оставшуюся жизнь. Или, по крайней мере, накормить на одну ночь. Давайте начнем.

Единственное, что я знаю о паэлье, это то, что это смайлик.

Одна из моих любимых вещей в сегодняшней жизни в мире - это то, что совершенно нормально ничего не знать о чем-то. Сто лет назад вы могли прожить всю свою жизнь, ничего не зная о паэлье, кроме того, что это смайлик. * Но сегодня? Вы можете просто поискать.

* Это была шутка.

Как и во всем в жизни, когда мы не уверены, мы обращаемся к Интернету. В данном случае запись в Википедии о паэлья гласит:

«Паэлья… это валенсийское блюдо из риса. Паэлья имеет древние корни, но ее современная форма возникла в середине 19 века недалеко от лагуны Альбуфера на восточном побережье Испании, рядом с городом Валенсия. Многие не испанцы считают паэлью национальным блюдом Испании, но большинство испанцев считают ее региональным валенсийским блюдом. Валенсийцы, в свою очередь, считают паэлью одним из своих отличительных символов.

Типы паэльи включают валенсийскую паэлью, вегетарианскую / веганскую паэлью (испанский: paella de verduras), паэлью с морепродуктами (испанский: paella de marisco), смешанную паэлью (испанский: paella mixta) и многие другие ». - Википедия

На данный момент у вас, вероятно, полно вопросов. Мне нужно поговорить с валенсийцем? Стоит ли мне пройти онлайн-курс по истории Испании? Какую паэлью мне попробовать приготовить? Что думают современные повара о типах паэльи?

Если вы решите ответить на все эти вопросы, одно можно сказать наверняка: вы никогда не станете готовить паэлью. Вы будете час за часом вводить вопросы в поисковые системы, а спустя годы вы проснетесь с мастером валенсийской кухни.

Метод «Самый важный вопрос»

Когда я публично разговариваю с собой вслух (разве не все?), Я называю это «MIQ» (рифмуется с «Ник»). Я также представляю себе MIQ как хрустящую и очаровательную антропоморфную лепешку из тортильи. Не могу сказать почему.

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

Какого объема цели я хочу достичь?

Ну, ты хочешь приготовить паэлью.

Следующая MIQ тогда будет такой: сколько мне действительно нужно знать о паэлье, чтобы начать ее готовить?

Вы слышали этот совет раньше: любую серьезную проблему можно разбить на несколько, но более решаемых, незначительных проблем. В этом небольшом созвездии небольших проблем есть только одна, которую вам нужно решить, чтобы получить большую часть пути к полному решению.

В случае приготовления паэльи нам понадобится рецепт. Это небольшая проблема, которую поисковая система может решить за нас:

Простой рецепт паэльи

В миске среднего размера смешайте 2 столовые ложки оливкового масла, перец, орегано, соль и перец. Добавьте кусочки курицы, чтобы они покрылись слоем корки. Накройте и поставьте в холодильник.

Нагрейте 2 столовые ложки оливкового масла в большой сковороде или сковороде для паэльи на среднем огне. Добавьте чеснок, хлопья красного перца и рис. Готовьте, помешивая, чтобы покрыть рис маслом, около 3 минут. Добавьте шафран, лавровый лист, петрушку, куриный бульон и цедру лимона. Доведите до кипения, накройте крышкой и уменьшите огонь до средне-слабого. Варить на медленном огне 20 минут.

Тем временем нагрейте 2 столовые ложки оливкового масла в отдельной сковороде на среднем огне. Добавьте маринованные курицу и лук; варить 5 минут. Добавьте болгарский перец и колбасу; варить 5 минут. Добавьте креветки; варить, переворачивая креветки, пока обе стороны не станут розовыми.

Выложите рисовую смесь на сервировочный поднос. Сверху полейте смесью мяса и морепродуктов. (Allrecipes.com)

И вуаля! Вы не поверите, но мы уже прошли большую часть пути.

Большая часть работы - это набор простых для понимания пошаговых инструкций. Все, что осталось, - это собрать ингредиенты и приготовить паэлью. С этого момента ваши MIQ могут становиться все меньше и больше, и они могут постепенно уменьшаться в значимости по отношению к общей проблеме. (Где купить перец? Как узнать, что колбаса приготовлена? Как установить таймер на телефоне на 20 минут? Как перестать думать об этом восхитительном запахе? Какой фильтр Instagram лучше всего улавливает экстаз от этой паэльи правильно Теперь?)

Я до сих пор ничего не знаю о вычислении орбитальных периодов спутников

Хорошо. Давайте исследуем проблему:

Верните новый массив, который преобразует среднюю высоту элемента в их орбитальные периоды.

Массив будет содержать объекты в формате {name: ‘name’, avgAlt: avgAlt}.

Вы можете прочитать об орбитальных периодах в Википедии.

Значения следует округлить до ближайшего целого числа. Обращаемое тело - это Земля.

Радиус Земли составляет 6367,4447 км, а значение гравитационной массы (ГМ) Земли составляет 398600,4418 км3 / с.

orbitalPeriod([{name : "sputnik", avgAlt : 35873.5553}]) должен вернуть [{name: "sputnik", orbitalPeriod: 86400}].

Что ж, оказывается, для того, чтобы рассчитать орбитальный период спутников, нам также понадобится рецепт. Удивительные вещи, которые вы можете найти в наши дни в Интернете.

Любезно предоставлено dummies.com (ага! #Noshame), вот наш рецепт:

Это может показаться довольно сложным. Но, как мы уже видели, нам просто нужно ответить на следующий MIQ: сколько мне действительно нужно знать об этой формуле, чтобы начать ее использовать?

В случае с этой проблемой не так уж и много. Нам уже дан earthRadius, а avgAlt является частью нашего объекта arguments. Вместе они образуют радиус r. С помощью пары поисковых запросов и некоторого мысленного путешествия во времени к элементарному уроку математики мы можем описать эту формулу на небольшом английском языке:

T, орбитальный период, равен 2, умноженному на Pi, в свою очередь, умноженному на квадратный корень из радиуса r в кубе, деленный на гравитационную массу, GM.

JavaScript имеет свойство Math.PI, а также функцию Math.sqrt() и функцию Math.pow(). Используя их в сочетании с простыми вычислениями, мы можем представить это уравнение в одной строке, присвоенной переменной:

var orbitalPeriod = 2 * Math.PI * (Math.sqrt(Math.pow((earthRadius + avgAlt), 3) / GM));

Шиворот навыворот:

  1. Добавьте earthRadius и avgAlt
  2. Куб результат шага 1
  3. Разделите результат шага 2 на GM
  4. Извлеките квадратный корень из результата шага 3.
  5. Умножьте 2 раза Пи на результат шага 4.
  6. Присвойте возвращаемое значение orbitalPeriod

Вы не поверите, но мы уже прошли большую часть пути.

Следующая MIQ для этой задачи - взять объект arguments, извлечь необходимую нам информацию и вернуть результат нашего уравнения в требуемом формате. Есть несколько способов сделать это, но мне нравится простой for цикл:

function orbitalPeriod(arr) {
   var resultArr = [];
   for (var teapot = 0; teapot < arguments[0].length; teapot++) {
     var GM = 398600.4418;
     var earthRadius = 6367.4447;
     var avgAlt = arguments[0][teapot]['avgAlt'];
     var name = arguments[0][teapot]['name'];
     var orbitalPeriod = 2 * Math.PI * (Math.sqrt(Math.pow((earthRadius + avgAlt), 3) / GM));
     var result = {
       name: name,
       orbitalPeriod: Math.round(orbitalPeriod)
     }
     resultArr.push(result);
   }
   return resultArr; 
}

Если вам нужно освежить в памяти итерации по массивам, прочтите мою статью об итерациях с использованием массивов для завтрака! (5 минут на прочтение)

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

Tl; dr: всеобъемлющий моральный урок

Будь то кулинария, программирование или что-то еще, проблемы сначала могут показаться запутанными, непреодолимыми или просто скучными. Если вы столкнулись с такой проблемой, просто помните: они намного удобоваримее с небольшими микросхемами MIQ.

Спасибо за прочтение!

Если вам понравилась эта статья, я хотел бы знать! Оставьте отзыв или напишите мне об этом в Твиттере. Если вы хотите, чтобы это прочитали и другие, нажмите, чтобы аплодировать!

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