🇺🇦 Math.random(): javanoscript community – Telegram
🇺🇦 Math.random(): javanoscript community
1.14K subscribers
363 photos
8 videos
530 links
Download Telegram
Очередной проект, написанный на JavaScript. jExcel это vanilla javanoscript плагин, который строит таблицы в браузере, может отображать данные из массива объектов, JSON, CVS и XSLX файлов.
https://bossanova.uk/jexcel
⁠Продолжаем серию постов о функциональном программировании, сегодня поговорим о морфизмах: эндоморфизм и изоморфизм. Любой морфизм (Morphism) это преобразующая функция. Рассмотрим по порядку, какие преобразующие функции бывают:

Эндоморфизм (Endomorphism) - преобразующая функция, в которой тип входящего параметра такой-же как и результат выполнения функции:
// uppercase :: String -> String
const uppercase = (str) => str.toUpperCase()

// decrement :: Number -> Number
const decrement = (x) => x - 1

Изоморфизм (Isomorphism) - парное преобразование между двумя типами объектов, которые являются структурными и данные в преобразованиях не теряются.

Пример, данные о координатах точки в декартовой системе координат можно хранить в виде массива [0, 1] или объекта {x:0, y:1}:

//
Providing functions to convert in both directions makes them isomorphic.
const pairToCoords = (pair) => ({x: pair[0], y: pair[1]})

const coordsToPair = (coords) => [coords.x, coords.y]

coordsToPair(pairToCoords([1, 2])) // [1, 2]

pairToCoords(coordsToPair({x: 1, y: 2})) // {x: 1, y: 2}
Се
годня в ссылке проект, который позволяет делать преобразования данных по схеме. Может понадобиться при разработке для быстрого извлечения и представления данных.
serverless-offline - эмулятор сервисов AWS λ и API Gateway. Пригодится для разработки serverless приложений локально, во время разработки не нужно долго выкладывать в облако и отлаживать ваши функции.
Список концептов для чистого кода, адаптированных для JavaScript. Репозиторий можно использовать как основу для правил написания кода на проекте.

https://github.com/ryanmcdermott/clean-code-javanoscript
Иллюстрация из книги 40+ летней давности. Рубрика «забытые знания древних».
Инструмент для автоматизации версионирования и публикации ваших npm пакетов. Я бы сказал, что semantic release - это золотая серия npm.

https://semantic-release.gitbook.io/semantic-release/
Ребят, у нас остались буквально последние 13 билетов на первую в этом году встречу, что состоится уже в эту среду, 22 января. Ждем в гости Мартина Чаова (Software Architect SBTech) и Александра Поштарука (Senior front-end developer ITecGurus). Так что, как говорится, налетай торопись 😉 https://2event.com/en/events/1855761
Функциональное программирование, в прошлый раз мы говорили о морфизмах: эндоморфизм и изоморфизм. Сегодня продолжим говорить о морфизмах: гомоморфизм (homomorphism) .


Пусть (M, ⋅M, eM) и (N, ⋅N, eN) — два произвольных моноида (о моноидах мы говорили ранее). Функция h: MN называется гомоморфизмом (homomorphism), если h(xM y) = h(x) ⋅N h(y) для любых x и y из M, и h(eM) = eN.

f(a * b) = f(a) * f(b)

A.of(f).ap(A.of(x)) == A.of(f(x))

Either.of(_.toUpper).ap(Either.of("oreos")) == Either.of(_.toUpper("oreos"))



Примеры гомоморфизмов:

- Суммирование элементов списка чисел, произведение элементов списка чисел, нахождение минимального и максимального элементов списка чисел можно рассматривать как списочные гомоморфизмы hom(+, id, 0), hom(⋅, id, 1), hom(max, id, −∞) и hom(min, id, +∞) соответственно. Подобные списочные гомоморфизмы, у которых второй параметр является тождественным отображением id, будем коротко записывать reduce(⋅, e).

- Функция length, вычисляющая длину списка, является списочным гомоморфизмом hom(+, one, 0), где one(x) = 1.

- Функция, которая применяет некоторую функцию f к каждому элементу списка, тоже является списочным гомоморфизмом, а именно hom(++, g, []), где g(x) = [f(x)]. Такие функции будем коротко записывать как map(f).

- Функцию сортировки тоже можно представить в виде списочного гомоморфизма. А именно, пусть merge — функция слияния двух упорядоченных списков, list(x) = [x] — функция, превращающая элемент в одноэлементный список. Тогда гомоморфизм hom(merge, list, []) будет искомым списочным гомоморфизмом.


Уфф... сегодня получилось много математики в описании гомоморфизма, чтобы окончательно взорвать мозг в ссылке библиотека, которая haskell-style морфизмы портирует для javanoscript
Список пунктов, которые нужно сделать перед тем как запускать свой сайт.

https://frontendchecklist.io/
Продолжая тему нашей вчерашней встречи о росте синьерити: 32 совета веб разработчикам для того, чтобы рости над собой в 2020 году

https://medium.com/better-programming/32-tips-for-every-web-developer-in-2020-782fd6554f0d
Для участников нашего сообщества промо код со скидкой на fwdays: gseniority_fwdays
С чего начать изучение того или иного фреймворка, языка, библиотеки? Конечно с документации!
А потом, хорошо бы увидеть реальный пример использования выбранной технологии. По ссылке примеры реализации приложения на разных технологиях.

https://github.com/gothinkster/realworld
Уважаемые друзья! Хотелось бы узнать ваше мнение о том, что интересно видеть в нашем канале, выберите из списка или напишите в чате
Anonymous Poll
30%
Github tranding дайджест
68%
Интересные проекты из мира JavaScript
57%
Ссылки на статьи
26%
Мемасики
12%
Гифки
30%
Функциональное программирование
22%
Промо-коды конференций
1%
Свой вариант - напишу в чате
🇺🇦 Math.random(): javanoscript community pinned «Уважаемые друзья! Хотелось бы узнать ваше мнение о том, что интересно видеть в нашем канале, выберите из списка или напишите в чате»
Библиотека, для создания анимаций с учетом законов физики. В ссылках снизу github репозиторий и react-spring визуализация.
https://www.react-spring.io/