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

kobezzza 04.06.2015 17:49

Цитата:

Сообщение от cyber (Сообщение 373839)
kobezzza, слушай, для чего нужен этот код ?)
https://github.com/kobezzza/Collecti...Fcore%2Fgcc.js
Просто на первый взгял это выглядит безсмысленно
_.any = function (val) {
	return val;
};

Это трюк для GCC, для приведения типов, в рантайме он не используется.

cyber 04.06.2015 17:57

Цитата:

Сообщение от kobezzza
Это трюк для GCC, для приведения типов

Можно подробнее?

kobezzza 04.06.2015 18:26

Цитата:

Сообщение от cyber (Сообщение 373844)
Можно подробнее?

http://javascript.ru/forum/node-js-i...tml#post346002

ТОТ_САМЫЙ 24.10.2015 03:55

Цитата:

Сообщение от kobezzza
Пример, функция которая преобразовывает dash-style в camelCase

лол, а вот код из тулбокса юишки

toJsStyle: (string)->
		if @isJsStyle(string)
			return string

		return string.trim().toLowerCase().replace /\-(\w)/img, (match, word)->
			return word.toUpperCase()


	toCssStyle: (string)->
		regExp = /[A-Z]/mg
		unless regExp.test(string)
			return string
		return string.trim().replace regExp, (word)->
			return '-' + word.toLowerCase()


	isJsStyle: (string)->
		if string.indexOf('-') isnt -1
			return false
		if string[0].toUpperCase() is string[0]
			return false
		if /[A-Z]/mg.test(string)
			return true
		return false

ТОТ_САМЫЙ 24.10.2015 04:45

Цитата:

Забыл ещё сказать, что Collection при работе в браузере старается запомнить информацию для оптимизации в локальном хранилище и при последующих запусках странички будет сразу работать с скомпилированном кодом, минуя анализ (можно открыть отладчик, развернуть head и увидеть там динамически вставленные теги скрипт).

В node.js пока такое не делается, в планах добавить в 5.1 версии.
ДА ТЫ ПОЕХАВШИЙ)!!! ШИКАРНО! Я ОХРЕНЕЛ АЖ)! Я ДУМАЛ ПРОСТО ТЫ ТАМ ИТЕРАТОРОВ ПОНАПИСАЛ И ВСЕ)), , шиарная идея кэшировать скомпиленные функции в сторджах, стырю эту фишку в выражения юишки котрые тоже компилируются

слыш а попробуй угарнуть, ты не обычную математику используй а бинарные операторы которые в разы быстрее работают))) ну или попробуй на асме написать все в 6 версии)

ну точнее ты можешь либо компилировать в асм функции (если хватит мозгов конечно, но ты умный), либо можешь саму либу написать на асме, и просто внутри обычными сишными циклами все проходить, и ни че компилировать не придется, они и так бинарные. удачи ;)

kobezzza 27.10.2015 13:40

Цитата:

ДА ТЫ ПОЕХАВШИЙ)!!! ШИКАРНО! Я ОХРЕНЕЛ АЖ)! Я ДУМАЛ ПРОСТО ТЫ ТАМ ИТЕРАТОРОВ ПОНАПИСАЛ И ВСЕ))
Ну как минимум ещё удобная абстракция потоков через генераторы.

Цитата:

слыш а попробуй угарнуть, ты не обычную математику используй а бинарные операторы которые в разы быстрее работают)))
Это миф.

Цитата:

ну точнее ты можешь либо компилировать в асм функции (если хватит мозгов конечно, но ты умный), либо можешь саму либу написать на асме, и просто внутри обычными сишными циклами все проходить, и ни че компилировать не придется, они и так бинарные. удачи
Да не, это лишнее, да и времени ща чёто ни на что нет.

nerv_ 27.10.2015 14:07

Цитата:

Сообщение от kobezzza
Это миф.

подтверждаю. Год назад специально изучал этот вопрос.

Цитата:

Сообщение от kobezzza
да и времени ща чёто ни на что нет.

тоже подтверждаю :D

Mаxmaxmаximus 30.10.2015 23:53

Цитата:

Сообщение от nerv_
подтверждаю. Год назад специально изучал этот вопрос.

Но приходил же чувак сюда, либу каку то сувал, там тесты делал, и мы все вначале ржали а потом офигевали, мы еще удивлялись как это мол вызов функии может быть быстрее банального 32323+43434343

kobezzza 11.07.2016 12:48

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

В общем из библиотеки было выкинуто всё, что не относится к итерациям, т.е. сейчас Collection - это микробиблиотека (всего 8кб полная сборка), которая предоставляет единый интерфейс для всех видов коллекций JS + гибкая настройка итераций (диапазон, направление, тип итератора и т.д.). А также Collection предоставляет невероятно удобную абстракцию легковесных потоков основанных на генераторах.

Итак:

1) Выкинута поддержка древних браузеров.
2) Полностью переработаны интерфейсы методов для более удобного использования.
3) Удалён весь "лишний" код, т.е. не относящийся к итерациям.
4) Удалён ряд методов итераций (их функционал делается через оставшиеся методы).
5) Метод filter теперь сам не осуществляет фильтрацию, а добавляет новый фильтр в операцию.

/// Всё будет сделано за один проход
$C(...)
  .filter(...)
  .filter(...)
  .filter(...)
  .filter(...)
  .map(...)


6) Все методы потоков теперь возвращают промисы и их оч удобно юзать с async-await

await $C(...).thread().forEach(...)


Тоже самое касается дочерних потоков.

В общем сегодня выпущу beta.1 и в течении нескольких недель стейбл релиз + дока. Также напишу короткую статью на хабр про реализацию потоков.

cyber 20.07.2016 23:11

kobezzza, я переодически заглядую в твой код, и интересно в чем преймущество использования https://github.com/kobezzza/Collecti...tors/thread.js
все такси всеравно выполняются на одном потоке, или я не так понял?


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