Fork me on GitHub
#clojure-russia
<
2016-06-21
>
andmed05:06:09

добрый день. вопрос по датомику: где можно найти больше информации по внутренней архитектуре и представлению данных: логика представления данных в случае SQL бэкэнда, какие там таблицы, отношения и тп? В описании говорится что он does all of the 'database' representation itself. но далее информации мало, даже здесь про это собственно нет ничего http://docs.datomic.com/architecture.html

artemyarulin05:06:47

присоединяюсь к вопросу про редукс - я тока халло ворлды на на нем делал, но не вижу особых проблем

niquola05:06:04

Я поработал с redux, скажем мягко, не понял и не принял его. Много кода, много косвенности, много простых неотвеченных вопросов - студенческая поделка ;)

niquola05:06:55

Редукционисты мечтают о больших приложениях и пишут todo MVC в 30 файлов ;)

artemyarulin05:06:14

@nicola: О интересно. А что тебе по нраву в мире жс? Про кложуру мир я не говорю, у нас тут дофега всего няшного и так 🙂

artemyarulin05:06:55

просто мне казалось редукс достаточно простой, single application state опять же очень радует

niquola05:06:31

На самом деле первый ангулярчик, каким он не был магическим, позволял быстро и небольшим количеством кода решать проблему ui, и по моему это был прорыв (как rails в свое время). Мы писали достаточно сложные мордочки на нем.

niquola05:06:29

Connect у redux, atoms в reagent это ближе к angular way - MVVM, чем к reacty

niquola06:06:24

Single application state не всегда логичен. Представь приложение из n достаточно самостоятельных экранов - зачем их валить в глобальный скоуп и таскать за собой?

savelichalex06:06:53

@nicola: на самом деле у меня бывала такая фигня, я тоже так думал, а потом на след неделе приходила хотелка от заказчика в духе - «а теперь я хочу чтобы с этого экрана отображалось здесь и одновременно менялось на третьем и вообще мне нужен еще чат»😄

niquola06:06:50

Я про жизненный цикл, не у всего состояния жизненный цикл вся сессия.

niquola06:06:57

Одновременно на третьем не бывает, лучше уж тогда в соседнем табе;)

savelichalex06:06:46

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

niquola07:06:09

Редактор это один экран, а если бы было два редактора?

savelichalex07:06:13

ну было бы да было)

niquola07:06:58

А пять?

savelichalex07:06:17

да хоть сто) я этот стэйт как базу данных воспринимаю на клиенте

savelichalex07:06:07

честно мне поэтому и нравится идея датаскрипта, такое место куда ты можешь складывать данные и плюс получаешь язык запросов и индексы

prokaktus08:06:39

@savelichalex: ну ты наверняка ставил пакет вроде этого https://github.com/erikras/redux-form Иначе получается, что ты должен каждое действие для формы (если она dumb-компонента) пробрасывать из smart-компоненты. Это выглядит ужасно. И нужно в редьюсере как-то различать для какой формы и какого поля этот action пришел. Основная боль в том, что update’р глобальный и ты должен в него каждое изменение из формы проталкивать. Пакеты типа redux-form эту проблему решают, инкапсулируя в себя всю логику по изменению стейта форм, но мне он тоже показался не самым приятным. Постоянно приходится смотреть какое апи он дает и от него уже отталкиваться, изучать примеры чтобы понять, как предлагается проблему решать, все такое. Почти фреймворк получается.

savelichalex08:06:49

@prokaktus: неа, не его, я сам делал, ручками все ручками😄

kronos_vano10:06:17

https://vc.ru/p/russian-companies-2 если вдруг интересно

kronos_vano11:06:19

А я могу как-то отдекаплить (или как тут правильно термин) аргументы в функции? то есть вызываю (f ‘(a b)) а функция: (defn f [a b] …) чтобы не мучаться с first и т.п. Что-то должно быть же

niwinz11:06:18

(fn [[a b]] ...)

niwinz11:06:45

(apply f '(a b))

kronos_vano11:06:53

(fuuu) почему до 1го варианта не додумался

misha23:06:36

@andmed: не понял вопроса по датомику, какая задача?