quarta-feira, 6 de fevereiro de 2013

IDE NodeJS

Quando começamos a aprender alguma linguagem programação nova, na maioria das vezes estamos acostumados com configuração de ambiente. Na configuração envolve diversas coisas, IDE, banco de dados, servidor de aplicação, variaveis de ambiente, etc etc.

Quando comecei os estudos, li bastante sobre isso, e vi varias pessoas comentando que usavam apenas o nodepad++ para programar (ja que é javascript e não precisa de muito), e até mesmo uma IDE simples chamada jEdit, que não faz muita coisa, sem ser formatação do código, quebra de linha e deixar o texto colorido. Para debugar, o pessoal falou bastante do firebug (extensão de depuração pro firefox e também pro google chrome).

Ontem, por acaso, dei uma pesquisada e sem querer, acabei encontrando uma IDE online o_O.
Sim, online! Autocomplete de código, ambiente pré-configurado, banco de dados (MongoDB), repositório próprio, debug, deploy e tudo que um desenvolvedor de NodeJS precisa (ou quase tudo, lembrando que sou iniciante e para o que eu preciso até agora atende).
O nome da IDE é Cloud9.

ps: tem versão free e paga
ps2: a versão free é muito boa, tem tudo aquilo que eu citei, a diferença pra versão paga é apenas franquia/espaço em disco/quantidade de projetos que pode ter, etc

Vale a pena :)

terça-feira, 5 de fevereiro de 2013

Dicas #2

Quando instalamos um módulo na aplicação e para começar a utilizar a sua API, você deve inicializar uma variável que recupera uma instancia da API.


Exemplo: Express (framework que ja foi falado no outro tópico)

var express = require('express');

Exemplo: libxmljs (framework para tratamento de arquivos xml)

var libxmljs = require("libxmljs");

Depois disso, é só utilizar a API chamando seus métodos.


var express = require('express');
var libxmljs = require("libxmljs");
var app = express();

app.use(express.bodyParser());

app.get('/xml', function(req, res){
    var xml = req.param('xml');
    //incluir num arquivo separado
    var xmlDoc = libxmljs.parseXml(xml);
    var gchild = xmlDoc.get('//para');           
    console.log(gchild.text());    
    // -----------------------
    res.set('content-type', 'text/xml');
    res.send(xmlDoc.toString());
});

app.listen(process.env.PORT);

Exemplo da minha aplicação que recebe um xml da url via POST e retorna o próprio arquivo .xml no response.

segunda-feira, 4 de fevereiro de 2013

Dicas

O node oferece uma ferramenta bem legal para instalar plugins/frameworks no seu projeto.
npm.

Para instalar o Express por exemplo (que mencionei no ultimo post), basta acessar o seu projeto via linha de comando e digitar npm install express, em seguida o node acessa o seu repositório de plugins e procura pela ultima palavra, que no caso é o 'express'.

Alem disso, também da para instalar vários plugins que seu projeto vai utilizar. Para isso, o seu projeto deve ter configurado o arquivo package.json, na raiz do projeto. Ele controla as dependências do projeto, assim como o Maven.

Exemplo:


{
"name": "foo-project",
"version": "0.0.1",
"private": true,
"dependencies": {
"express": "~3.0.0",
"jade": ">= 0.0.1",
"mongoose": ">= 2.6.5"
}

}

No arquivo, estou dizendo que tenho 3 dependências...
o express, o jade e o mongoose.

quando digito npm install na raiz, o node puxa todos plugins e instala na raiz do projeto.


Bem legal!

Primeiros passos...

Olá!
Meu nome é João Carlos, tenho 22 anos e sou desenvolvedor java a 3 ou  quase 4 anos. :P
A ideia desse blog é reunir meus estudos sobre o NodeJS e compartilhar com quem ta começando.

Bom, para começar eu não entendo nada de NodeJS, apenas tenho um conhecimento de JavaScript, nada exagerado. Quem trabalha com java para web, acaba batendo de frente com JavaScript por diversas vezes...
Não vou explicar o que é o NodeJS, pois basta digitar no google que vem as mesmas informações na primeira pagina.
Na verdade, nem sei porque desse meu interesse pelo assunto, mas acho que é algo promissor para um futuro próximo, pois ultimamente tenho visto bastante gente por aí falando sobre sistemas altamente "escaláveis".
Então começando, eu mal sei o significado de sistema escalável... bem, na verdade depois de começar os estudos eu ja entendi o que significa, mais ainda sim me sinto um pouco perdido. Mas pra quem está começando, indico que comece estudando por esse assunto "sistemas escaláveis"

Mas vamos ao que interessa...
Reunindo um pouco do que sei até agora...:

  1. O NodeJS não é muito interessante para aplicações frontend... Tem muitos exemplos por aí que até mostram alguma coisa, mas no fim, é para o backend.
  2. O NodeJS não é produtivo sem um framework (normal, né?), o framework com mais referencias que vi até agora, é o Express
  3. Hospedar é barato! :)
  4. Documentação muito boa, tanto do Node como do Express
  5. JavaScript JavaScript JavaScript JavaScript JavaScript
  6. Orientado a eventos
Não é muito, mas por enquanto é o que tenho certeza do que realmente sei. Fiz alguns helloworlds q o pessoal disponibiliza aí, e também estou seguindo um exercício de criar uma rede social com o livro Aplicações Node usando MongoDB e Backbone...
O que eu achar interessante dessa leitura, compartilharei aqui no blog.


Por hj é só :)