This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-07-01
Channels
- # 100-days-of-code (2)
- # beginners (83)
- # calva (3)
- # cider (98)
- # clara (3)
- # clj-kondo (2)
- # clojure (84)
- # clojure-dev (59)
- # clojure-europe (11)
- # clojure-italy (22)
- # clojure-madison (4)
- # clojure-nl (3)
- # clojure-spec (24)
- # clojure-uk (80)
- # clojurescript (33)
- # clr (3)
- # datomic (59)
- # events (2)
- # fulcro (20)
- # interop (35)
- # jobs (6)
- # jobs-rus (1)
- # joker (3)
- # kaocha (2)
- # luminus (3)
- # off-topic (16)
- # other-languages (2)
- # pathom (17)
- # planck (2)
- # reagent (1)
- # shadow-cljs (1)
- # test-check (1)
- # tools-deps (49)
- # vim (16)
@andrea.imparato Ci sono un po' troppe affermazioni e domande tutte in una volta. Invece di cercare di classificare le API immaginandoti su cosa le potresti usare, ti consiglio di aspettare di trovare il primo problema che le richiede e concentrarti su quello. Dopo alcune iterazioni di questo tipo puoi cercare di astrarre una regola piu' generale. Se hai gia' un problema che stai cercando di risolvere, parliamo di quello.
la mia domanda era generica appunto perchè non sto risolvendo nessun problema al momento ma sto solo cercando di documentarmi un po' 🙂
Non ti voglio scoraggiare, posta pure quante domande vuoi, non e' che ci sono problemi e le leggo volentieri.
Se sono leggermente piu' specifiche rispondo anche, ma non sono l'unico in lista e qualcun'altro potrebbe rispondere.
il mio problema principale è che ho sempre programmato backend in php e con php non hai problemi di concorrenza e/o memoria perchè il processo php nasce e muore e chi sè visto sè visto 🙂
in un certo senso non e' molto diverso in Clj. E' vero che e' un thread che nasce a muore (non un processo), ma grazie al fatto che Clojure e' immutable e largamente thread safe, te ne puoi (quasi) fregare
si, a meno che devi mantenere uno stato dell'applicazione ma cmq in quel caso ti basta usare atoms/refs e te ne puoi fregare lo stesso
@andrea.imparato puoi provare a buttar giù un progetto di test e provare un po' di operazioni che non ti tornano. Col codice in mano è magari più semplice capire cosa non ti torna.
posso provarci ma cmq le mie domande sono + teoriche che d'implementazione
eheh hai ragione 🙂. forse ho trovato un buon blog post che può rispondere alle mie domande: https://www.rubberducking.com/2018/05/the-various-kinds-of-io-blocking-non.html
Se vogliamo rimanere sul teorico, c'è un detto "Premature optimization is the root of all evil" (Knuth).
Quindi, a meno che la parte di concorrenza/asincronicità non sia essenziale, parti single thread/tutto sincrono e poi individui le parti che hanno bisogno di ottimizzazione
yep ed è per questo che amo clojure perchè è proprio la sua filosofia
Tra l'altro siamo fortunati che Clojure è immutabile e la concorrenza è molto più semplice da gestire
esatto
Namaste clojuristi