Fork me on GitHub
#clojure-brasil
<
2017-12-10
>
matheusashton04:12:52

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..

zignd04:12:40

@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/

zignd04:12:49

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

matheusashton04:12:19

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

zignd05:12:20

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

zignd05:12:36

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.

zignd05:12:35

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

imetallica14:12:45

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

zignd18:12:41

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

imetallica19:12:51

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

zignd21:12:14

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

imetallica21:12:25

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

imetallica21:12:01

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