@js_ru
JavaScript — русскоговорящее сообщество

Рекомендуем сразу отключить уведомления Правила: http://bit.ly/our_etiquette См. также: @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

3006 members

Архив канала @js_ru 23 марта 2017 г.

09:01:04 ДП
User 156805060
кто нить air залитый чинил? можете посоветовать сервис?
09:15:53 ДП
User 91990226
User 52383088
Дока у них так себе, мягко говоря. а так да - выглядит вкуснее
доки хватает вполне себе
09:16:15 ДП
User 4641477
Всем привет. Подскажите пожалуйста новичку. Есть задание:
необходимо разработать класс Element, реализующий элемент блок-схемы. Есть четыре стиля его отображения, которые надо комбинировать: по-умолчанию, инвертированный (inverted), зачеркнутый (striked), выделенный (highlighted). Кроме того, необходимо в дальнейшем легко добавлять новые стили и их комбинации. Способ реализации: на русских словах опиши какие классы, названия, методы и свойства и краткий пример использования.

Язык JavaScript.

Дополнение . При создании экземпляра класса , Настройки делать через свойства . К примеру : экземпляр = новый Элемент ({     стиль: [{инверторный: true }]    })
09:20:14 ДП
User 325618057
на тестовое смахивает )
09:20:45 ДП
User 4641477
Ну учёба)
09:21:51 ДП
User 325618057
так подсказать или решить, не понятно?
09:23:00 ДП
User 277250801
странно, что класс называется Element, как бы не вышло чего...
09:32:43 ДП
User 4641477
Набросать примитивный  пример
09:32:50 ДП
User 4641477
Дальше сам
10:44:57 ДП
User 52383088
Спасибо, @klond90
10:45:28 ДП
User 5997097
ну, mobx
10:45:28 ДП
User 5997097
О_О ну это как-то перебор имплементировать репозитарий. еще и как-то следить за его обновляемостью
10:45:39 ДП
User 124442878
Насколько часто кто использует шаблоны ООП для взаимодействия с базами данных во фронте?
10:46:37 ДП
User 124442878
ну и вообще именно шаблоны с понимаем что это такой-то шаблон надо бы его захреначить тут. ну не считая совсем корневых типа паб саба
10:48:20 ДП
User 5997097
ну смотри, есть сотни объектов
10:49:09 ДП
User 5997097
которые как-то связаны, каждый стор объектов одного типа - репозиторий.
Потому что я в нем могу искать,фильтровать, удалять, создавать
10:49:24 ДП
User 124442878
и ты к пришел мысли мне нужен Repository?
10:50:23 ДП
User 5997097
Я прикинул, что мне нужно следить за обновлением этих сторов, ибо локальная копия всегда синхронизируется по сокетам с бд
10:53:10 ДП
User 124442878
а как вылядит запрос?
10:55:49 ДП
User 5997097
В плане?
Обычный фильтр по предикату
10:58:06 ДП
User 5997097
Но при этом коллекция хранится, как в массиве, так и в мапе
10:58:20 ДП
User 5997097
Для быстрого доступа по uuid
10:58:42 ДП
User 124442878
ну вот нету у тебя ничего
10:58:48 ДП
User 124442878
ты идешь в настоящую базу?
10:59:12 ДП
User 5997097
Нахера? Репозиторий - абстракция над хранилищем
11:00:01 ДП
User 124442878
понятно. то есть репозитарий ты не реализовал тьфу тьфу О_о это реестр
11:00:03 ДП
User 5997097
Даже интерфейс, как оно у тебя там хранится- дело реализации
11:01:01 ДП
User 5997097
Ну смотри, если объекта еще нет в памяти - он запрашивается с сервера
11:01:26 ДП
User 124442878
User 5997097
Ну смотри, если объекта еще нет в памяти - он запрашивается с сервера
а зачем ты тогда ответил что если у тебя ничего нету то не идешь?
11:01:37 ДП
11:02:34 ДП
User 5997097
Это я тебя не так понял
11:03:16 ДП
User 124442878
инвалидация как тогда происходит?
11:04:06 ДП
User 5997097
Все апдейты прилетают через сокеты
11:04:44 ДП
User 5997097
Где-то изменился объект - прилетел апдейт, в локальной копии применили апдейт
11:05:07 ДП
User 124442878
я бы себе взял
11:05:15 ДП
User 124442878
есть open source?
11:07:07 ДП
User 5997097
Неа, но могу попробовать выпилить
11:07:20 ДП
User 1294634
а почему не каждый раз запрос делаете за сущностью?
11:08:16 ДП
User 124442878
User 1294634
а почему не каждый раз запрос делаете за сущностью?
а зачем если апдейт anyway придет уже то есть в сторе я так понимаю актуальная версия и идет подписка на этот конкретный объект
11:08:29 ДП
User 5997097
а зачем? Это только нагрузка на сервер.
Ввиду архитектуры js'а, мы можем гарантировать, что в момент получения объект имеет последнее состояние
11:08:31 ДП
User 1294634
ну, только если сущность полностью сокетами обновляется
11:08:53 ДП
User 124442878
User 5997097
а зачем? Это только нагрузка на сервер.
Ввиду архитектуры js'а, мы можем гарантировать, что в момент получения объект имеет последнее состояние
ну нет же не можете :о
11:08:59 ДП
User 1294634
ну вы же ее не лочите, т.е. гарантировать нельзя)
11:09:01 ДП
User 5997097
поправочка
11:09:07 ДП
User 5997097
это с mobx'ом
11:09:20 ДП
User 124442878
вы можете при определенных условиях типа вечный интернет все хорошо работает сокеты не падают
11:09:23 ДП
User 1294634
а так, вы ее потом гидрируете или новые создаете?
11:09:25 ДП
User 5997097
даже если объект изменится после получения - он все-равно отрендерит
11:09:44 ДП
User 5997097
объект мутабелен
11:09:48 ДП
User 124442878
вот если у пользователя отвалился интернет в метро и подключился после
11:09:54 ДП
User 124442878
как это отрабоатет в системе?
11:10:14 ДП
User 124442878
или пользователь сделал ряд апдейтов сущности в метро и когда подъехал к станции интернет у него врубился?
11:10:15 ДП
User 1294634
понятно, примерно также, только с редаксом у нас
11:11:00 ДП
User 5997097
User 124442878
или пользователь сделал ряд апдейтов сущности в метро и когда подъехал к станции интернет у него врубился?
для этого я бы сделал стек изменений, если они не улетели на сервер, но там начнутся конфликты
11:11:21 ДП
User 124442878
версионирование?
11:11:47 ДП
User 5997097
с учетом тонн объектов - слишком больно для базы
11:13:06 ДП
User 5997097
тут нужно уже от задачи отталкиваться, и от ограничений
11:13:40 ДП
User 124442878
ну там хотя бы  типа инкремент на update
11:14:01 ДП
User 124442878
и при апдейте присылать операции с where id =1224 and update_version = 5
11:14:21 ДП
User 124442878
типа гарантии одного апдейта одной версии
11:14:29 ДП
User 5997097
ну смотри, в данном случае придется хранить либо апдейты, либо на каждую версию - копию
11:14:53 ДП
User 124442878
ну зачем это просто присылать на каждый апдейт еще number с номеров версии
11:16:25 ДП
User 5997097
ну смотри, это не убирает вероятность конфликта, в итоге тебе надо смержить апдейт, который на сервере и который пришел с клиента
11:16:36 ДП
User 5997097
и тут мы подходим к архитектуре гита :D
11:17:19 ДП
User 124442878
ну это гарантирует его разрешение
11:17:32 ДП
User 124442878
в пользу того кто быстрее успел.
11:17:40 ДП
11:17:44 ДП
User 124442878
обратное last write win для таких систем более губителен
11:19:04 ДП
User 5997097
ну, вообще да. но нельзя ресетить то, что сделал пользователь, говоря ему "сорян, ты не получил апдейты, поэтому отцом ребенка будет тот, у кого они были"
11:20:10 ДП
User 5997097
тут нельзя применить ни "кто последний - тот и папа", ни "кто первый"
11:20:15 ДП
User 124442878
multi key тоже подход
11:20:22 ДП
User 5997097
потому что это планирование производства
11:20:27 ДП
User 124442878
вот на уровне монги вполне себе запашет
11:21:34 ДП
User 5997097
User 124442878
вот на уровне монги вполне себе запашет
да оно везде составным ключом запашет
11:21:53 ДП
User 5997097
object_id + revision_number
11:22:40 ДП
User 124442878
да не я немного про другое. если есть апдейт a + апдейт b одной и той же версии для того же поля то поле сделать массивом
11:22:45 ДП
User 124442878
и дальше на уровне клиента мержить
11:22:57 ДП
User 124442878
я уж не впомню paper который так называется
11:25:31 ДП
User 5997097
ну, на уровне монги в таком случае сработает
11:25:58 ДП
User 5997097
но на уровне MSSQL/Postgres/oracle/cassandra - вряд ли
11:26:07 ДП
User 5997097
там же вроде строгая типизация, в кассандре.
В остальных - точно
06:39:52 ПП
User 122550876
User 43184099
@evgenyrodionov @ZeroBiias Добавлю, что есть проекты с тысячами строк легаси цсс, которые целиком написаны через дефисы, а то и вовсе BEM-ом или BEM-like. Кто в своём уме пойдёт это всё перелопачивать на camelCase?
Ты это так говоришь, как будто БЭМ как-то противоречит camelCase