• Виртуальное дерево это и есть сам js?

    @lega
    Ingernirated: читать статьи, проводить исследования, тестировать, общаться с авторами.
    А бумажная литература - в топку, часто устаревает до выхода, куча воды, создано для зарабатывания денег.

    Так же очень полезно делать велосипеды, например маленький прототип реакта/ангуляра. Прокачиваются скилсы и становится понятно почему сделано так, а не иначе и где могут быть проблемы и почему.
  • Идеальная база данных для хранения большого числа уникальных строк?

    @lega
    Forbidden: Монга в первую очередь упирается в io.
    Если индекс один, то на 100млн, нужно ~5Гб оперативы, то есть возможно у вас кончилась память и все начало писаться в своп, а оно будет сильно тормозить, так же и с другими БД.

    Интересно сколько был оверхед?, например на 10Гб данных может использоваться 12-50Гб диска.
  • Как правильно привязать значения к компоненту Vue?

    @lega
    v-model это просто синтаксический сахар для
    Это что-б новичков не грузить, по факту там гораздо больше "мяса".

    изменения отслеживаются в обоих случаях
    перечитайте, я говорю о "не отслеживает изменения option", речь не о value.

    в варианте с компонентом, select "запоминает" selectedIndex, а без компонента - нет...вопрос "почему?"
    Это делает сам браузер (или лучше сказать ничего не делает), если изменить текст/значение в option то selectedIndex не меняется, т.е. для select особо ничего не поменялось. Поэтому позиция остается на месте.

    А вариант с v-model, директива отслеживает изменение дочерних option и обновляет select.

    Итого: v-model работает правильно - сбрасывает значение, а :value не правильно - рассинхронизация DOM и модели.
  • Идеальная база данных для хранения большого числа уникальных строк?

    @lega
    Forbidden: И это ключевые вопросы на данном пути, если вы по нему пойдете.
    Большие компании не редко пилят (допиливают) что-то свое чтобы получить максимум.

    Кстати коллизии же можно обруливать, есть несколько способов, например если X и Y дают один хеш 15,
    то первый записанный X забирает 15, при записи Y видим, что 15 занято другим текстом, и берем следующий свободный 16 или 17, это запись.
    Поиск по ид будет как есть, а поиск по тексту так же как и запись: делаем хеш (ид) от текста, если текст по ид не совпал проверяем следующее значение, если совпало - значит оно, если нет - берем следующее, если следующей записи нет - значит такого текста в базе нет совсем.
    Как написал nirvimel при int64 будет немного таких случаев.
  • Идеальная база данных для хранения большого числа уникальных строк?

    @lega
    Forbidden: Можно поэксперементировать: levelDB, ключ - link, а id - это физический адрес строки в файле, итого есть поиск по link и id, id - числовой.
  • Идеальная база данных для хранения большого числа уникальных строк?

    @lega
    nirvimel: Наоборот подтверждает - "While character(n) has performance advantages", и ещё говорит что все 3 типа тормозные в постгресе.

    1) Если берете фиксированную колонку - то лишний расход памяти и производительности (because of its additional storage costs)
    2) Если берете плавающую - то данные дробятся, заголовки в одном месте + часть данных (в некоторых БД), остальная часть хранится в другом месте, итого тормоза из-за того что бегать в разные места (io).

    Нужен чанковый подход как в MongoDB без 1 и 2-й проблемы, но не такую прожорливую как MongoDB.
  • О какой скорости идёт речь, если react этот тот же самый js?

    @lega
    да, хотя есть не популярные asm.js и webassembly

    если сравнивать скорость выполнения, то максимально оптимизированный вариант на js будет самым быстрым, но не многие смогут такой вариант написать, средний же разработчик на JS сделает результат хуже и медленнее чем средний на нормальном фреймворке, отсюда и профит.
  • О какой скорости идёт речь, если react этот тот же самый js?

    @lega
    Ingernirated: > пример сравнения увидеть двух кодов решающих одну задачу, но с разным подходом?

    todomvc.com
    mathieuancelin.github.io/js-repaint-perfs
  • Можно ли получить запись с одним вложенным элементом?

    @lega
    Илья Караваев: Вообще elemMatch фильтрует и оставляет только нужные элементы, но у вас массив в массиве, поэтому хз.
  • 2 и 3 строка что делает?можно подробнее?

    @lega
    Это по ваше-придуманому ТЗ.

    Отстаиваете подход который сами не применяете, потыкал ваши примеры, не нашел ни одного кода где вы проверяете тип входящих аргументов в функциях.
  • 2 и 3 строка что делает?можно подробнее?

    @lega
    В JS нет статической типизации
    Зато есть duck-typing

    но можно вернуть удобочитаемое сообщение об ошибке) , которое будет понятно пользователю.
    Да, но не для функции изменения строки. У пользователя вообще не должно быть возможности сменить тип перед этой ф-ей, а значит удобочитаемое будет непонятно,
    пример: я ввел имя в поле и тут выскакивает ошибка "это не строка", или я поставил галку и выскакивает "это не строка", где тут что понять?

    если самому не проверять тип аргумента, то будет выявлена ошибка

    а если проверять, то тоже ошибка, ничего не изменилось

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

    Вот аналог:
    function (d) {
      if(!d) throw new Error();
      d.foobar();
    }
    Смысла проверять нет, т.к. оно "проверится" автоматический.
  • 2 и 3 строка что делает?можно подробнее?

    @lega
    // Если передана не строка, то выкинуть исключение

    В данном случае это лишнее, т.к. исходный код тоже выкенет исключение, т.е. сработает аналогично.
    (если не строка, но сработает - возможно это генерик функция)
  • Самые крупные проекты на node.js?

    @lega
    Никакие

    > Какие проекты реализованные на node.js сумели добиться успеха?

    Все компании в списке сначала добились успеха, а уже потом начали экспериментировать с nodejs.
    А самое главное, какая роль отведена ноде, может просто бандлы собирать на сервере.

    Я видел только одну соц сеть которая взяла ноду за основу, хотя стартап уже давно загнулся.

    Иначе, с таким же успехом к вашему списку компаний можно вместо nodejs вписать bash, python, c/c++ (например nginx (linux) написан на с, а его многие/все используют).
  • Какую СУБД лучше выбрать для текстов?

    @lega
    Но если сравнивать с БД (psql), то скорость записи будет примерно так, psql ~1-5k/sec, в файл ssd 200M/2550=~82k/sec, если быстро сжимать в 4 раза, то ~382k/sec, ну и размер компактней будет.
  • Какую СУБД лучше выбрать для текстов?

    @lega
    psql(json), json тут не нужен, тут blob надо, couchdb вроде как не быстрый, про касандру не знаю как она с чанками, вроде она не для этого,
    я хранил чанки в mongodb, сжимал в xs без заголовков, но у меня запросы были диапазонные, в результате я мог выбирать и обрабатывать 16Млн "строк" в сек на одном ядре.

    > Размер чанка кратен размеру сектора.
    > ДатаНомерпотокаНомерчанкаПозиция
    Я думаю чанк тут лишний, тем более погонять под сектора, можно просто: ДатаНомерпотокаПозиция
  • Какую СУБД лучше выбрать для текстов?

    @lega
    Тогда можно попробовать так, пишем в файл подряд, ид формируем по позиции в файле, напр. 20170317_12_56789, имя файла + позиция в файле.

    Итого максимальная скорость записи чтения, и памяти для индекса не надо.
    Может писать в 100* раз быстрее чем посгрес.
  • Какую СУБД лучше выбрать для текстов?

    @lega
    Multigame: текст будет меняться или только добавление без последующего изменения?
  • Какую СУБД лучше выбрать для текстов?

    @lega
    Если хранить отдельный текст в своей строке - посгрес (да и не только) быстро "загнется".

    > Мне чертовски лень тестировать все вариацы
    протестируйте один вариант - расскажите.

    На вскидку текста за месяц будет: 1kk x 24 x 30 = 720M * 2550b = ~1.8Tb диска, памяти для индекса 720M * 40b (25-60b на ключ btree потобных) = ~29Gb

    запросы точечные или диапазонами?
  • Какую СУБД лучше выбрать для текстов?

    @lega
    Для текста? Не забудьте использовать транзакции и джойны.