-Another tool for enforcing consistent coding style for JavaScript and CSS is [Prettier](https://github.com/prettier/prettier).
+Outra ferramenta para impor estilo de codificação consistente para JavaScript e CSS é [Prettier](https://github.com/prettier/prettier).
-In most cases, it is recommended to setup Prettier on top of ESLint and stylelint and integrate it into the workflow. This allows the code to be formatted into consistent style automatically via commit hooks, so that developers do not need to spend time formatting the coding style manually.
+Na maioria dos casos, é recomendável configurar Prettier no topo de ESLint e Stylelint, integrem -o ao fluxo de trabalho.Isso permite que o código seja formatado em estilo consistente automaticamente por meio de ganchos de comprometimento, para que os desenvolvedores não precisem gastar tempo formatando o estilo de codificação manualmente.
-Note that Prettier only enforces coding style, but does not check for logic errors in the code. Hence it is not a replacement for linters.
+Observe que o Prettier aplica apenas o estilo de codificação, mas não verifica erros lógicos no código.Portanto, não é um substituto para os liners.
-**Estimated Duration: 1/2 day.** Nothing much to learn here. Add Prettier to your project and add hooks to enforce the coding style!
+**Duração estimada: 1/2 dia.** Nada muito para aprender aqui. Adicione Prettier ao seu projeto e adicione ganchos para aplicar o estilo de codificação!
-#### Study Links
+#### Links de estudo
-- [Prettier Homepage](https://prettier.io/)
-- [Prettier GitHub repo](https://github.com/prettier/prettier)
-- [Comparison between tools that allow you to use ESLint and Prettier together](https://gist.github.com/yangshun/318102f525ec68033bf37ac4a010eb0c)
+- [Prettier Pagina inicial](https://prettier.io/)
+- [Prettier GitHub repositório](https://github.com/prettier/prettier)
+- [Comparação entre ferramentas que permitem usar ESLint e Prettier juntas](https://gist.github.com/yangshun/318102f525ec68033bf37ac4a010eb0c)
-## Types - Flow
+## Tipos - Flow
-Static typing brings about many benefits when writing apps. They can catch common bugs and errors in your code early. Types also serve as a form of documentation for your code and improves the readability of your code. As a code base grows larger, we see the importance of types as they gives us greater confidence when we do refactoring. It is also easier to onboard new members of the team to the project when it is clear what kind of values each object holds and what each function expects.
+A digitação estática traz muitos benefícios ao escrever aplicativos.Eles podem capturar bugs e erros comuns em seu código mais cedo.Os tipos também servem como uma forma de documentação para o seu código e melhora a legibilidade do seu código.À medida que uma base de código aumenta, vemos a importância dos tipos, pois eles nos dão maior confiança quando refatoramos.Também é mais fácil a bordo de novos membros da equipe para o projeto quando fica claro que tipo de valores cada objeto mantém e o que cada função espera.
-Adding types to your code comes with the trade-off of increased verbosity and a learning curve of the syntax. But this learning cost is paid upfront and amortized over time. In complex projects where the maintainability of the code matters and the people working on it change over time, adding types to the code brings about more benefits than disadvantages.
+A adição de tipos ao seu código vem com a troca de aumento da verbosidade e uma curva de aprendizado da sintaxe.Mas esse custo de aprendizado é pago antecipadamente e amortizado ao longo do tempo.Em projetos complexos em que a manutenção dos assuntos do código e das pessoas que trabalham nele mudam com o tempo, a adição de tipos ao código traz mais benefícios do que as desvantagens.
-Recently, I had to fix a bug in a code base that I haven’t touched in months. It was thanks to types that I could easily refresh myself on what the code was doing, and gave me confidence in the fix I made.
+Recentemente, tive que consertar um bug em uma base de código que não toquei há meses.Foi graças aos tipos que eu poderia me refrescar facilmente sobre o que o código estava fazendo e me deu confiança na correção que fiz.
-The two biggest contenders in adding static types to JavaScript are [Flow](https://flow.org/) (by Facebook) and [TypeScript](https://www.typescriptlang.org/) (by Microsoft). As of date, there is no clear winner in the battle. For now, we have made the choice of using Flow. We find that Flow has a lower learning curve as compared to TypeScript and it requires relatively less effort to migrate an existing code base to Flow. Being built by Facebook, Flow has better integration with the React ecosystem out of the box. [James Kyle](https://twitter.com/thejameskyle), one of the authors of Flow, has [written](http://thejameskyle.com/adopting-flow-and-typescript.html) on a comparison between adopting Flow and TypeScript.
+Os dois maiores candidatos ao adicionar tipos estáticos ao JavaScript são [Flow](https://flow.org/) (por Facebook) and [TypeScript](https://www.typescriptlang.org/) (por Microsoft). A partir de agora, não há vencedor claro na batalha.Por enquanto, fizemos a opção de usar Flow. Nós encontramos isso Flow tem uma curva de aprendizado mais baixa em comparação com o datilografado e requer relativamente menos esforço para migrar uma base de código existente para Flow. Sendo construído pelo Facebook,Flow tem melhor integração com o ecossistema React. [James Kyle](https://twitter.com/thejameskyle), um dos autores deFlow, tem [escrita](http://thejameskyle.com/adopting-flow-and-typescript.html) em uma comparação entre adotar Flow e TypeScript.
-Anyway, it is not extremely difficult to move from Flow to TypeScript as the syntax and semantics are quite similar, and we will re-evaluate the situation in time to come. After all, using one is better than not using any at all.
+Enfim, não é extremamente difícil passar de Flow O TypeScript como sintaxe e semântica são bastante semelhantes, e reavaliaremos a situação a tempo que está por vir.Afinal, usar um é melhor do que não usar nenhum.
-Flow recently revamped their homepage and it's pretty neat now!
+O Flow recentemente renovou sua página inicial e está muito legal agora!
-**Estimated Duration: 1 day.** Flow is pretty simple to learn as the type annotations feel like a natural extension of the JavaScript language. Add Flow annotations to your project and embrace the power of type systems.
+**Duração estimada: 1 dia.** O Flow é bastante simples de aprender, pois as anotações de tipo parecem uma extensão natural da linguagem JavaScript.Adicione as anotações de fluxo ao seu projeto e adote o poder dos sistemas de tipo.
-#### Study Links
+#### Links de estudo
-- [Flow Homepage](https://flow.org/)
+- [Flow Pagina inicial](https://flow.org/)
- [TypeScript vs Flow](https://github.com/niieani/typescript-vs-flowtype)
-#### Alternatives
+#### Alternativas
- [TypeScript](https://www.typescriptlang.org/)
-## Build System - webpack
+## Sistema de construção - webpack
-If you take a peek into your `node_modules` directory, you will be appalled by the number of directories that are contained in it. Each babel plugin, lodash function, is a package on its own. When you have multiple projects, these packages are duplicated across each project and they are largely similar. Each time you run `npm install` in a new project, these packages are downloaded over and over again even though they already exist in some other project in your computer.
+Se você dar uma olhada em seu `node_modules` Diretório, você ficará chocado com o número de diretórios que estão contidos nele.Cada plug -in Babel, função do Lodash, é um pacote por conta própria.Quando você tem vários projetos, esses pacotes são duplicados em cada projeto e são amplamente semelhantes.Cada vez que você executa `npm install` em um novo projeto, esses pacotes são baixados repetidamente, mesmo que já existam em algum outro projeto no seu computador.
-There was also the problem of non-determinism in the installed packages via `npm install`. Some of our CI builds fail because at the point of time when the CI server installs the dependencies, it pulled in minor updates to some packages that contained breaking changes. This would not have happened if library authors respected [semver](http://semver.org/) and engineers did not assume that API contracts would be respected all the time.
+Havia também o problema do não determinismo nos pacotes instalados via `npm install`. Algumas de nossas compilações de IC falham porque, no momento em que o servidor CI instala as dependências, ele puxou atualizações menores para alguns pacotes que continham mudanças de ruptura.Isso não teria acontecido se os autores da biblioteca respeitassem [semver](http://semver.org/) E os engenheiros não assumiram que os contratos da API seriam respeitados o tempo todo.
-[Yarn](https://yarnpkg.com/) solves these problems. The issue of non-determinism of installed packages is handled via a `yarn.lock` file, which ensures that every install results in the exact same file structure in `node_modules` across all machines. Yarn utilizes a global cache directory within your machine, and packages that have been downloaded before do not have to be downloaded again. This also enables offline installation of dependencies!
+[Yarn](https://yarnpkg.com/) resolve esses problemas.A questão do não determinismo dos pacotes instalados é tratada por meio de um`yarn.lock` arquivo, que garante que cada instalação resulte na mesma estrutura de arquivo em `node_modules` em todas as máquinas.O YARN utiliza um diretório de cache global em sua máquina e pacotes que foram baixados antes não precisam ser baixados novamente.Isso também permite a instalação offline de dependências!
-The most common Yarn commands can be found [here](https://yarnpkg.com/en/docs/usage). Most other yarn commands are similar to the `npm` equivalents and it is fine to use the `npm` versions instead. One of our favorite commands is `yarn upgrade-interactive` which makes updating dependencies a breeze especially when the modern JavaScript project requires so many dependencies these days. Do check it out!
+Os comandos de fios mais comuns podem ser encontrados [aqui](https://yarnpkg.com/en/docs/usage). A maioria dos outros comandos de fios são semelhantes aos `npm` equivalentes e é bom usar o `npm` versões em vez disso.Um dos nossos comandos favoritos é `yarn upgrade-interactive` O que torna a atualização de dependências é uma brisa, especialmente quando o moderno projeto JavaScript requer tantas dependências atualmente.Confira!
-npm@5.0.0 was [released in May 2017](https://github.com/npm/npm/releases/tag/v5.0.0) and it seems to address many of the issues that Yarn aims to solve. Do keep an eye on it!
+npm@5.0.0 was [Lançado em maio de 2017](https://github.com/npm/npm/releases/tag/v5.0.0) E parece abordar muitos dos problemas que o YARN pretende resolver.Fique de olho nisso!
-**Estimated Duration: 2 hours.**
+**Duração estimada: 2 horas.**
-#### Study Links
+#### Links de estudo
-- [Yarn Homepage](https://yarnpkg.com/)
-- [Yarn: A new package manager for JavaScript](https://code.facebook.com/posts/1840075619545360)
+- [Yarn Pagina inicial](https://yarnpkg.com/)
+- [Yarn: Um novo gerente de pacotes para JavaScript](https://code.facebook.com/posts/1840075619545360)
-#### Alternatives
+#### Alternativas
-- [Good old npm](https://github.com/npm/npm/releases/tag/v5.0.0)
+- [Bom e velho NPM](https://github.com/npm/npm/releases/tag/v5.0.0)
-## Continuous Integration
+## Integração contínua
-We used [Travis CI](https://travis-ci.com/) for our continuous integration (CI) pipeline. Travis is a highly popular CI on Github and its [build matrix](https://docs.travis-ci.com/user/customizing-the-build#Build-Matrix) feature is useful for repositories which contain multiple projects like Grab's. We configured Travis to do the following:
+Nós costumavamos [Travis CI](https://travis-ci.com/) para nosso pipeline de integração contínua (IC).Travis é um IC altamente popular no Github e seu [construir matriz](https://docs.travis-ci.com/user/customizing-the-build#Build-Matrix) o recurso é útil para repositórios que contêm vários projetos como o Grab's.Configuramos Travis para fazer o seguinte:
-- Run linting for the project.
-- Run unit tests for the project.
-- If the tests pass:
- - Test coverage generated by Jest is uploaded to [Codecov](https://codecov.io/).
- - Generate a production bundle with webpack into a `build` directory.
- - `tar` the `build` directory as `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! ↩