Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Collection v5 (https://javascript.ru/forum/project/47717-collection-v5.html)

kobezzza 11.06.2014 21:51

Цитата:

for/of поддерживает даже итератор протокол.
Я бы мог поспорить, но не буду, т.к. устал доказывать, юзайте циклы :)

Цитата:

Может сделать микро-либу только для ноды?
Зачем думать в ноде о размере файла ? Оо

monolithed 11.06.2014 21:59

Цитата:

Сообщение от kobezzza
Я бы мог поспорить, но не буду, т.к. устал доказывать, юзайте циклы

Да я не и не хотел спорить, что там с for/of не так? :)
Цитата:

Сообщение от kobezzza
Зачем думать в ноде о размере файла ? Оо

В lodash кроме extend я ничего не использую, поэтому и не понимаю зачем там все остальное...

kobezzza 11.06.2014 22:05

Цитата:

Да я не и не хотел спорить, что там с for/of не так?
вот и юзай его :)

monolithed 11.06.2014 22:08

Цитата:

Сообщение от kobezzza
вот и юзай его

Я не понимаю твоего сарказма, что в нем не так?
break, continue, @@iterator, yield, есть, условные выражения, что еще нужно?

Вижу только один минус — hasOwnProperty вроде не проверяет и @@iterator для строк хотят убрать

А вообще мне нода очень сильно не нравится..... полдня искал нормальный вотчер для файлов, около двадцати проектов выкинул в поймоку, т.к. они либо не работают, либо работают криво, в итоге остановился на chokidar

kobezzza 11.06.2014 22:15

Цитата:

Я не понимаю твоего сарказма, что в нем не так?
break, continue, @@iterator, yield, есть, условные выражения, что еще нужно?
Кроме того, что мне придётся снова и снова описывать рутину, раздувать код неведомой хренью... рано или поздно ты начнёшь создавать хелперы и через несколько лет придумаешь свой Collection :D

// Вернуть массив элементов исходной коллекции, которые
$C(new Map(...)).get({
    reverse: true, // В обратном порядке
    startIndex: 10, // Начиная с 10-го итерационного индекса
    from: 5, // Пропустить 5 успешных итераций
    count: 10 // Не более 10 успешных итераций (не считая from),
    filter: 'unique && !odd' // Только уникальные не чётные элементы
})


Напиши это на for of и ужаснись. А вообще давай не будем спорить, можешь не отвечать.

monolithed 11.06.2014 22:32

Цитата:

Сообщение от kobezzza
А вообще давай не будем спорить

Спор тут не уместен.
Я просто хочу услышать от тебя, насколько часто ты сам используешь такие алгоритмические "цепочки" и на каких задачах ты понял что нужен Collection?

kobezzza 11.06.2014 22:36

Цитата:

Я просто хочу услышать от тебя, насколько часто ты сам используешь такие алгоритмические "цепочки"?
Я юзаю постоянно и везде, я уже неск лет юзаю циклы крайне редко, т.к. функциональное программирование (ИМХО) гораздо лучше.

Данный пример выдран из контекста, где идёт реализация пагинации.

Цитата:

и на каких задачах ты понял что нужен Collection?
Было это очень давно, императивщина угнетала меня, началось с того, что меня взбесило постоянно писать hasOwnProperty, и я написал хелпер forIn, потом другой, потом третий первые 2 версии Collection были похожи на lodash - клоака хелперов из 100500 методов. Потом я стал это дело причёсывать: сократил количество методов выделив базисные и снабдив их параметрами, добавил полиморфизма, потом ещё мне нужна была синхронизация с локальным хранилищем - вкрутил и её. Collection родился под влиянием проектов над которыми я работал и работаю.

monolithed 11.06.2014 22:40

Цитата:

Сообщение от kobezzza
я уже неск лет юзаю циклы крайне редко

Я уже несколько лет крайне редко вообще что-то итерирую :D
Цитата:

Сообщение от kobezzza
т.к. функциональное программирование (ИМХО) гораздо лучше.

Истинная любовь к ФП приходит после знакомства с Erlang, Haskell или F#:)

kobezzza 12.06.2014 22:03

Выпустил апдейт v5.0.2.

Главное нововведение: это новая сборка collection.light, которая включает в себя только набор основных итераторов и весит ~9кб (т.е. почти в 2 раза меньше полной сборки).

kobezzza 15.06.2014 23:31

Выпустил апдейт 5.0.3. Теперь для обхода объекта, если не задан флаг notOwn и доступен нативный Object.keys применяется стратегия: keys + for, что дало заметный прирост производительности.


Часовой пояс GMT +3, время: 17:07.