[Off topic] Extrait des tests de ma propagation des diff - les Clojuriens bordelais comprendront.
(let [state {:items [nil nil nil {:name "Pain au chocolat"} nil]}
new-state {:items [nil nil nil {:name "Chocolatine"} nil]}
diff (h/map-update :items (h/vec-update 3 (h/map-assoc :name "Chocolatine")))
subscriber-tree (-> empty-subscriber-tree
(subscribe-on-path [] 1)
(subscribe-on-path [:items] 2)
(subscribe-on-path [:items 3] 3)
(subscribe-on-path [:items 3 :name] 4))]
(is (= (state-diff->subscribers state diff subscriber-tree)
[[1 {:state state
:new-state new-state
:diff diff}]
[2 {:state (-> state :items)
:new-state (-> new-state :items)
:diff (h/vec-update 3 (h/map-assoc :name "Chocolatine"))}]
[3 {:state (-> state :items (get 3))
:new-state (-> new-state :items (get 3))
:diff (h/map-assoc :name "Chocolatine")}]
[4 {:state (-> state :items (get 3) :name)
:new-state "Chocolatine"
:diff (h/value "Chocolatine")}]])))
Et du coup, quand tu manges du pain au raisins, t'appelles ça une raisinine ?
J'appelle ca un pain aux raisins. J'ai toujours connu la chocolatine comme etant une chocolatine dans ma region, c'est pas comme si on avait change le nom de Pain au chocolat vers Chocolatine. De la meme facon, on ne va pas changer un pain aux raisins.
Chocolatine powaaa !!!
En vrai, je suis tellement en manque de bonne viennoiseries que je pourrais en acheter mĂȘme si c'Ă©tait Ă©crit chocolatine.
Et qui plus est, je pourrais mĂȘme acheter du Saint-Genix prĂ©sentĂ© comme une "brioche pralinĂ©e". J'en suis lĂ .
Je te comprends beaucoup ⊠a Taiwan, nous sommes en rupture de Fromage Francais a cause du COVID.
Pour revenir sur le concept de CRUD, le problĂšme est que le modĂšle est assez limitĂ© (en gros lâutilisateur Ă©dite des record/lignes de la base de donnĂ©es) et ça ne prend pas en compte toute la subtilitĂ© des interactions avec le logiciel car derriĂšre lâupdate se cachent souvent tout un tas de rĂšgles mĂ©tiers planquĂ©es. Une approche beaucoup plus fine et puissante avait Ă©tĂ© proposĂ© avec le framework Naked Object, cf le bouquin https://b-ok.cc/book/1010067/44fb2f et la thĂšse de Pawson lĂ -dessus : http://isis.apache.org/docs/ug/fun/_attachments/core-concepts/Pawson-Naked-Objects-thesis.pdf En gros la UI et tout le reste dĂ©rive complĂštement du modĂšle objet du domaine. JâexpĂ©rimente depuis quelques mois sur lâutilisation des concepts DDD en Clojure, donc data-driven, pour dĂ©crire le domaine et dĂ©river la logique applicative (endpoint REST, UI, http://etc.et dâinfrastructure (persistance, messaging, sĂ©curitĂ©) depuis ces data structure qui dĂ©crive le domaine. Pour ceux que ça intĂ©resse on peut se faire une session de brainstorm lĂ -dessus. Lâaspect dynamique et data-driven de Clojure peut complĂštement changer la donne sur ce genre dâapproche. Le point clĂ© est dâavoir un mĂ©ta-modĂšle de description du domaine suffisamment expressif et puissant pour dĂ©river le reste du code avec des hooks placĂ©s aux bons endroits pour ce qui resterait spĂ©cifique.
@jeremie le lien de la thÚse est cassé
> Le point clĂ© est dâavoir un mĂ©ta-modĂšle de description du domaine suffisamment expressif et puissant pour dĂ©river le reste du code avec des hooks placĂ©s aux bons endroits pour ce qui resterait spĂ©cifique. Bon, pour ça tu sais dĂ©jĂ ce que je propose đ https://vvvvalvalval.github.io/posts/2018-07-23-datascript-as-a-lingua-franca-for-domain-modeling.html
Tu as peut-ĂȘtre entendu parler du Hodur, qui dĂ©rive de cette approche ? https://github.com/hodur-org
(Je ne recommande pas particuliĂšrement Hodur. Ils traitent la base DataScript sous-jacente comme un dĂ©tail d'implĂ©mentation, alors que je pense qu'il est gĂ©nĂ©ralement plus sain d'en faire l'API du modĂšle, pour ne pas tomber dans les mĂȘmes travers que d'autres frameworks. Mais bon, ça pourrait t'intĂ©resser).