Есть очень старая задачка: создать массив N размерности и заполнить его числами от 0 до N. Были времена, когда ее спрашивали на собеседованиях. Сейчас вряд ли кто-то всерьез будет спрашивать про нее на техническом интервью, но в жизни и быту она периодически встречается. Раньше для этих целей использовали сложную конструкцию вида:
Отчасти эта задача и была интересна для собеседования своей “магией”. Если человек мог написать такую конструкцию и объяснить что тут просиходит — он точно знал как работает call, чем отличается от apply, что такое array-like объект, как устроен класс Array в JS и так далее. Сейчас это уже не обязательно, ведь у нас есть ES6+.
С приходом новых стандартов ES2016 и прчих задача стала скучна, а реализация стала более читаемая и идиоматична. Теперь эта же задача может быть решена таким образом:
Спред оператор можно заменить на Array.from(), например и тому подобные:
В итоге задача сошла на нет и ее уже редко где встретишь на собеседовании. А были времена, когда меня такое спрашивали и были времена, когда я не мог ответить на этот вопрос 🙂
Если покопаться, можно найти еще разновидности, но они будут повторять эти базовые концепции. Просто будут другие методы и способы инициализации стартового экземпляра Array.
let n = 10
const arr = Array.apply(null,{length:n}).map(Number.call, Number)
Отчасти эта задача и была интересна для собеседования своей “магией”. Если человек мог написать такую конструкцию и объяснить что тут просиходит — он точно знал как работает call, чем отличается от apply, что такое array-like объект, как устроен класс Array в JS и так далее. Сейчас это уже не обязательно, ведь у нас есть ES6+.
С приходом новых стандартов ES2016 и прчих задача стала скучна, а реализация стала более читаемая и идиоматична. Теперь эта же задача может быть решена таким образом:
const arr = [...Array(n)].map((_,i)=>i)Спред оператор можно заменить на Array.from(), например и тому подобные:
const arr = Array.from(Array(n)).map((_,i)=>i)В итоге задача сошла на нет и ее уже редко где встретишь на собеседовании. А были времена, когда меня такое спрашивали и были времена, когда я не мог ответить на этот вопрос 🙂
Если покопаться, можно найти еще разновидности, но они будут повторять эти базовые концепции. Просто будут другие методы и способы инициализации стартового экземпляра Array.
Небезызвестный Сергей Рубанов aka @chicoxyzzy мне напомнил, что Array.from принимает 2й необязательный аргумент. Так что педпоследний пример можно переписать так:
или так
const arr = Array.from(Array(n), (_, i) => i)или так
const arr = Array.from({ length: n }, (_, i) => i)Во 1х - все таки довел выпуск до финала. Во 2х, теперь есть возможность выпуск слушать не только в SC, на сайте и айтюнс, но и в телеге, прямо тут
Слушать на сайте и в SC: https://radiojs.ru/2018/02/radiojs-51/
Слушать в телеге:
https://news.1rj.ru/str/itradiostream
Слушать на сайте и в SC: https://radiojs.ru/2018/02/radiojs-51/
Слушать в телеге:
https://news.1rj.ru/str/itradiostream
С утра меня сподвигли заглянуть в квест ReturnTrue. Так как я потерял ссылку на свои решения, пришлось бытро проходить по новой. Часть задач ушли во 2й сезон и чтобы их увидеть, нужно теперь решать еще и 2й сезон. И вот пока решал задачи, вдруг осенило, что заполнить числами массив можно еще одним способом (вчера я как раз писал про это):
Вообще подумал, что стоит разобрать челлендж, так как там очень интересные задачи и есть очень сложные. Чего стоит random4. Кстати про рандом - это отдельная тема, которую хочется так же разобрать и обсудить. Но обо всем по порядку…
Кстати, если кто-то не знал, предлагаю порешать https://alf.nu/ReturnTrue
Мой ник MAY✪R. В квесте от меня запушено 4 задачи =)
const arr = [...Array(n).keys()]Вообще подумал, что стоит разобрать челлендж, так как там очень интересные задачи и есть очень сложные. Чего стоит random4. Кстати про рандом - это отдельная тема, которую хочется так же разобрать и обсудить. Но обо всем по порядку…
Кстати, если кто-то не знал, предлагаю порешать https://alf.nu/ReturnTrue
Мой ник MAY✪R. В квесте от меня запушено 4 задачи =)
Очень крутая реализация мимишной формы авторизации. Фишка вся в анимированном аватаре, который следит за действиями. Это шедевр. Сразу захотелось разобраться как это делается и научиться делать похожие
https://codepen.io/dsenneff/pen/QajVxO?editors=1010
https://codepen.io/dsenneff/pen/QajVxO?editors=1010
Если вас интересует возможность построения универсальной архитектуры, которая будет в себе позволять использовать любой фреймворк, для начала стоит ознакомиться с тем, что другие уже успели сделать в этом направлении. Подборка статей на тему Микросервисной архитектуры на клиенте https://goo.gl/JTC9Te
Medium
Микросервисы на фронтенде
Сборник материалов
Получить конфиг файл Nginx, как он видит его или достать данные из памяти - задачи, с которыми может столкнуться веб разработчик (фулстек, девопс, админ, nodejs, etc…). Потеряли все конфиги, а на сервере есть запущенный Nginx, который работает? Не беда, все данные можно восстановить из памяти, но придется помучаться
https://medium.com/@frontman/nginx-tips-tricks-bcd0fe600614
https://medium.com/@frontman/nginx-tips-tricks-bcd0fe600614
Medium
Nginx tips & tricks
Выгружаем конфиг из памяти
Pro WEB & IT via @like
Ответы на эти вопросы в статье: https://goo.gl/V1FXa8
Medium
Случайные числа не случайны
Как создать генератор случайных числе на JS и предсказать Math.random()
Вышел новый выпуск подкаста 5min React. Слушать можно прямо в телеграме https://news.1rj.ru/str/itradiostream
Telegram
IT Radio Streams
Канал радиотрансляций IT-подкастов. Слушайте прямо в Телеграме. Больше никаких приложений. Все в одном месте. Если хотите добавить свой подкаст: пишите @frontdevops
Мысли про мнение Петра Мязина про TS (смотри ссылку на подкаст выше). Петр рассказал хорошую позицию по отношению к TS и да, наверное так оно и нужно. Мне нравится его подход и в чем-то я даже согласен.
Если уходить в хардкор по типам - перестаешь писать код, вместо решения бизнес задачи начинаешь дебажить его, что в условиях стартапа это неприемлемо.
Про проекты: Мое имхо, не пихать TS там, где это замедлит разработку. Лендинги с джиквери - да, не нужно TS. Простой плагин для браузера - не нужно TS. Сложный плагин дл ябраузера - возможно нужно. Парсер чего-то - не факт что нужно. Базовые библиотеки для парсинга для переиспользования - мб нужно.
Сервер на ноде - это уже сервис и, в зависимости от того, что он будет делать и сколько планируется иметь логики - либо нужно, либо нет, но скорее нужно, чем нет. Но, возможно, вместо ноды нужно взять Go, PHP, Python. Тема обширная и я ее постараюсь раскрыть, возможно даже в cледующем выпуске RadioJS.
Если уходить в хардкор по типам - перестаешь писать код, вместо решения бизнес задачи начинаешь дебажить его, что в условиях стартапа это неприемлемо.
Про проекты: Мое имхо, не пихать TS там, где это замедлит разработку. Лендинги с джиквери - да, не нужно TS. Простой плагин для браузера - не нужно TS. Сложный плагин дл ябраузера - возможно нужно. Парсер чего-то - не факт что нужно. Базовые библиотеки для парсинга для переиспользования - мб нужно.
Сервер на ноде - это уже сервис и, в зависимости от того, что он будет делать и сколько планируется иметь логики - либо нужно, либо нет, но скорее нужно, чем нет. Но, возможно, вместо ноды нужно взять Go, PHP, Python. Тема обширная и я ее постараюсь раскрыть, возможно даже в cледующем выпуске RadioJS.
Новости фронтенда: Житель Москвы переписал свою квартиру на Vue.js. К чему это я? А к тому, что 22 марта планируется первый Moscow Vue Meetup. Готовим доклады 🙂
И да, в продолжении предыдущей темы, открылась регистрация на наше мероприятие https://www.meetup.com/vue-js-moscow/events/248462774/
Meetup
Vue.js Moscow Meetup #1 (22.03.2018)
Thu, Mar 22, 2018, 7:00 PM: Ссылка на трансляцию: https://www.youtube.com/watch?v=h9NQs0SEVoAДрузья привет! Рады сообщить о первом московском митапе, посвященном исключительно фреймоврку Vue.js.Наша в
Небольшой пост про итераторы, как альтернативный способ обхода списков, который мало кто использует, но в них есть свяо прелесть. Главное знать, что так тоже можно
https://goo.gl/WN4ymM
https://goo.gl/WN4ymM
Medium
Используем итераторы в JS
Меняем подход к циклам
Сообщество фронтенд подкастеров решили выкладывать выпуски подкастов дополнительно в специальном канале - https://news.1rj.ru/str/itradiostream
Сейчас к этому каналу присоеденились: RadioJS, FW, 5min React, 5min Angular, ФЮ, Девшахта, 5min PHP
Вы можете послушать все свежие выпуски в этом канале или по старинке. Это всего лишь новый источник. Кстати, на телефонах канал превращается в плейлист. Очень удобно.
Сейчас к этому каналу присоеденились: RadioJS, FW, 5min React, 5min Angular, ФЮ, Девшахта, 5min PHP
Вы можете послушать все свежие выпуски в этом канале или по старинке. Это всего лишь новый источник. Кстати, на телефонах канал превращается в плейлист. Очень удобно.
Telegram
IT Radio Streams
Канал радиотрансляций IT-подкастов. Слушайте прямо в Телеграме. Больше никаких приложений. Все в одном месте. Если хотите добавить свой подкаст: пишите @frontdevops
Приведение типов в JS считается одной из сложных тем. Но на самом деле это не так. Нужно выучить всего пару правил и вы сможете легко читать, понимать и предсказывать поведение интепретатора. Данный материал - это подготовительная статья для следущих интересных, про перегрузку и полиморфизм в JS. Но обо всем по порядку
https://goo.gl/dWNxPN
https://goo.gl/dWNxPN
Medium
Приведение типов в JS
Магия или простые правила?
Я очень люблю соревнования по программированию игрового AI. Когда-то, в 2012 участвовал в Russian AI Cup и мне очень нравилась эта инициатива. Сейчас уже нет столько свободного времени, но все же я не пропускаю такие события и , как минимум, заглядываю хотя бы на старте. И вот сейчас пришло письмо о запуске нового сезона MiniAiCup 2: по мотивам игры AgarIO.
Приглашаются к участию все желающие. Регистрация на сайте http://aicups.ru/. Чемпионат будет проходить по мотивам игры Agar.io — двухмерной массово-многопользовательской браузерный игры в жанре экшн.
Стратегии AI можно писать на:
- NodeJS 6
- Go 1.10
- Python 2.7/3.5
- PHP7
- Java 1.8
- C# Mono 4.3
- C++11
Глаза разбегаются. Попробую на Go или Python 3, пока не решил.
Приглашаются к участию все желающие. Регистрация на сайте http://aicups.ru/. Чемпионат будет проходить по мотивам игры Agar.io — двухмерной массово-многопользовательской браузерный игры в жанре экшн.
Стратегии AI можно писать на:
- NodeJS 6
- Go 1.10
- Python 2.7/3.5
- PHP7
- Java 1.8
- C# Mono 4.3
- C++11
Глаза разбегаются. Попробую на Go или Python 3, пока не решил.
Узнаем кто украл место на диске. Bash зарисовки
https://goo.gl/druFwv
https://goo.gl/druFwv
Medium
Узнаем кто украл место на диске
Bash зарисовки
На прошедшем Moscow Vue.js митапе много людей спрашивали меня, где можно оперативно следить за хорошими вакансиями. Отвечаю: есть канал https://news.1rj.ru/str/newhr
В этом канале мы публикуем вакансии из IT и Digital компаний и часто этих вакансий нет на работных сайтах. Мы постим только вакансии от проверенных людей, многих знаем лично. Только лучшее, только отборное!
Плюс, прямые ссылки на работодателей и на их посты с неформальным описанием вакансий.
В этом канале мы публикуем вакансии из IT и Digital компаний и часто этих вакансий нет на работных сайтах. Мы постим только вакансии от проверенных людей, многих знаем лично. Только лучшее, только отборное!
Плюс, прямые ссылки на работодателей и на их посты с неформальным описанием вакансий.
Telegram
NEWHR — решаем задачи бизнеса с помощью найма
NEWHR — международное рекрутинговое агентство
👉 Помогаем решать задачи бизнеса с помощью найма
👉 Делаем публичные и заказные исследования рынка
📩 contact@new.hr
Наш канал про рекрутинг здорового человека: @docrecruiting
👉 Помогаем решать задачи бизнеса с помощью найма
👉 Делаем публичные и заказные исследования рынка
📩 contact@new.hr
Наш канал про рекрутинг здорового человека: @docrecruiting