clojure-brasil

Telegram -> https://t.me/clojurebrasil | Youtube -> https://goo.gl/k7Jhcy | Facebook -> https://goo.gl/R7EjmE | Github -> https://github.com/clj-br
2017-12-10T00:02:36.000092Z

sobre (2), em clojure a galera gosta de usar exceptions 😞 eu normalmente recorro a either monad. tem uma lib legal com algumas monads implementadas e q é bem mais fácil de usar q o clojure.algo.monads: https://github.com/funcool/cats o suporte tá meio largado, mas ainda acho q vale a pena usar

2017-12-10T00:03:38.000045Z

sobre isolar side effects, normalmente é só organização de código msm (manter funções puras em namespaces separados das impuras). nunca vi nada muito diferente disso

matheusashton 2017-12-10T04:33:52.000021Z

vcs recomendam alguma abstração de sql? eu achei o korma mas parece que o projeto tá abandonado, e não curti muito o yesql e o hugsql..

2017-12-10T04:39:40.000043Z

@matheusashton o criador do ring montou uma essa página que tem várias bibliotecas agrupadas, incluindo alguns agrupamentos relacionados a SQL em geral e a bancos específicos, é bem útil https://www.clojure-toolbox.com/

2017-12-10T04:40:49.000013Z

até agora só usei o datomic e mongodb com clojure, então não saberia te recomendar, mas acredito que essa página deva ajudar

matheusashton 2017-12-10T04:57:19.000065Z

é tranquilo usar o datomic? eu olhei a doc dele e pareceu uma opção muito complicada

2017-12-10T05:05:20.000061Z

entender como os dados são armazenados dá um trabalho e a documentação falha um pouco, mas existe palestras do rich hickey que explicam bem como o banco funciona e pra mim foram valiosas como uma introdução. depois você também precisa aprender a usar a linguagem de consulta que é o datalog, o http://learndatalogtoday.org é bem útil nisso, e você consegue complementar algumas dúvidas com as documentações. no final, aprender a se expressar no datalog foi o mais complicado pra mim, mas consegui

2017-12-10T05:16:36.000022Z

algo que eu ainda não consegui resolver no datomic, e que talvez seja um ponto a pensar antes de adotar ele em um projeto, é o fato de que todas as consultas são feitas em memória e que não é possível paginar os resultados das consultas através da sintaxe do datalog, então você acaba tendo que paginar através do clojure os dados retornados da consulta (usando as funções take e subvec por exemplo). portanto você precisa ter RAM o suficiente para a sua aplicação conseguir manter em memória por um tempo o resultado das queries, até que você faça a paginação, o que eu imagino que possa causar problemas quando o retorno da sua consulta é muito grande.

2017-12-10T05:18:35.000063Z

(existem alguns workarounds utilizando uma api de mais baixo nível, mas a complexidade aumenta também)

imetallica 2017-12-10T14:03:45.000025Z

Você tem como usar o Datomic no modo server também

2017-12-10T18:50:41.000065Z

estou fazendo isso, e usando ele em memória para executar os testes unitários

imetallica 2017-12-10T19:42:51.000072Z

Eu tou lendo sobre o JanusGraph + Tinkerpop pra usar no meu projeto pessoal. 🙂

2017-12-10T21:09:14.000076Z

parece interessante, pelo visto esse tinkerpop é a linguagem de consulta né

imetallica 2017-12-10T21:38:25.000060Z

Sim, eu Já usei o Neo4J e gostei bastante de grafos… queria tentar uma alternativa free. 🙂

imetallica 2017-12-10T21:39:01.000050Z

Já que vou usar cassandra e o Janus usa o Cassandra pra storage, tá na ideia