Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Corrigindo escrita do post #23

Open
wants to merge 1 commit into
base: gh-pages
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions _posts/2013-6-5-entendendo-o-node.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Quais são alguns exemplos de I/O? Bom... aqui tem um diagrama de uma aplicaçã

Se você não entende todas as diferentes coisas que estão nesse diagrama, fique tranquilo. O ponto é, mostrar um unico nó de processo (o hexagono no meio) pode agir como o corredor entre todos os diferentes pontos finais de I/O (laranja e roxo representam I/O).

Normalmente na construção desses sistemas temas as seguintes situações:
Normalmente na construção desses sistemas temos as seguintes situações:

- Dificuldade de programar, mas tem um super rendimento com resultados rápidos (igual escrever servidores web do zero em C)
- Facil de programar mas não é o ideal em relação a velocidade/robustez (semelhando ao caso de tentar o upload de um arquivo de 5GB e o seu servidor quebrar)
Expand All @@ -37,10 +37,10 @@ Em vez disso, node é em algum lugar no meio. Assim:
- Projetado para ser simples e portanto relativamente simples de entender o uso
- Normalmente para programas baseados em I/O que precisam ser rápidos e/ou lidar com muitas conexões

No baixo nivel, node é descrito como uma ferramente para escrever os seguintes dois maiores tipos de programas:
No baixo nivel, node é descrito como uma ferramenta para escrever os seguintes dois maiores tipos de programas:

- Programas de reder ustilzando protocolos como: HTTP, TCP, UDP, DNS e SSL
- Programas de leitura e escrita de dados para o arqivos do sistema ou processes/memôria local
- Programas de rede utilizando protocolos como: HTTP, TCP, UDP, DNS e SSL
- Programas de leitura e escrita de dados para o arqivos do sistema ou processes/memória local

O que é um programa baseado em "I/O"? Aqui estão os pontos comuns do I/O:

Expand All @@ -51,8 +51,8 @@ O que é um programa baseado em "I/O"? Aqui estão os pontos comuns do I/O:

Node faz o I/O de forma assíncrona [asynchronous](http://en.wikipedia.org/wiki/Asynchronous_I/O) para lidar com diferentes situações simultaneas. Por exemplo, se você vai até um fast food e faz o pedido de um cheesebuger você tem de imadiato o pedido feito mas não o lanche, então você espara ele ficar pronto para comer. Neste meio tempo outros pedidos estão sendo feitos na lanchonete para outras pessoas. Imagine que você tenha que esperar o registro do seu cheeseburger, bloqueando outras pessoas porque o seu pedido tem que ser feito para o de outra começar enquanto preparam o seu. Isso é chamado de **I/O bloqueante** porque todo o I/O (cozinhar cheeseburgers) acontece um a um enfileirando tudo. O Node, por sua vez é **não-bloqueante**, significando que os pedidos serão feitos e entregues quando estiverem prontos.

Aqui tem uma lista de coisas divertidas que podem serem feitas com graças ao node por sua natureza não bloqueante:
Aqui tem uma lista de coisas divertidas que podem ser feitas graças ao node por sua natureza não bloqueante:

- Controle [quadicopteros voadores](http://nodecopter.com)
- Escrever bots par ao chat IRC
- Criar [robôs bipedes que andam](http://www.youtube.com/watch?v=jf-cEB3U2UQ)
- Criar [robôs bipedes que andam](http://www.youtube.com/watch?v=jf-cEB3U2UQ)