.tar` e envie -o para um balde S3 que armazena todas as nossas construções de alcatrão.
+- Publique uma notificação para relaxar para informar sobre o resultado da construção do Travis.
-#### Study Links
+#### Links de estudo
-- [Travis Homepage](https://travis-ci.com/)
-- [Codecov Homepage](https://codecov.io/)
+- [Travis Pagina inicial](https://travis-ci.com/)
+- [Codecov Pagina inicial](https://codecov.io/)
-#### Alternatives
+#### Alternativas
- [Jenkins](https://jenkins.io/)
- [CircleCI](https://circleci.com/)
- [GitLab CI/CD](https://about.gitlab.com/product/continuous-integration/)
-## Hosting and CDN
+## Hospedagem e cdn
-Traditionally, web servers that receive a request for a webpage will render the contents on the server, and return a HTML page with dynamic content meant for the requester. This is known as server-side rendering. As mentioned earlier in the section on Single-page Apps, modern web applications do not involve server-side rendering, and it is sufficient to use a web server that serves static asset files. Nginx and Apache are possible options and not much configuration is required to get things up and runnning. The caveat is that the web server will have to be configured to route all requests to a single entry point and allow client-side routing to take over. The flow for front end routing goes like this:
+Tradicionalmente, os servidores da Web que recebem uma solicitação de uma página da Web renderizam o conteúdo do servidor e retornam uma página HTML com conteúdo dinâmico destinado ao solicitante.Isso é conhecido como renderização do lado do servidor.Conforme mencionado anteriormente na seção em aplicativos de página única, os aplicativos da Web modernos não envolvem a renderização do lado do servidor e é suficiente usar um servidor da Web que serve arquivos de ativos estáticos.Nginx e Apache são opções possíveis e não há muita configuração para levantar as coisas e executar.A ressalva é que o servidor da Web deverá ser configurado para rotear todas as solicitações para um único ponto de entrada e permitir que o roteamento do lado do cliente assuma o controle.O fluxo para o roteamento do front -end é assim:
-1. Web server receives a HTTP request for a particular route, for example `/user/john`.
-1. Regardless of which route the server receives, serve up `index.html` from the static assets directory.
-1. The `index.html` should contain scripts that load up a JavaScript framework/library that handles client-side routing.
-1. The client-side routing library reads the current route, and communicates to the MVC (or equivalent where relevant) framework about the current route.
-1. The MVC JavaScript framework renders the desired view based on the route, possibly after fetching data from an API if required. Example, load up `UsersController`, fetch user data for the username `john` as JSON, combine the data with the view, and render it on the page.
+1. O servidor da web recebe uma solicitação HTTP para uma rota específica, por exemplo `/user/john`.
+2. Independentemente de qual rota o servidor recebe, sirva `index.html` Do diretório de ativos estáticos.
+3. o `index.html` deve conter scripts que carregam uma estrutura/biblioteca JavaScript que lida com o roteamento do lado do cliente.
+4. A biblioteca de roteamento do lado do cliente lê a rota atual e se comunica com a estrutura do MVC (ou equivalente, quando relevante) sobre a rota atual.
+5. A estrutura MVC JavaScript renderiza a visualização desejada com base na rota, possivelmente depois de buscar dados de uma API, se necessário.Exemplo, carregue `UsersController`, buscar dados do usuário para o nome de usuário `john` Como JSON, misture os dados com a visualização e renderizá -los na página.
-A good practice for serving static content is to use caching and putting them on a CDN. We use [Amazon Simple Storage Service (S3)](https://aws.amazon.com/s3/) for hosting our static website content and [Amazon CloudFront](https://aws.amazon.com/cloudfront/) as the CDN. We find that it is an affordable and reliable solution that meets our needs.
+Uma boa prática para servir o conteúdo estático é usar o cache e colocá -los em uma CDN.Nós usamos [Serviço de armazenamento simples da Amazon (S3)](https://aws.amazon.com/s3/) para hospedar nosso conteúdo estático no site e [Amazon CloudFront](https://aws.amazon.com/cloudfront/) como o CDN.Descobrimos que é uma solução acessível e confiável que atende às nossas necessidades.
-S3 provides the option to "Use this bucket to host a website", which essentially directs the requests for all routes to the root of the bucket, which means we do not need our own web servers with special routing configurations.
+O S3 oferece a opção de "usar este balde para hospedar um site", que essencialmente direciona as solicitações de todas as rotas para a raiz do balde, o que significa que não precisamos de nossos próprios servidores da Web com configurações de roteamento especiais.
-An example of a web app that we host on S3 is [Hub](https://hub.grab.com/).
+Um exemplo de um aplicativo da web que hospedamos no S3 é [Hub](https://hub.grab.com/).
-Other than hosting the website, we also use S3 to host the build `.tar` files generated from each successful CI build.
+Além de hospedar o site, também usamos o S3 para hospedar a construção `.tar` arquivos gerados a partir de cada construção de IC de sucesso.
-#### Study Links
+#### Links de estudo
-- [Amazon S3 Homepage](https://aws.amazon.com/s3/)
-- [Hosting a Static Website on Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html)
+- [Amazon S3 Pagina inicial](https://aws.amazon.com/s3/)
+- [Hospedando um site estático na Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html)
#### Alternatives
-- [Google Cloud Platform](https://cloud.google.com/storage/docs/hosting-static-website)
+- [Plataforma Google Cloud](https://cloud.google.com/storage/docs/hosting-static-website)
- [Now](https://zeit.co/now)
-## Deployment
+## Implantação
-The last step in shipping the product to our users is deployment. We used [Ansible Tower](https://www.ansible.com/tower) which is a powerful automation software that enables us to deploy our builds easily.
+A última etapa no envio do produto para nossos usuários é a implantação.Nós costumavamos [Ansible Tower](https://www.ansible.com/tower) que é um poderoso software de automação que nos permite implantar nossas compilações facilmente.
-As mentioned earlier, all our commits, upon successful build, are being uploaded to a central S3 bucket for builds. We follow semver for our releases and have commands to automatically generate release notes for the latest release. When it is time to release, we run a command to tag the latest commit and push to our code hosting environment. Travis will run the CI steps on that tagged commit and upload a tar file (such as `1.0.1.tar`) with the version to our S3 bucket for builds.
+Como mencionado anteriormente, todos os nossos compromissos, após a construção bem -sucedida, estão sendo enviados para um balde central do S3 para construções.Seguimos o Semver para nossos lançamentos e temos comandos para gerar automaticamente notas de lançamento para a versão mais recente.Quando é hora de ser lançado, executamos um comando para marcar o comprimento mais recente e pressionar nosso ambiente de hospedagem de código.Travis executará as etapas do CI naquele compromete e carregará um arquivo alcalão (como `1.0.1.tar`) com a versão do nosso balde S3 para construções.
-On Tower, we simply have to specify the name of the `.tar` we want to deploy to our hosting bucket, and Tower does the following:
+Na torre, simplesmente temos que especificar o nome do `.tar` Queremos implantar para o nosso balde de hospedagem, e a Tower faz o seguinte:
-1. Download the desired `.tar` file from our builds S3 bucket.
-1. Extracts the contents and swap in the configuration file for specified environment.
-1. Upload the contents to the hosting bucket.
-1. Post a notification to Slack to inform about the successful deployment.
+1. Baixe o desejado `.tar` Arquivo do nosso balde S3 Builds.
+2. Extrai o conteúdo e a troca no arquivo de configuração para o ambiente especificado.
+3. Carregue o conteúdo no balde de hospedagem.
+4. Publique uma notificação para informar sobre a implantação bem-sucedida.
-This whole process is done under 30 seconds and using Tower has made deployments and rollbacks easy. If we realize that a faulty deployment has occurred, we can simply find the previous stable tag and deploy it.
+Todo esse processo é realizado em menos de 30 segundos e o uso da Tower facilitou as implantações e as reversões.Se percebermos que ocorreu uma implantação defeituosa, podemos simplesmente encontrar a tag estável anterior e implantá-la.
-#### Study Links
+#### Links de estudo
-- [Ansible Tower Homepage](https://www.ansible.com/tower)
+- [Ansible Tower Pagina inicial](https://www.ansible.com/tower)
-#### Alternatives
+#### Alternativas
- [Jenkins](https://jenkins.io/)
-## Monitoring
+## Monitoramento
-After shipping the product, you would also want to monitor it for any errors.
+Depois de enviar o produto, você também gostaria de monitorá -lo por qualquer erro.
-Apart from network level monitoring from our CDN service provider and hosting provider, we use [Sentry](https://sentry.io/) to monitor errors that originates from the app logic.
+Além do monitoramento do nível da rede do nosso provedor de serviços de CDN e provedor de hospedagem, usamos [Sentry](https://sentry.io/) para monitorar erros originários da lógica do aplicativo.
-#### Study Links
+#### Links de estudo
-- [Sentry Homepage](https://sentry.io/)
+- [Sentry Pagina inicial](https://sentry.io/)
-### The Journey has Just Begun
+### A jornada acabou de começar
-Congratulations on making it this far! Front end development today is [hard](https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f), but it is also more interesting than before. What we have covered so far will help any new engineer to Grab's web team to get up to speed with our technologies pretty quickly. There are many more things to be learnt, but building up a solid foundation in the essentials will aid in learning the rest of the technologies. This helpful [front end web developer roadmap](https://github.com/kamranahmedse/developer-roadmap#-front-end-roadmap) shows the alternative technologies available for each aspect.
+Parabéns por fazer isso até aqui!O desenvolvimento do front -end hoje é [hard](https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f), Mas também é mais interessante do que antes.O que abordamos até agora ajudará qualquer novo engenheiro a agarrar a equipe da web a se atualizar com nossas tecnologias rapidamente.Há muito mais coisas a serem aprendidas, mas a construção de uma base sólida nos itens essenciais ajudará a aprender o restante das tecnologias.Isso útil [Roteiro do desenvolvedor da web front -end](https://github.com/kamranahmedse/developer-roadmap#-front-end-roadmap) mostra as tecnologias alternativas disponíveis para cada aspecto.
-We made our technical decisions based on what was important to a rapidly growing Grab Engineering team - maintainability and stability of the code base. These decisions may or may not apply to smaller teams and projects. Do evaluate what works best for you and your company.
+Tomamos nossas decisões técnicas com base no que era importante para uma equipe de engenharia de Grab em rápido crescimento - manutenção e estabilidade da base de código.Essas decisões podem ou não se aplicar a equipes e projetos menores.Avalie o que funciona melhor para você e sua empresa.
-As the front end ecosystem grows, we are actively exploring, experimenting and evaluating how new technologies can make us a more efficient team and improve our productivity. We hope that this post has given you insights into the front end technologies we use at Grab. If what we are doing interests you, [we are hiring](https://grab.careers)!
+À medida que o ecossistema do front end cresce, estamos explorando ativamente, experimentando e avaliando como as novas tecnologias podem nos tornar uma equipe mais eficiente e melhorar nossa produtividade.Esperamos que este post tenha lhe dado informações sobre as tecnologias de front -end que usamos no Grab.Se o que estamos fazendo interesses você, [estamos contratando](https://grab.careers)!
-*Many thanks to [Joel Low](https://github.com/lowjoel), [Li Kai](https://github.com/li-kai) and [Tan Wei Seng](https://github.com/xming13) who reviewed drafts of this article.*
+*Muito obrigado a [Joel Low](https://github.com/lowjoel), [Li Kai](https://github.com/li-kai) e [Tan Wei Seng](https://github.com/xming13) quem revisou os rascunhos deste artigo.*
-### More Reading
+### Mais leitura
-**General**
+**Em geral**
-- [State of the JavaScript Landscape: A Map for Newcomers](http://www.infoq.com/articles/state-of-javascript-2016)
-- [The Hitchhiker's guide to the modern front end development workflow](http://marcobotto.com/the-hitchhikers-guide-to-the-modern-front-end-development-workflow/)
-- [How it feels to learn JavaScript in 2016](https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f#.tmy8gzgvp)
-- [Roadmap to becoming a web developer in 2017](https://github.com/kamranahmedse/developer-roadmap#-frontend-roadmap)
-- [Modern JavaScript for Ancient Web Developers](https://trackchanges.postlight.com/modern-javascript-for-ancient-web-developers-58e7cae050f9)
+- [Cenário do estado de JavaScript: um mapa para recém -chegados](http://www.infoq.com/articles/state-of-javascript-2016)
+- [O Guia do Malfiário para o Fluxo de Trabalho de Desenvolvimento de Front End moderno](http://marcobotto.com/the-hitchhikers-guide-to-the-modern-front-end-development-workflow/)
+- [Como é aprender JavaScript em 2016](https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f#.tmy8gzgvp)
+- [Roteiro para se tornar um desenvolvedor da web em 2017](https://github.com/kamranahmedse/developer-roadmap#-frontend-roadmap)
+- [JavaScript moderno para desenvolvedores da Web antigos](https://trackchanges.postlight.com/modern-javascript-for-ancient-web-developers-58e7cae050f9)
-**Other Study Plans**
+**Outros planos de estudo**
-- [A Study Plan To Cure JavaScript Fatigue](https://medium.freecodecamp.com/a-study-plan-to-cure-javascript-fatigue-8ad3a54f2eb1#.c0wnrrcwd)
-- [JS Stack from Scratch](https://github.com/verekia/js-stack-from-scratch)
-- [A Beginner’s JavaScript Study Plan](https://medium.freecodecamp.com/a-beginners-javascript-study-plan-27f1d698ea5e#.bgf49xno2)
+- [Um plano de estudo para curar fadiga de JavaScript](https://medium.freecodecamp.com/a-study-plan-to-cure-javascript-fatigue-8ad3a54f2eb1#.c0wnrrcwd)
+- [JS Stack do zero](https://github.com/verekia/js-stack-from-scratch)
+- [Plano de estudo JavaScript para iniciantes](https://medium.freecodecamp.com/a-beginners-javascript-study-plan-27f1d698ea5e#.bgf49xno2)
-### Footnotes
+### Notas de rodapé
-1. This can be solved via webpack code splitting. ↩
+1. Isso pode ser resolvido via Webpack Code Sclitting. ↩
-2. Universal JS to the rescue! ↩
+2. Universal JS para o resgate! ↩