Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
E aee pessoal, estou estudando um pouco de NodeJS e conhecendo um pouco mais, e cara to curtindo pra caramba.
E achei incrivel como javascript hoje permite você manipular informações no banco de dados com tranquilidade e tudo mais.
E o fato de tudo em NodeJs sem Assync me chamou muita atenção.
O cenário é o seguinte:
Eu programo em PHP a mais de 7 anos, e estou iniciando um projeto próprio a nível mundial para uma área de investimento.
Se o projeto realmente alavancar eu sei que teria um custo consideravel em servidores, por isso desde de o começo já estou pensando em uma estrutura.
Nginx + MongoDB + PHP
Dai comecei a estudar NodeJs por conta própria eaté então pensava em uma integração NodeJS + PHP que já vi comentários dizendo que isso é comum, normal e etc.
Mas depois que vi esse vídeo:
(e a parte 1 dele)
NodeJS + Express.js + MySQL e fiquei bobo de como javascript conversa com banco de dados.
Quando vi isso logo pensei em uma estrutura:
Nginx + MongoDB + NodeJS + Express (sem o PHP)
As minhas dúvidas são as seguintes:
1. O NodeJS pode anular uma linguagem de programação Server Side sem problemas?
Digo isso porque ainda não estudei integração do PHP com NodeJS mas vi que o NodeJS por si só já é capaz de fazer todo o trabalho de CRUD sozinho.
Como javascript lado client (sei que é outra coisa) da muita brecha de segurança é seguro usar sistemas somente baseados em NodeJS?
Sistemas que envolve transações com Paypal por exemplo, tratamento de valores vindos de GET e POST e etc.
Sei que a segurança nem sempre depende da linguagem e sim dos cuidados do programador, mas realmente fiquei meio em dúvida se essa seria uma boa escolha, embora de inicio parecesse fantástico.
Sem falar que meu site seria em vários idiomas não sei o quanto pode ser facil fazer isso em nodeJS mas já vi que tem módulos do getText para node.
2. Se pode ser feito diretamente com o Expresso em que caso vocês acham interessante a integração com outra linguagem server-side, acham uma boa integrar com um PHP, Ruby e etc?
3 . E para os que já desenvolveram algo em NodeJs, tem alguns cuidados que se deve tomar na organização dos arquivos? É possivel criar classes e funções e apenas chama-lás depois?
Bom é isso, quem puder ajudar com essas dúvidas agradeço demais.
Vlw aee pessoal, Abraço
Olá Hugo, obrigado pela resposta, foi na lata.
=)
Sem dúvidas ajudou demais.
Mas agora surgiu uma outra dúvida, um grande sistema que pode ser de grande porte (não tem haver com isso mas digamos que fosse um sistema de anuncio de imóveis) e com diversas funcionalidade (uma delas pode ate ser um chat real-time)
Esse sistema possuiria 3 tipos de conta que cobram mensalidades (não planos, contas mesmo, com tabelas de usuários diferentes e pois cada usuário teria um objetivo totalmente diferente no site).
Você não acha interessante então ser totalmente desenvolvido no NodeJS?
Como falei anteriormente, o projeto é bom, eu tenho um interesse de expandir muito além do Brasil.
Já dispertou interesse de grupos de investimentos então realmente estou acreditando que pode alavancar legal se tudo for como estou imaginando.
Mas queria um site muito rápido.
Estou visando baixo custo de servidores e agilidade no tempo de resposta, não tem problema se o projeto demorar um pouco mais para sair por conta de eu ter que aprender NodeJS (do que vi achei bem sussa, é só se acostumar com os comandos).
Vi palestras como essa do ClickJogos
Que cita casos de sites que com algumas mudanças que resultaram em alta performance fizeram uma empresa economizar cerca de 20.000 dolares por mês com servidores.
Eu quero iniciar já pensando em alta performance e em economizar esses custos de servidor.
Por isso já imaginei:
Nginx + MongoDB + NodeJS + Express
Isso em 5 anos ainda mais se a empresa estourar, pode significar muito dinheiro.
Sem falar de poupar a necessidade de precisar migrar o sistema e fazer muitas coisas impactantes no ar com informações sendo gravadas no banco a todo o momento para alcançar o que estou buscando desde agora.
Na tua video aula achei muito tranquilo trabalhar com ele.
Mas aquele negócio, realmente tenho que sanar essas dúvidas para não fazer uma besteira gigante que parecia ser uma grande solução.
Vlw a resposta.
Abs
Então, vou tentar passar minha opnião de quando usar NodeJS e NoSQL(MongoDB).
Como você disse pode ser um site de anuncios de imóveis. Analisando apenas esta informação e levando em conta que o site "pode" ter um sistema de chat não acho interessante utilizar NodeJS como servidor principal e nem MongoDB como banco principal. Explico porque:
Banco
Um site como esse é ideal que você utilize um banco relacional, porque seus dados tem uma estrutura. A vantagem de utilizar NoSQL é exatamente você geralmente não precisar de uma estrutura para o banco, então neste caso bancos relacionais vão ser melhor para você ( Tabela de imoveis, usuarios, anuncios, relacionamentos, contas, etc ). NoSQL é ideal para os seguintes casos:
Servidor
Como a única "funcionalidade" que você talvez vai precisar que seja em tempo real é o chat acho que não vale a pena utilizar Node só pra isso. Você encontra linguagens de programação muito, mas muito rápidas para trabalhar com respostas do jeito que você quer.
Como tinha dito, o NodeJS é ideal para aplicações com um volume muito grande de acessos em um curto espaço de tempo ( Aplicações em tempo real por exemplo ).
Recomendo você olhar Python (Django) e Rails e se você acredita que terá um volume absurdo de acessos vale até explorar a linguagem Go(http://golang.org/), veja este artigo( http://blog.iron.io/2013/03/how-we-went-from-30-servers-to-2-go.html ). Todas estas linguagens são ótimas pra back-end e tem uma comunidade excelente pra te ajudar ( Não posso te afirmar da comunidade do Go porque não conheço ). Quer uma referência boa? o Airnb (https://www.airbnb.com/) , que acredito ser um dos maiores site de aluguel de imóveis do mundo foi feito em Rails. (Só não sei se ainda é Rails)
Espero ter ajudado!
Espero ter ajudado!
Sinceramente!
AJUDOU DEMAIS!!! :)
Não faz idéia do quanto, obrigado mesmo pela ajuda.
Abraço
Opa e ae cara blz?
Então, vamos la!
Ao meu ver, NodeJS é "ideal" para fazer aplicações rápidas e geralmente em tempo real porque as ferramentas mais poderosas criadas para node são as que trabalham em tempo real.
Eu recomendaria NodeJS apenas se você realmente precisar de alguma coisa em tempo real, como mensagens(chat), notificações, mapas em tempo real, acompanhamento de finanças, acompanhamento de feeds, acompanhamento de API`s, etc.
Um exemplo de integração é 1 app de musica que estou fazendo. O servidor para o client-side é NodeJS integrando com MongoDB para guardar as listas de reprodução e Socket.io para reproduções em tempo real. Já o servidor de músicas (Tratamento de arquivos, armazenamento, dados sobre as musicas) é feito em Rails com Postgres.
Agora respondendo as perguntas:
1) Depende. Depende do que você precisa fazer no back-end. Se precisar apenas de um crud, recuperando dados do banco de dados NodeJS fará tudo perfeitamente sem precisar de outra linguagem, porém se você quer algo mais específico ( Workers, Manipulação de arquivos, transições bancárias ) recomendo você pesquisar em outras linguagens, especialmente porque o nodejs é relativamente recente, e não tem a mesma quantidade de plugins e uma comunidade grande como as linguagens mais antigas.
2) /\
3) Sim, recomendo utilizar CoffeeScript para fazer "classes"