State Of Javascript 2019 🔥
Тренды, Фреймворки, Зарплаты
Скандалы, Интриги, Расследования
https://t.co/qcbd2kkHKK?amp=1
Тренды, Фреймворки, Зарплаты
Скандалы, Интриги, Расследования
https://t.co/qcbd2kkHKK?amp=1
Stateofjs
The State of JavaScript 2019
Discover the most popular JavaScript features & technologies of the year.
Это что на JavaScript?
Brain.js - библиотека для создания нейронных сетей, написана на JavaScript. Работает в браузерах и в node.js. Есть GPU ускорение. Быстрая, простая и легкая в использовании библиотека.
https://github.com/BrainJS/brain.js
Brain.js - библиотека для создания нейронных сетей, написана на JavaScript. Работает в браузерах и в node.js. Есть GPU ускорение. Быстрая, простая и легкая в использовании библиотека.
https://github.com/BrainJS/brain.js
GitHub
GitHub - BrainJS/brain.js: 🤖 GPU accelerated Neural networks in JavaScript for Browsers and Node.js
🤖 GPU accelerated Neural networks in JavaScript for Browsers and Node.js - BrainJS/brain.js
Библиотека для работы со всякими математическими штуками, например можно легко переводить разные градусы Цельсия в Фаренгейта, дюймы в сантиметры и т.п.
Можно сказать, что это инженерный калькулятор на javascript.
https://github.com/josdejong/mathjs
Можно сказать, что это инженерный калькулятор на javascript.
https://github.com/josdejong/mathjs
GitHub
GitHub - josdejong/mathjs: An extensive math library for JavaScript and Node.js
An extensive math library for JavaScript and Node.js - josdejong/mathjs
Github Trending #4
- https://github.com/nuxt/nuxt.js - Vue.js Meta Framework to create complex, fast & universal web applications quickly.
- https://github.com/laurent22/joplin - Joplin - an open source note taking and to-do application with synchronization capabilities for Windows, macOS, Linux, Android and iOS. Forum: https://discourse.joplinapp.org/ https://joplinapp.org
- https://github.com/gatsbyjs/gatsby - Build blazing fast, modern apps and websites with React https://www.gatsbyjs.org
- https://github.com/renovatebot/renovate - Universal dependency update tool that fits into your workflows. https://renovatebot.com
- https://github.com/typicode/json-server - Get a full fake REST API with zero coding in less than 30 seconds (seriously)
- https://github.com/vuejs/vue-test-utils - 🔬 Utilities for testing Vue components https://vue-test-utils.vuejs.org
- https://github.com/scullyio/scully - The Static Site Generator for Angular apps
#github_trending
- https://github.com/nuxt/nuxt.js - Vue.js Meta Framework to create complex, fast & universal web applications quickly.
- https://github.com/laurent22/joplin - Joplin - an open source note taking and to-do application with synchronization capabilities for Windows, macOS, Linux, Android and iOS. Forum: https://discourse.joplinapp.org/ https://joplinapp.org
- https://github.com/gatsbyjs/gatsby - Build blazing fast, modern apps and websites with React https://www.gatsbyjs.org
- https://github.com/renovatebot/renovate - Universal dependency update tool that fits into your workflows. https://renovatebot.com
- https://github.com/typicode/json-server - Get a full fake REST API with zero coding in less than 30 seconds (seriously)
- https://github.com/vuejs/vue-test-utils - 🔬 Utilities for testing Vue components https://vue-test-utils.vuejs.org
- https://github.com/scullyio/scully - The Static Site Generator for Angular apps
#github_trending
Channel name was changed to «Math.random(): javascript community»
Это что на javascript?
Удивительный проект, написаный на javascript - система оптического распознавания символов (OCR). Работает в браузере (!) и в node.js. Распознает 100+ языков!
https://github.com/naptha/tesseract.js
Удивительный проект, написаный на javascript - система оптического распознавания символов (OCR). Работает в браузере (!) и в node.js. Распознает 100+ языков!
https://github.com/naptha/tesseract.js
GitHub
GitHub - naptha/tesseract.js: Pure Javascript OCR for more than 100 Languages 📖🎉🖥
Pure Javascript OCR for more than 100 Languages 📖🎉🖥 - naptha/tesseract.js
Новая статья от адепта RxJS, нашего постоянного автора и активного участника нашего комьюнити.
О чем статья:
О том как при помощи синтаксиса регулярных выражений реализовать drag-n-drop в RxJS:
/DM*U/.exec(
mouseDown$,
mouseMove$,
mouseUp$
)
https://dev.to/kosich/regexp-for-reactive-streams-143g
#костины_истории
О чем статья:
О том как при помощи синтаксиса регулярных выражений реализовать drag-n-drop в RxJS:
/DM*U/.exec(
mouseDown$,
mouseMove$,
mouseUp$
)
https://dev.to/kosich/regexp-for-reactive-streams-143g
#костины_истории
DEV Community
RegExp syntax for Observables: Never Been Easier!
Imagine we need to implement a drag-n-drop behavior. For that, we have three event streams: mousemov...
Продолжаем говорить о функциональном программировании и сегодня речь пойдет о следующих терминах: композиция функций, каррирование и авто-каррирование.
Композиция функций (Function Composition) - соединение функций для формирования новой функции, в которой результат первой функции передается в качестве аргумента во вторую функцию. Математически это выглядит так:
Каррирование(Curring) - конвертация функции из функции, которая принимает несколько входящих аргументов, в функцию, которая принимает один аргумент за раз.
Каждый раз вызывая функцию с одним аргументом, мы получаем новую функцию, до тех пор пока не получим все аргументы:
Сегодня в ссылке отличный видео курс по функциональному программированию.
#функциональное_программирование
Композиция функций (Function Composition) - соединение функций для формирования новой функции, в которой результат первой функции передается в качестве аргумента во вторую функцию. Математически это выглядит так:
F(x) = g(f(y))
В коде так:
const compose = (f, g) => (a) => f(g(a)) // Definition
const floorAndToString = compose((val) => val.toString(), Math.floor) // Usage
floorAndToString(121.212121) // '121'
Каррирование(Curring) - конвертация функции из функции, которая принимает несколько входящих аргументов, в функцию, которая принимает один аргумент за раз.
Каждый раз вызывая функцию с одним аргументом, мы получаем новую функцию, до тех пор пока не получим все аргументы:
const sum = (a, b) => a + b
const curriedSum = (a) => (b) => a + b
curriedSum(40)(2) // 42.
const add2 = curriedSum(2) // (b) => 2 + b
add2(10) // 12
Автоматическое каррирование (Auto Currying) - преобразование функции, принимающей несколько аргументов, в новую функцию. В новой функции, если передавать меньшее количество аргументов, то она вернет новую функцию, которая ожидает оставшиеся аргументы. В популярном фреймворке ramda есть специальная функция curry, реализующая автоматическое каррирование.
const add = (x, y) => x + y
const curriedAdd = _.curry(add)
curriedAdd(1, 2) // 3
curriedAdd(1) // (y) => 1 + y
curriedAdd(1)(2) // 3
Сегодня в ссылке отличный видео курс по функциональному программированию.
#функциональное_программирование
Давайте поговорим сегодня о новых терминах функционального программиста: идемпотентность, предикат и бесточечная нотация.
Идемпотентность (idempotent) - функция идемпотента если ее повторное использование не меняет результат.
Предикат (predicate) - функция, которая возвращает булево значение в зависимости от передаваемого значения, в качестве примера можно привести callback функции в filter.
Бесточечная нотация (Point-Free Style) - стиль написания функций, при котором не явно указывается количество используемых аргументов. Такая нотация часто используется для каррирования или для других функций высшего порядка.
Функция
Определения с бесточечной нотацией выглядят как обычные присваивания без
#функциональное_программирование
Идемпотентность (idempotent) - функция идемпотента если ее повторное использование не меняет результат.
f(f(x)) ≍ f(x)
Math.abs(Math.abs(10))
sort(sort(sort([2, 1])))
Предикат (predicate) - функция, которая возвращает булево значение в зависимости от передаваемого значения, в качестве примера можно привести callback функции в filter.
const predicate = (a) => a > 2
;[1, 2, 3, 4].filter(predicate) // [3, 4]
Бесточечная нотация (Point-Free Style) - стиль написания функций, при котором не явно указывается количество используемых аргументов. Такая нотация часто используется для каррирования или для других функций высшего порядка.
// Given
const map = (fn) => (list) => list.map(fn)
const add = (a) => (b) => a + b
// Then
// Not points-free - `numbers` is an explicit argument
const incrementAll = (numbers) => map(add(1))(numbers)
// Points-free - The list is an implicit argument
const incrementAll2 = map(add(1))
Функция
incrementAll
определяет и использует параметр numbers
, так что она не использует бесточечную нотацию. incrementAll2
просто комбинирует функции и значения, не упоминая аргументов. Она использует бесточечную нотацию.Определения с бесточечной нотацией выглядят как обычные присваивания без
function
или =>
.#функциональное_программирование
Совет профессионала:
Избегайте релизить ваше ПО. Просто оставьте все на localhost.
Релизы приводят к неизбежным проблемам не только в праздники и выходные, но и в рабочие дни.
Избегайте релизить ваше ПО. Просто оставьте все на localhost.
Релизы приводят к неизбежным проблемам не только в праздники и выходные, но и в рабочие дни.
Очередной проект написанный на javascript, который может быть полезен в повседневной жизни.
Wiki для команды - легко с Outline.
https://github.com/outline/outline
Wiki для команды - легко с Outline.
https://github.com/outline/outline
GitHub
GitHub - outline/outline: The fastest knowledge base for growing teams. Beautiful, realtime collaborative, feature packed, and…
The fastest knowledge base for growing teams. Beautiful, realtime collaborative, feature packed, and markdown compatible. - outline/outline
Применение Saga паттерна для работы с побочными эффектами - https://redux-saga.js.org