Salvar dados em arquivos JSON

458 views
Skip to first unread message

Fábio Carvalho

unread,
Feb 25, 2015, 8:38:26 AM2/25/15
to Rails-br
Bom dia, gente.

Como faria pra salvar alguns dados para um arquivo JSON, considerando:

1 - Qual melhor lugar (diretório) pra salvar 
2 - Como recuperar esses dados em qualquer ponto do site


Motivação:

Eu recupero várias estruturas de dados que considero imprudente solicitações recorrentes ao banco, vejo então, oportunidade para salvar num JSON evitando assim redundância.

EX:

Escola -> Estrutura (Ensino + Projeto + Fase + Turno ) ->  Turma -> Aluno

Visto escolhido uma escola quero ter toda sua Estrutura disponível sem a necessidade de buscar ao banco a cada nova necessidade.

Um abraço

Fábio Carvalho

Alex Takitani

unread,
Feb 25, 2015, 8:49:50 AM2/25/15
to rail...@googlegroups.com
Provavelmente é mais lento ler um arquivo do disco e fazer o parse do que ler do banco. 

Se seu banco é lento pra devolver esses dados e vc quer agilizar de alguma forma desestruturando o que vc procura é cache.



--
--
Você recebeu essa mensagem porquê está inscrito no Google
Groups "rails-br".
Para enviar uma mensagem para o grupo, mande um email para rail...@googlegroups.com
Para se descadastrar, mande um e-mail para
rails-br+u...@googlegroups.com
Visite o grupo em http://groups.google.com/group/rails-br?hl=pt-BR
Leia nossa política de uso: http://goo.gl/YGgt7

---
Você recebeu essa mensagem porque está inscrito no grupo "rails-br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para rails-br+u...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Carlos Antônio

unread,
Feb 25, 2015, 10:06:36 AM2/25/15
to rail...@googlegroups.com
Concordo com o amigo Alex, se isso esta realmente fazendo diferença para você então é hora de pensar em cache ou na possibilidade de um servidor de banco de dados melhor, recorrer a gambiarras para solucionar um problema simples não seria o melhor caminho.

isso tudo muda dependendo da sua necessidade, por isso tem que estudar a melhor maneira para a sua necessidade.

Já vi nego que não tem nem 100 conexões simultaneas querer estrutura de dedicado para mais de 5Mil conexões simultaneas, superdimencionamento para algo que não chegaria ao pico de 200, vejo isso acontecer em aplicações também.

Fábio Carvalho

unread,
Feb 25, 2015, 10:29:12 AM2/25/15
to Rails-br
Opa, Alex.

Deixa eu detalhar mais a minha proposta.

* Um Professor dá aula em várias Escola.
* Cada Escola possui N Estruturas
* O Professor ministra N Disciplinas para N Turmas

Em números :

1 Professor trabalha em 2 a 3 Escolas

1 Professor leciona de 2 a 3 Disciplinas

Cada Turma possui 40 a 60 Alunos

--------- 

A ideia é carregar todas essas informações logo a Identificação/Logar do Professor 

Então fazer a navegação dessas informações de forma local

Professor lança faltas (diáriamente)
Professor lança Notas
Professor lança conteúdo de aula (diáriamente)

Em geral, os Professores param um momento do dia para lançar todas essas informações de uma vez. 

É apenas uma proposta que estou pensando em fazer que acredito que diminuiria a recorrência de acesso ao servidor web e de banco.

O banco de dados é Oracle.

Um abraço.

Douglas Rossignolli

unread,
Feb 25, 2015, 10:35:52 AM2/25/15
to rail...@googlegroups.com
Mas rapaz, o oracle é tão robusto e `tora`, pode fazer consulta a vontade, ou se quiser, faz eager load para
carregar tudo de uma vez só, muito melhor que inventar arquivos.
Atenciosamente,
Douglas Rossignolli

Fábio Carvalho

unread,
Feb 25, 2015, 10:43:09 AM2/25/15
to Rails-br
Eu terei toda a rede estadual conectada ( para fazer o lançamento, sendo o pico ao final de cada bimestre onde os professores começam a lançar principalmente, Notas e Faltas. 

Faixa 1.000 (diaria) a 7500 (fim)

eager load ? 

Vou pesquisar :)


Alex Takitani

unread,
Feb 25, 2015, 11:40:42 AM2/25/15
to rail...@googlegroups.com
Fábio, os bancos de dados são pra isso, vc mediu a performance ou está tentando otimizar um problema do tipo "vai que.." ?

Se vc fizer isso no client vc vai ter uma série de outros detalhes, por ex, ter q validar  dados no server e no client, cache do json etc.

Vc vai acabar complicando um problema simples.

Itaú, Bradesco e Coca cola tem bancos sql server que são acessados "on-line" por clientes.
CVC tem banco oracle acessado por todas lojas e web.

Eu conheço de perto esses projetos ( tendo trabalhado em alguns) e te garanto, se o banco estiver rodando em equipamento adequado dá e sobra.


Fábio Carvalho

unread,
Feb 25, 2015, 12:56:48 PM2/25/15
to Rails-br
Meus amigos, muito obrigado.

Estou saindo de uma realidade de programação mainframe para web e com certeza: Natural (linguagem) Adabas (bd)  -> PHP(cake) + Oracle é uma dura mudança. 

Sou muito verde ainda no Rails, mas pelo pouco que vi é muito menos enrolado que a sua cópia mal feita Cake.

Temos aqui um problema crítico de link, pois nossa realidade continental (Amazonas) é um grande desafio tecnológico colocar algo na rede, visto a instável e anoréxica  banda. Não pela capital, mas pelo interior que é algo milagroso. Assim nossa solução com mainframe consegue trabalhar com baixíssimo link. Realidade mudando e vamos acompanhando.

Gratos.

Fábio Carvalho

Ale Diniz

unread,
Feb 25, 2015, 6:04:10 PM2/25/15
to rail...@googlegroups.com
Fabio, entendo o que vc diz,

se vc fez dpl no heroku, tem um add-on mt bom pra isso, e bem facil de usar. chamasse MemCachier, depois da uma procurada la.

É muito simples so seu funcionamento, 

1- Ele salva o resultado do GET em um servidor externo, 

2- quando acontece algum get, ele não vai pro banco, e vai para essa pagina externa,

3- toda vez que acontece um POST,PUT ou DELETE, acontece um método before_action que atualiza os dados do servidor deles.

simples assim...

ps: depois de certo ponto é pago, eu usei por capricho e para aprender, a app que eu fiz nem precisava disso.

caso voce não fez no heroku, você pode usar um banco de memoria, tipo redis... mais como os mestres ja falaram acima, sómente se precisar ...

Abs!
Reply all
Reply to author
Forward
0 new messages