This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-07-19
Channels
- # aleph (11)
- # aws (1)
- # beginners (14)
- # bitcoin (1)
- # boot (41)
- # cider (6)
- # cljs-dev (1)
- # cljsrn (13)
- # clojure (138)
- # clojure-italy (10)
- # clojure-nl (1)
- # clojure-poland (2)
- # clojure-russia (62)
- # clojure-sg (2)
- # clojure-spec (31)
- # clojure-uk (51)
- # clojurescript (109)
- # core-matrix (1)
- # core-typed (1)
- # cursive (63)
- # datomic (10)
- # emacs (9)
- # euroclojure (1)
- # hoplon (112)
- # immutant (16)
- # jobs (2)
- # lumo (5)
- # off-topic (14)
- # om (54)
- # onyx (17)
- # parinfer (23)
- # pedestal (2)
- # re-frame (41)
- # ring-swagger (23)
- # spacemacs (9)
- # specter (10)
- # uncomplicate (5)
- # vim (1)
@dragoncube прикольно звучит постановка вопроса по-русски: "кто-нибудь Аркадия щупал?"
Аркадиа - это она
@artemyarulin я тут нотацию норм откопал вчера, курю: https://en.wikipedia.org/wiki/UML_state_machine http://www.uml-diagrams.org/state-machine-diagrams.html а то всякие Mealy и Moore стейт машины для электрических цепей с софтварой не справляются совсем
ты не обижайся но у меня вот эта картинка всплыла в памяти: http://cs8.pikabu.ru/post_img/2016/09/14/9/1473863411143474837.jpg
Респект, но просто кажется что ты прям очень глубоко капаешь 🙂
кроме того, что там куча промежуточных флажков под ногами путается, из-за которых в тупые компоненты ифочки попротекали, на самом деле хрен пойми что в каком порядке кого вызывает/порождает
думаешь state machine проще это сделает?
я курю нотацию, там уже проблема на компоненты разложена. что бы понимать, из каких деталей солюшен собирать
т.е. если ты диаграмму напишешь потом на основе кода то будет лечге разобраться, но код то темже сложным останется. Или ты что-то поменять в коде хочешь на основе нотаций?
если понимать компоненты, можно придумать как это наглядненько всё на 1 страницу edn'ом вывалить
мне кажется, что в итоге без визуального программирования не обойтись в том или ином виде
это может быть edn+macros, это может быть вебстраничка, которая генерит плейсхолдеры какие-то.
думаю сначала попробовать табличку организовать, по которой валидация будет просто проходить, вида "чувак, ты :guard/foo-bar забыл заимплементить"
Я тоже в свое время эксперементировал с диаграммами для бека https://github.com/artemyarulin/iokov/raw/master/error-flow-untyped.png идея вроде ничо, но в итоге сдался - если логика сложная то диаграмма будет не сильно проще
ааа, если не просто диаграмма то ня
ведь по большому счету, каждая страница/форма юая - маленький бекэнд, с тз проектирования
пусть даже не юай, а 20 корасинк каналов на бэкэнде. тоже ведь посмотреть со стороны на все сразу хочется
ну или табличкой описать всё сразу, а потом нагенерить или дописать(скорее всего) имплементацию, полноту которой можно таблицей отвалидировать
https://github.com/samroberton/bureaucracy на харель стейт чартах основана, что тоже слабее, чем для общего случая софтвари нужно
Now we can manually poke at the login state machine like this:
(bcy/event login-machine @db nil nil ::submit nil)
;=> {:app-db {}, :state-db {:state :logging-in}}

язык для thread-safe говорили они… https://dev.clojure.org/jira/browse/CLJ-1528 5 лет и 1.8 версия до фикса
(bcy/event nil nil nil nil nil :dude nil nil :come-on/man nil nil nil :plz nil nil nil : nil true)
@razum2um получается, что вот это вот тоже с рейс кондишеном?:
(reset! db (bcy/event login-machine @db nil ::update :username "sam"))
ресет же как и свап функция будет ретраиться, если там очередь апдейтов атому собралась
и вообще это для ref: https://stackoverflow.com/questions/4999281/ref-set-vs-commute-vs-alter/4999888#4999888
в https://clojure.org/about/state#_concurrency ни слова об атомах внезапно
@misha кстати да, но почти, если [email protected] то точно плохо, а тут сценарий такой - взяли @db, другой тред его обновил, сделали bcy/event и затерли результат другого треда. если устраивает, то норм
ну понятно, что применение такому найти можно. Просто поймал себя на мысли, что даже не задумываюсь в таких случая, о том, что там юзкейсы разные есть, а воспринимаю уже как leaf node, без ифочки
кстати про CAS, я тут с месяц пописал на эликсире, там get_and_update_in возвращает {старое-то-что-было-на-входе-CAS, новое-состояние} состояние а тут чтобы сделать очередь без джавы, надо извращаться https://stackoverflow.com/questions/43599473/get-the-state-of-an-atom-and-reset-it-atomically?
@misha если еще не видел - рисовалка в UML нотацию: http://plantuml.com/state-diagram
@ssesutchenkov оно жпеги выплевывает?
@misha png - точно, жипеги, svg - вроде тоже могет
надо интерактивное жеж. чтобы ты его ворочал, а оно тебе код базовый выплевывало, с дифами где чего поменялось и тд. кароче интерпрайз сразу
@ssesutchenkov имею ввиду "картинку", да. хотя может можно заморочиться, и на свг нацепить всяких драг-дропов. но думаю, что с нуля полехше получится
инвестиций поднять, смузишную свою в офисе сделать, парикмахерскую там же открыть, наклеек на лаптоп нарисовать, конференцию забацать... 😄
ну это тулза в одну сторону, я ее использую как плагин к idea - что-то накидал, посмотрел картинку, подумал, поменял. В обратную сторону - от диаграмм к кодогенерации - это действительно комбайны типа Sparx Architect, продуктов Rational / IBM и тыды
оно ж там наверное ацкую джаву или си++ генерит, а у нас edn, всё чистенько. не охота в интерпрайз ооп интеграции руки окунать. хочется всего лишь пару квадратиков со стрелочками между ними, и чтоб оно вектор векторов кивордов в файлик выплюнуло
мне удобно что исходник диаграммы в тексте и лежит в гите как часть проекта - там и дифы гитовые. "Оно" - да, на нескольких проектах наблюдал, как пробовали прикрутить эти комбайны, но всегда получалось что код отдельно, "картиночки" - отдельно. Иногда по исходникам C# / жавы реверсили диаграмки, ужасались и больше так не делали )))
@ssesutchenkov вообще, спасибо за ссылку. только я еще до имплементаций не добрался. хочу раздуплиться из чего проблема состоит, чтобы можно было оценивать адекватность и оверинженерность либ/плагинов/инструментов
там есть гайд по всей разметке http://plantuml.com/PlantUML_Language_Reference_Guide.pdf