
Aleh
07.07.2016
15:16:55
преждевременная оптимизация - зло, имхо

Roman
07.07.2016
15:17:14
задуматься то никто не мешает

Nikita
07.07.2016
15:17:30

Aleh
07.07.2016
15:18:00
да, и?)

Google

Nikita
07.07.2016
15:18:45
а хотя я вообще не понимаю к чему ты это скинул
ты как предлагаешь заранее посчитать размер сообщения?

Aleh
07.07.2016
15:19:14
самая простая стратегия понять, сколько сообщений влазит в экран

Nikita
07.07.2016
15:19:25
так ты не поймешь сколько влазит
одно сообщение такое

Aleh
07.07.2016
15:19:45
так поэтому взяли минимум, пускай рендерится на 5 больше сообщений

Nikita
07.07.2016
15:19:49
другое
вот
такое
длинное
при
длинное
сори
за
такую
фигню
в чате))

Aleh
07.07.2016
15:19:51
всяко лучше тысячи)

Nikita
07.07.2016
15:20:08
так ты react-virtualized должен сказать не высоту блока
а высоту 1 item в списке

Владимир
07.07.2016
15:20:39
Так это же текст, какая разница какая у него высота, ты знаешь что минимальный размер сообщения 10 пикселей, ну и от этого отталкиваешься
Она динамичная может быть

Roman
07.07.2016
15:21:57
https://github.com/orgsync/react-list#type-one-of-simple-variable-or-uniform-defaults-to-simple
variable
This type is preferred when the sizes of the items in the list vary. Supply the itemSizeGetter when possible so the entire length of the list can be established beforehand. Otherwise, the item sizes will be cached as they are rendered so that items that are above the viewport can be removed as the list is scrolled.

Google

Nikita
07.07.2016
15:21:58
надо внимательнее посмотреть. Я знаю что есть как минимум два чатика на реакте и там не используются виртуальные списки для сообщений. Мне этого хочется, но пока не представляю как это хорошо сделать

Aleh
07.07.2016
15:21:58
короче, по поводу преждевременного. Ты можешь предпологать заранее, что компонент будет часто меняться или много использоваться или еще чего. Вот только это по итогу может и не стать проблемой производительности, а проблемая будет например сжатие png-шки на клиенте :)

Владимир
07.07.2016
15:23:54
Там пачками грузятся сообщения, условно по 50 штук 3 блока, как только еще 50 надо загрузить первый блок кешируется и удаляется из дома

Nikita
07.07.2016
15:24:01
ну это все понятно) Понятно что если тормозит - нужно профайлить, у меня вообще было, что не js, а браузер из-за плохой верстки тормозил.
но если чего-то можно избежать заранее - лучше этого избежать)

Владимир
07.07.2016
15:25:59
Ты де не знаешь чего можно избежать заранее, требования постоянно меняются, и ты должен поддерживать уже оптимизацию и сам компонент
Не нужно ничего делать пока это не тормозит

Roman
07.07.2016
15:26:35
this ^

Nikita
07.07.2016
15:27:35
я и согласен и не согласен))

Владимир
07.07.2016
15:28:14
Ты станешь единичные компоненты оптимизировать? Например обертку над инпут?

Nikita
07.07.2016
15:29:58

Владимир
07.07.2016
15:30:53
А теминг делаешь?

Nikita
07.07.2016
15:32:09
у компонентов? не у всех. У всех стараюсь дать className просунуть

Владимир
07.07.2016
15:32:55
а если больше 1 класса надо передать ?

Nikita
07.07.2016
15:33:41
и в чем проблема?

Владимир
07.07.2016
15:33:57
сделаешь 10 пропсов ?
в этом наверное

Nikita
07.07.2016
15:34:30
значит дробить компонент надо, если 10 пропсов на классы

Владимир
07.07.2016
15:34:40
вообще не так
дропдаун например

Google

Владимир
07.07.2016
15:35:03
контейнер, выпадающий контейнер, строка - уже 3

Nikita
07.07.2016
15:35:44
ну строка и контейнер прямо заранее разные компоненты

Владимир
07.07.2016
15:36:08
с чего бы это когда это компонент с дроп дауном
какой смысл в такой библиотеке тогда когда ты ее локально собираешь по частям
для ясного примера можно взять реакт-селект

Nikita
07.07.2016
15:37:25
эм, ну такой интерфейс

Владимир
07.07.2016
15:37:39
в котором множество элементов кторые нужно стилизовать

Nikita
07.07.2016
15:37:41
тебя не коробит select-у писать options?

Владимир
07.07.2016
15:38:28
если это нативный селект то нет, если это будет обертка то она будет подразумевать массив с опшенами

Nikita
07.07.2016
15:38:45

Владимир
07.07.2016
15:39:09
что бы не копипастить

Nikita
07.07.2016
15:39:14

Владимир
07.07.2016
15:39:27
ну таких сейчас 99 процентов

Nikita
07.07.2016
15:39:41
плохо, че)
а твое решение-то какое?

Владимир
07.07.2016
15:40:00
прокидывать пропс в котором будут все классы
как в модулях цсс

Nikita
07.07.2016
15:40:43
это из react-bootstrap

Владимир
07.07.2016
15:41:23
это плохой пример
в котором ты не можешь ничего

Google

Nikita
07.07.2016
15:41:43
не могу ничего что?) Аргументации не хватает

Владимир
07.07.2016
15:41:58
изменить стили выпадалки
хочу что бы не ровные границы были а треугольник вверху

Nikita
07.07.2016
15:43:18
так и что мешает?

Владимир
07.07.2016
15:43:48
нет такой возможности
потому что бутстрап не дает изменить ее стили

Nikita
07.07.2016
15:44:13
значит интерфейс этого не предполагает

Admin
ERROR: S client not available

Nikita
07.07.2016
15:44:25
значит в твой проект этот компонент не подойдет)

Владимир
07.07.2016
15:44:30
да

Nikita
07.07.2016
15:44:52
но это не значит, что это плохо) Это значит что у тебя специфичные требования

Владимир
07.07.2016
15:45:17
а если бы он как плохой реакт селект выкидывал мне все пропсы на элементы которые я могу изменить такой проблемы не было бы

Nikita
07.07.2016
15:45:24
gcc js в нативный код не умеет компилировать, от этого gcc не становится плохим компилятором)

Владимир
07.07.2016
15:45:58
если курица не умеет давать молоко это плохая курица

Nikita
07.07.2016
15:46:34
ну вот да, примерно это ты хочешь от специфичного для моего проекта реакт-компонента)

Владимир
07.07.2016
15:47:08
в моем понимании библиотека компонент создается для того что бы ее реюзать в других проектах
если в каждом проекте мне нужно лезть в нее и допиливать под конкретный случай - это плохая библиотека

Dmitry
07.07.2016
15:47:58
Абстрактная да, UI кит конкретного проекта - для реюзабельности компонент внутри проекта и вполне может быть завязан на конкретный дизайн

Nikita
07.07.2016
15:48:21
у нас библиотека компонентов создается чтобы использовать ее внутри проекта, а не для всех возможных проектов
кстати что думаете над вынесением не просто ui-kit для проекта, а вообще всего интерфейса. Только тупые компоненты, естественно, никакой бизнес логики.

Google

Alexey
07.07.2016
15:51:03
@gusnkt а есть возможность посмотреть ее на гитхабе?

Dmitry
07.07.2016
15:51:06
Более того - могут быть несколько проектов в единой стилистике

Nikita
07.07.2016
15:51:14
То есть форма логина, аватарка, инпут

Dmitry
07.07.2016
15:51:45
Я в своем проекте в компонентах только такие и держу

Nikita
07.07.2016
15:52:06

Alexey
07.07.2016
15:52:15
можно тестировать независимо и улучшать
и меньше приязано к общему релизному циклу

Nikita
07.07.2016
15:52:45
да, вот мне тоже эта идея очень нравится) еще пока сыро, но потихоньку будет вообще круто)

Alexey
07.07.2016
15:52:59
на material-ui похоже

Nikita
07.07.2016
15:54:09
это пока, там нет дизайна проекта еще. И пока только совсем базовые контролы, а мысль большие тупые компоненты вынести, как уже сказал. Форма логина, сообщение, список сообщений

Alexey
07.07.2016
15:55:22
ну вполне ок
я похожей штукой занимаюсь просто
попапы боль приносят немного

Nikita
07.07.2016
15:56:21
Ах да. Дизайнер когда нарисует все, будет проще ему контролировать соблюдение этого дизайна)

Alexey
07.07.2016
15:56:22
но в целом ок
а насколько оправданно свой https://github.com/dialogs/dialog-web-components/blob/master/src/components/Button/Button.js#L24-L30 реализовывать?
так или иначе с новым реактом будет белые списки пихать
т.е. ничего лишнего

Nikita
07.07.2016
15:59:20
Эм, а не наоборот?