From 8f6a2d058481c4be8bc89d9275de66a0a1a6ba75 Mon Sep 17 00:00:00 2001 From: sagirk Date: Sun, 10 Mar 2019 14:27:01 +0530 Subject: [PATCH 1/5] chore(march-2019): service maintenance tasks - Update top badges with 1. best practices item count (81 as on Mar 10, 2019) 2. last update date (Mar 10, 2019) 3. Node.js version (latest LTS - 10.15.3) - Update 'thank you' stars & flowers Closes: https://github.com/i0natan/nodebestpractices/issues/338 --- README.md | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index ea9ae455..e48c6ad4 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@
- 79 items Last update: February 1st, 2019 Updated for Node 10.15.1 LTS + 81 items Last update: March 10, 2019 Updated for Node 10.15.3 LTS

@@ -49,10 +49,10 @@ Read in a different language: [![CN](/assets/flags/CN.png)**CN**](/README.chines 1. [Project Structure Practices (5)](#1-project-structure-practices) 2. [Error Handling Practices (11) ](#2-error-handling-practices) 3. [Code Style Practices (12) ](#3-code-style-practices) -4. [Testing And Overall Quality Practices (9) ](#4-testing-and-overall-quality-practices) +4. [Testing And Overall Quality Practices (10) ](#4-testing-and-overall-quality-practices) 5. [Going To Production Practices (18) ](#5-going-to-production-practices) 6. [Security Practices (24)](#6-security-best-practices) -7. [Performance Practices (in progress)](#7-performance-best-practices) +7. [Performance Practices (1) (In Progress️ ✍️)](#7-performance-best-practices)

@@ -992,7 +992,7 @@ All statements above will return false if used with `===` To maintain this guide and keep it up to date, we are constantly updating and improving the guidelines and best practices with the help of the community. You can follow our [milestones](https://github.com/i0natan/nodebestpractices/milestones) and join the working groups if you want to contribute to this project -

+
## Translations @@ -1000,6 +1000,7 @@ All translations are contributed by the community. We will be happy to get any h ### Completed translations +- ![BR](/assets/flags/BR.png) [Brazilian Portuguese](/README.brazilian-portuguese.md) - Courtesy of [Marcelo Melo](https://github.com/marcelosdm) - ![CN](/assets/flags/CN.png) [Chinese](README.chinese.md) - Courtesy of [Matt Jin](https://github.com/mattjin) ### Translations in progress @@ -1026,6 +1027,7 @@ Meet the steering committee members - the people who work together to provide gu Independent Node.js consultant who works with customers in USA, Europe, and Israel on building large scale scalable Node applications. Many of the best practices above were first published at [goldbergyoni.com](https://goldbergyoni.com). Reach Yoni at @goldbergyoni or me@goldbergyoni.com
+ [Bruno Scheufler](https://github.com/BrunoScheufler) @@ -1034,6 +1036,7 @@ Independent Node.js consultant who works with customers in USA, Europe, and Isra 💻 full-stack web developer and Node.js enthusiast
+ [Kyle Martin](https://github.com/js-kyle) @@ -1043,6 +1046,7 @@ Independent Node.js consultant who works with customers in USA, Europe, and Isra Full Stack Developer & Site Reliability Engineer based in New Zealand, interested in web application security, and architecting and building Node.js applications to perform at global scale.
+ [Sagir Khan](https://github.com/sagirk) @@ -1060,13 +1064,17 @@ Thank you to all our collaborators! 🙏 Our collaborators are members who are contributing to the repository on a reguar basis, through suggesting new best practices, triaging issues, reviewing pull requests and more. If you are interested in helping us guide thousands of people to craft better Node.js applications, please read our [contributor guidelines](/.operations/CONTRIBUTING.md) 🎉 -Ido Richter (Founder) - -Keith Holliday +| | | +| :--: | :--: | +| [Ido Richter (Founder)](https://github.com/idori) | [Keith Holliday](https://github.com/TheHollidayInn) | ### Past collaborators -- [Refael Ackermann](https://github.com/refack) +| | +| :--: | +| [Refael Ackermann](https://github.com/refack) | + +
## Thank You Notes @@ -1136,9 +1144,15 @@ We appreciate any contribution, from a single word fix to a new best practice. B 🌻 [Remek Ambroziak](https://github.com/reod), 🌻 [Sergii Paryzhskyi](https://github.com/HeeL), 🌻 [Kapil Patel](https://github.com/kapilepatel), -🌻 [迷渡](https://github.com/justjavac) +🌻 [迷渡](https://github.com/justjavac), +🌻 [Hozefa](https://github.com/hozefaj), +🌻 [Ethan](https://github.com/el-ethan), +🌻 [Sam](https://github.com/milkdeliver), +🌻 [Arlind](https://github.com/ArlindXh), +🌻 [Teddy Toussaint](https://github.com/ttous), +🌻 [Lewis](https://github.com/LewisArdern) -### Stars
+### Stars ⭐ [Kyle Martin](https://github.com/js-kyle), ⭐ [Keith Holliday](https://github.com/TheHollidayInn), From d4e69a544fcd753e0a602ac9fe773af54a701515 Mon Sep 17 00:00:00 2001 From: sagirk Date: Sun, 10 Mar 2019 15:00:42 +0530 Subject: [PATCH 2/5] chore(march-2019): align BR translation with the English version - Ensure BR translation is aligned with the English version --- README.brazilian-portuguese.md | 195 ++++++++++++++++++++++++--------- README.md | 7 +- 2 files changed, 145 insertions(+), 57 deletions(-) diff --git a/README.brazilian-portuguese.md b/README.brazilian-portuguese.md index 9fbf6c53..4e465421 100644 --- a/README.brazilian-portuguese.md +++ b/README.brazilian-portuguese.md @@ -9,7 +9,7 @@
- 79 items Last update: February 1st, 2019 Updated for Node 10.15.1 LTS + 81 items Last update: March 10, 2019 Updated for Node 10.15.3 LTS

@@ -18,10 +18,22 @@
-Leia em diferentes linguagens: [![CN](/assets/flags/CN.png)**CN**](/README.chinese.md) [(![BR](/assets/flags/BR.png)**BR**, ![ES](/assets/flags/ES.png)**ES**, ![FR](/assets/flags/FR.png)**FR**, ![HE](/assets/flags/HE.png)**HE**, ![KR](/assets/flags/KR.png)**KR**, ![RU](/assets/flags/RU.png)**RU** and ![TR](/assets/flags/TR.png)**TR** in progress!)](#translations) +Leia em diferentes linguagens: [![CN](/assets/flags/CN.png)**CN**](/README.chinese.md), [![BR](/assets/flags/BR.png)**BR**](/README.brazilian-portuguese.md) [(![ES](/assets/flags/ES.png)**ES**, ![FR](/assets/flags/FR.png)**FR**, ![HE](/assets/flags/HE.png)**HE**, ![KR](/assets/flags/KR.png)**KR**, ![RU](/assets/flags/RU.png)**RU** and ![TR](/assets/flags/TR.png)**TR** in progress!)](#translations)
+###### Built and maintained by our [Steering Committee](#steering-committee) and [Collaborators](#collaborators) + +# Latest Best Practices and News + +- **New Best Practice:** 4.2: Include 3 parts in each test name - [_From the section "Testing and overall quality"_](https://github.com/i0natan/nodebestpractices#4-testing-and-overall-quality-practices) + +- **New Best Practice:** 7.1: Prefer native JS methods over user-land utils like Lodash - [_From the section "Performance"_](https://github.com/i0natan/nodebestpractices#7-performance-best-practices) + +- **News updates** - [We kicked-off the performance section, wanna join?](https://github.com/i0natan/nodebestpractices/issues/302) + +

+ # Bem-vindo! 3 Coisas Que Você Precisa de Saber: **1. Quando você lê aqui, na verdade você lê alguns dos melhores artigos de Node.js -** este é um resumo e curadoria dos mais bem ranqueados conteúdos sobre as melhores práticas do Node.js. @@ -30,19 +42,19 @@ Leia em diferentes linguagens: [![CN](/assets/flags/CN.png)**CN**](/README.chine **3. A maioria dos tópicos possuem informações adicionais -** perto dos tópicos das melhores práticas, você encontrará o link **🔗Leia Mais** que irá apresentar exemplos de códigos, citações de blogs selecionados e mais informações. -


+

## Índice 1. [Práticas de Estrutura de Projeto (5)](#1-práticas-de-estrutura-de-projeto) 2. [Práticas de Tratamento de Erros (11) ](#2-práticas-de-tratamento-de-erros) 3. [Práticas de Estilo de Código (12) ](#3-práticas-de-estilo-de-código) -4. [Práticas de Testes e Qualidade Geral (8) ](#4-práticas-de-testes-e-qualidade-geral) -5. [Práticas de Produção (17) ](#5-práticas-de-produção) -6. :star: Novo: [Práticas de Segurança (23)](#6-práticas-de-segurança) -7. Práticas de Performance ([em breve](https://github.com/i0natan/nodebestpractices/milestones?direction=asc&sort=due_date&state=open)) +4. [Práticas de Testes e Qualidade Geral (10) ](#4-práticas-de-testes-e-qualidade-geral) +5. [Práticas de Produção (18) ](#5-práticas-de-produção) +6. [Práticas de Segurança (24)](#6-práticas-de-segurança) +7. [Práticas de Performance (1) (Em Progresso ✍️)](#7-práticas-de-performance) -


+

# `1. Práticas de Estrutura de Projeto` @@ -96,9 +108,7 @@ Leia em diferentes linguagens: [![CN](/assets/flags/CN.png)**CN**](/README.chine


-#

⬆ Voltar ao topo

- -

⬆ Voltar ao topo

+

⬆ Voltar ao topo

# `2. Práticas de Tratamento de Erros` @@ -212,7 +222,7 @@ Leia em diferentes linguagens: [![CN](/assets/flags/CN.png)**CN**](/README.chine


-

⬆ Voltar ao topo

+

⬆ Voltar ao topo

# `3. Práticas de Estilo de Código` @@ -263,6 +273,22 @@ function someFunction() **Caso contrário:** Como visto em seções anteriores, interpretadores do JavaScript adicionam ponto e vírgula automaticamente no final das declarações caso não exista, o que pode levar a resultados não desejados. +### Code example + +```javascript +// Do +const count = 2; +(function doSomething() { + // do something amazing +}()); + +// Avoid — throws exception +const count = 2 // it tries to run 2(), but 2 is not a function +(function doSomething() { + // do something amazing +}()) +``` +

## ![✔] 3.5 Nomeie Suas Funções @@ -383,7 +409,7 @@ Todas as declarações acima false se feitas com `===`.


-

⬆ Voltar ao topo

+

⬆ Voltar ao topo

# `4. Práticas de Testes e Qualidade Geral` @@ -395,7 +421,17 @@ Todas as declarações acima false se feitas com `===`.

-## ![✔] 4.2 Detecte problemas de código com um linter +## ![✔] 4.2 Include 3 parts in each test name + +**TL;DR:** Make the test speak at the requirements level so it's self explanatory also to QA engineers and developers who are not familiar with the code internals. State in the test name what is being tested (unit under test), under what circumstances and what is the expected result + +**Otherwise:** A deployment just failed, a test named “Add product” failed. Does this tell you what exactly is malfunctioning? + +🔗 [**Read More: Include 3 parts in each test name**](/sections/testingandquality/3-parts-in-name.md) + +

+ +## ![✔] 4.3 Detecte problemas de código com um linter **TL;DR:** Use um code linter para checar a qualidade básica e detectar antipadrões antecipadamente. Rode-o antes de qualquer teste e adicione-o como um pre-commit git-hook para minimizar o tempo necessário para revisar e corrigir qualquer problema. Veja também [Seção 3](https://github.com/i0natan/nodebestpractices#3-code-style-practices) no Prática de Estilo de Código. @@ -403,7 +439,7 @@ Todas as declarações acima false se feitas com `===`.

-## ![✔] 4.3 Escolha cuidadosamente sua plataforma de Integração Contínua - CI (Jenkins vs CircleCI vs Travis vs Resto do mundo) +## ![✔] 4.4 Escolha cuidadosamente sua plataforma de Integração Contínua - CI (Jenkins vs CircleCI vs Travis vs Resto do mundo) **TL;DR:** Sua plataforma de integração contínua (CICD) irá hospedar todas as ferramentas de qualidade (por exemplo, teste, lint), então ela deve vir com um ecosistema de plugins arrebatador. O [Jenkins](https://jenkins.io/) costumava ser o padrão de muitos projetos, pois tem a maior comunidade, juntamente com uma poderosa plataforma, ao preço de configuração complexa que exige uma curva de aprendizado íngreme. Atualmente, ficou bem mais fácil para configurar uma solução de CI usando ferramentas SaaS como [CircleCI](https://circleci.com) e outras. Essas ferramentas permitem a criação de um pipeline de CI flexível sem o peso de gerenciar toda a infraestrutura. Eventualmente, é um perde e ganha entre robustez e velocidade - escolha seu lado com cuidado! @@ -413,7 +449,7 @@ Todas as declarações acima false se feitas com `===`.

-## ![✔] 4.4 Inspencione constantemente por dependências vulneráveis +## ![✔] 4.5 Inspencione constantemente por dependências vulneráveis **TL;DR:** Até mesmo as dependências mais confiáveis, como o Express, têm vulnerabilidades conhecidas. Isso pode ser facilmente contornado usando ferramentas comunitárias e comerciais como 🔗 [nsp](https://github.com/nodesecurity/nsp) que pode ser invocado a partir do seu CI em cada build. @@ -421,7 +457,7 @@ Todas as declarações acima false se feitas com `===`.

-## ![✔] 4.5 Marque seus testes +## ![✔] 4.6 Marque seus testes **TL;DR:** Diferentes testes devem rodar em diferentes cenários: testes de rápidos, sem IO, devem ser executados quando um desenvolvedor salva ou faz commit em um arquivo, testes completos de ponta a ponta geralmente são executados quando uma nova solicitação de request é enviada, etc. Isso pode ser conseguido através da marcação de testes com palavras-chave como #cold #api #sanity. Assim você pode invocar o subconjunto desejado. Por exemplo, é desta forma que você invocaria apenas o grupo de sanity test usando o [Mocha](https://mochajs.org/): mocha --grep 'sanity' @@ -429,7 +465,7 @@ Todas as declarações acima false se feitas com `===`.

-## ![✔] 4.6 Verifique a cobertura de seu teste, isso te ajuda a identificar padrões incorretos de teste +## ![✔] 4.7 Verifique a cobertura de seu teste, isso te ajuda a identificar padrões incorretos de teste **TL;DR:** Ferramentas de cobertura de código como [Istanbul/NYC ](https://github.com/gotwarlost/istanbul), são ótimas por 3 motivos: elas são gratuitas (nenhum esforço é necessário para beneficiar esses relatórios), elas ajuda a identificar diminuição na cobertura de testes, e por último mas não menos importante, ela destacam a incompatibilidade de testes: olhando relatórios coloridos de cobertura de código, você pode notar, por exemplo, áreas de código que nunca são testadas como cláusulas catch (o que significa que os testes só invocam os caminhos felizes e não como o aplicativo se comporta em erros). Configure-o para falhas se a cobertura estiver abaixo de um certo limite. @@ -437,7 +473,7 @@ Todas as declarações acima false se feitas com `===`.

-## ![✔] 4.7 Inspecione pacotes desatualizados +## ![✔] 4.8 Inspecione pacotes desatualizados **TL;DR:** Use sua ferramenta preferida (por exemplo, 'npm outdated' ou [npm-check-updates](https://www.npmjs.com/package/npm-check-updates) para detectar pacotes instalados que estão desatualizados, injetar essa verificação em seu pipeline de CI e até mesmo fazer uma falha grave em um cenário grave. Por exemplo, um cenário grave pode ser quando um pacote instalado esteja há 5 commits atrás (por exemplo, a versão local é 1.3.1 e a versão no repositório é 1.3.8) ou está marcada como descontinuada pelo autor - mate o build e impeça a implantação desta versão. @@ -445,7 +481,7 @@ Todas as declarações acima false se feitas com `===`.

-## ![✔] 4.8 Use docker-compose para testes e2e +## ![✔] 4.9 Use docker-compose para testes e2e **TL;DR:** Teste de ponta a ponta (end to end, ou e2e), que inclui dados ativos, costumava ser o elo mais fraco do processo de CI, já que depende de vários serviços pesados como o banco de dados. O docker-compose deixa isso mamão com açúcar, criando um ambiente de produção usando um arquivo de texto simples e comandos fáceis. Isto permite criar todos os serviços dependentes, banco de dados e rede isolada para teste e2e. Por último mas não menos importante, ele pode manter um ambiente sem estado que é invocado antes de cada suíte de testes e é encerrado logo após. @@ -453,7 +489,7 @@ Todas as declarações acima false se feitas com `===`.

-## ![✔] 4.9 Refatore regularmente usando ferramentas de análise estática +## ![✔] 4.10 Refatore regularmente usando ferramentas de análise estática **TL;DR:** O uso de ferramentas de análise estática ajuda fornecendo maneiras objetivas de melhorar a qualidade do código e manter seu código sustentável. Você pode adicionar ferramentas de análise estática para seu build de Integração Contínua (CI) falhar quando encontre code smells. Seus principais pontos de vantagem sobre o linting são a abilidade de inspecionar a qualidade no contexto de múltiplos arquivos (por exemplo, detectar duplicidades), realizar análises avançadas (por exemplo, complexidade de código), e acompanhar histórico e progresso de problemas de código. Dois dexemplos de ferramentas que podem ser utilizadas são [Sonarqube](https://www.sonarqube.org/) (mais de 2.600 [stars](https://github.com/SonarSource/sonarqube)) e [Code Climate](https://codeclimate.com/) (mais de 1.500 [stars](https://github.com/codeclimate/codeclimate)). @@ -463,7 +499,7 @@ Todas as declarações acima false se feitas com `===`.


-

⬆ Voltar a topo

+

⬆ Voltar ao topo

# `5. Boas Práticas de Produção` @@ -633,6 +669,8 @@ Todas as declarações acima false se feitas com `===`. 🔗 [**Leia Mais: Use uma versão LTS do Node.js**](/sections/production/LTSrelease.md) +

+ ## ![✔] 5.18. Não direcione logs dentro do aplicativo **TL;DR:** O destino dos logs não devem ser codificados na unha por desenvolvedores, dentro do código da aplicação. Ao invés disso, deve ser definido pelo ambiente de execução no qual a aplicação é executada. Desenvolvedores devem escrever logs para stdout usando um utilitário logger e depois deixar o ambiente de execução (container, servidor, etc) canalizar o fluxo do stdout para o destino apropriado (por exemplo: Splunk, Graylog, ElasticSearch, etc). @@ -643,7 +681,7 @@ Todas as declarações acima false se feitas com `===`.


-

⬆ Voltar ao topo

+

⬆ Voltar ao topo

# `6. Boas Práticas em Segurança` @@ -931,7 +969,7 @@ Todas as declarações acima false se feitas com `===`.


-

⬆ Return to top

+

⬆ Voltar ao topo

# `7. Boas Práticas em Performance` @@ -948,21 +986,11 @@ Tenha em mente que, com a introdução do novo motor V8 juntamente com os novos


-# `Práticas de API` - -## Nossos colaboradores estão trabalhando nesta seção. Quer se juntar a nós? - -# `Práticas de Performance` - -## Nossos colaboradores estão trabalhando nesta seção. Quer se juntar a nós? - -


- # Feitos Para manter este guia e deixá-lo atualizado, estamos constantemente atualizando e aprimorando as diretrizes e as práticas recomendadas com a ajuda da comunidade. Você pode acompanhar nossos [feitos](https://github.com/i0natan/nodebestpractices/milestones) e se juntar aos grupos de trabalho, caso queira contribuir com este projeto. -

+
## Traduções @@ -970,6 +998,7 @@ Todas as traduções são contribuições da comunidade. Nós ficaremos felizes ### Traduções concluídas +- ![BR](/assets/flags/BR.png) [Português Brasileiro](/README.brazilian-portuguese.md) - Cortesia de [Marcelo Melo](https://github.com/marcelosdm) - ![CN](/assets/flags/CN.png) [Chinês](README.chinese.md) - Cortesia de [Matt Jin](https://github.com/mattjin) ### Traduções em andamento @@ -980,33 +1009,69 @@ Todas as traduções são contribuições da comunidade. Nós ficaremos felizes - ![RU](/assets/flags/RU.png) [Russo](https://github.com/i0natan/nodebestpractices/blob/russian-translation/README.russian.md) ([Discussão](https://github.com/i0natan/nodebestpractices/issues/105)) - ![ES](/assets/flags/ES.png) [Espanhol](https://github.com/i0natan/nodebestpractices/blob/spanish-translation/README.spanish.md) ([Discussão](https://github.com/i0natan/nodebestpractices/issues/95)) - ![TR](/assets/flags/TR.png) Turco ([Discussão](https://github.com/i0natan/nodebestpractices/issues/139)) -- ![BR](/assets/flags/BR.png) Português Brasileiro ([Discussão](https://github.com/i0natan/nodebestpractices/issues/223)) -


+

-# Colaboradores +## Steering Committee -## `Yoni Goldberg` +Meet the steering committee members - the people who work together to provide guidance and future direction to the project. In addition, each member of the committee leads a project tracked under our [Github projects](https://github.com/i0natan/nodebestpractices/projects). + + + +[Yoni Goldberg](https://github.com/i0natan) + + Consultor de Node.js independente, que trabalha com clientes nos EUA, Europa e Israel, na criação de aplicações Node dimensionáveis em grande escala. Muitas das melhores práticas acima foram publicadas primeiro em um post em seu blog em [goldbergyoni.com](https://goldbergyoni.com). Encontre-o como @goldbergyoni ou me@goldbergyoni.com -## `Ido Richter` +
-👨‍💻 Engenheiro de software, 🌐 web developer, 🤖 entusiasta de emojis + -## `Refael Ackermann` [@refack](https://github.com/refack) <refack@gmail.com> (he/him) - -Colaborador do Core do Node.js Core, vem "nodeando" desde a versão 0.4 e "nodeou" em vários sites em produção. Fundou o repositório `node4good`, dos projetos [`lodash-contrib`](https://github.com/node4good/lodash-contrib), [`formage`](https://github.com/node4good/formage), e [`asynctrace`](https://github.com/node4good/asynctrace). Também o `refack` no freenode, Twitter, GitHub, GMail e muitas outras plataformas. Aberto à mensagens inbox, feliz em ajudar. - -## `Bruno Scheufler` +[Bruno Scheufler](https://github.com/BrunoScheufler) + 💻 full-stack web developer e entusiasta de Node.js -## `Kyle Martin` [@js-kyle](https://github.com/js-kyle) +
-Full Stack Developer da Nova Zelândia, interessado em arquitetar e desenvolver aplicações Node.js para rodar em escala global. Um grande contribuidor para software de código aberto, incluindo o Core do Node.js + -


+[Kyle Martin](https://github.com/js-kyle) + + + +Full Stack Developer e Engenheiro de Confiabilidade de Sites com sede na Nova Zelândia, interessados ​​em segurança de aplicativos da Web, e arquitetando e construindo aplicativos Node.js para executar em escala global. +
+ + + +[Sagir Khan](https://github.com/sagirk) + + + + +Deep specialist in JavaScript and its ecosystem — React, Node.js, MongoDB, pretty much anything that involves using JavaScript/JSON in any layer of the system — building products using the web platform for the world’s most recognized brands. Individual Member of the Node.js Foundation, collaborating on the Community Committee's Website Redesign Initiative. + +
+ +## Colaboradores + +Thank you to all our collaborators! 🙏 + +Our collaborators are members who are contributing to the repository on a reguar basis, through suggesting new best practices, triaging issues, reviewing pull requests and more. If you are interested in helping us guide thousands of people to craft better Node.js applications, please read our [contributor guidelines](/.operations/CONTRIBUTING.md) 🎉 + +| | | +| :--: | :--: | +| [Ido Richter (Founder)](https://github.com/idori) | [Keith Holliday](https://github.com/TheHollidayInn) | + +### Past collaborators + +| | +| :--: | +| [Refael Ackermann](https://github.com/refack) | + +
# Notas de Agradecimento @@ -1058,11 +1123,37 @@ Este repositório é mantido atualizado graças à ajuda da comunidade. Nós apr 🌻 [Sagir Khan](https://github.com/sagirk), 🌻 [Jason Kim](https://github.com/serv), 🌻 [Mitja O.](https://github.com/Max101), -🌻 [Sandro Miguel Marques](https://github.com/SandroMiguel) +🌻 [Sandro Miguel Marques](https://github.com/SandroMiguel), +🌻 [Gabe Kuslansky](https://github.com/GabeKuslansky), +🌻 [Ron Gross](https://github.com/ripper234), +🌻 [Valeri Karpov](https://github.com/vkarpov15) +🌻 [Sergio](https://github.com/imsergiobernal), +🌻 [Duarte Mendes](https://github.com/duartemendes), +🌻 [Nikola Telkedzhiev](https://github.com/ntelkedzhiev), +🌻 [Vitor Godoy](https://github.com/vitordagamagodoy), +🌻 [Manish Saraan](https://github.com/manishsaraan), +🌻 [Sangbeom Han](https://github.com/uronly14me), +🌻 [blackmatch](https://github.com/blackmatch), +🌻 [Joe Reeve](https://github.com/ISNIT0), +🌻 [Marcelo Melo](https://github.com/marcelosdm), +🌻 [Ryan Busby](https://github.com/BusbyActual), +🌻 [Iman Mohamadi](https://github.com/ImanMh), +🌻 [Remek Ambroziak](https://github.com/reod), +🌻 [Sergii Paryzhskyi](https://github.com/HeeL), +🌻 [Kapil Patel](https://github.com/kapilepatel), +🌻 [迷渡](https://github.com/justjavac), +🌻 [Hozefa](https://github.com/hozefaj), +🌻 [Ethan](https://github.com/el-ethan), +🌻 [Sam](https://github.com/milkdeliver), +🌻 [Arlind](https://github.com/ArlindXh), +🌻 [Teddy Toussaint](https://github.com/ttous), +🌻 [Lewis](https://github.com/LewisArdern) -### Estrelas
+### Estrelas ⭐ [Kyle Martin](https://github.com/js-kyle) -⭐ [Keith Holliday](https://github.com/TheHollidayInn) +⭐ [Keith Holliday](https://github.com/TheHollidayInn), +⭐ [Corey Cleary](https://github.com/coreyc), +⭐ [Maximilian Berkmann](https://github.com/Berkmann18)


diff --git a/README.md b/README.md index e48c6ad4..9c27409d 100644 --- a/README.md +++ b/README.md @@ -343,12 +343,9 @@ function doSomething() {} ## ![✔] 3.9 Require modules by folders, opposed to the files directly -**TL;DR:** When developing a module/library in a folder, place an index.js file that exposes the module's -internals so every consumer will pass through it. This serves as an 'interface' to your module and eases -future changes without breaking the contract +**TL;DR:** When developing a module/library in a folder, place an index.js file that exposes the module's internals so every consumer will pass through it. This serves as an 'interface' to your module and eases future changes without breaking the contract -**Otherwise:** Changing the internal structure of files or the signature may break the interface with -clients +**Otherwise:** Changing the internal structure of files or the signature may break the interface with clients ### Code example From 0d1d81d36bf30b8a32c2c21d5961104e7866498e Mon Sep 17 00:00:00 2001 From: sagirk Date: Sun, 10 Mar 2019 15:04:32 +0530 Subject: [PATCH 3/5] chore(march-2019): align CN translation with the English version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Update top badges, flowers and stars diff --git a/README.chinese.md b/README.chinese.md index a17ab626..31e2073e 100644 --- a/README.chinese.md +++ b/README.chinese.md @@ -9,7 +9,7 @@
- 79 items Last update: February 1st, 2019 Updated for Node 10.15.1 LTS + 81 items Last update: March 10, 2019 Updated for Node 10.15.3 LTS

@@ -96,7 +96,7 @@ 🔗 [**更多: 配置最佳实践**](/sections/projectstructre/configguide.chin ## ![✔] 2.1 使用 Async-Await 和 promises 用于异步错误处理 -**TL;DR:** 使用回调的方式处理异步错误可能是导致灾难的最快的方式(a.k.a the pyramid of doom)。对您的代码来说,最好的礼物就是使用规范的promise库或async-await来替代,这会使其像try-catch一样更加简洁,具有熟悉的代码结构。 +**TL;DR:** 使用回调的方式处理异步错误可能是导致灾难的最快的方式(a.k.a the pyramid of doom)。对您的代码来说,最好的礼物就是使用规范的promise库或async-await来替代,这会使其像try-catch一样更加简洁,具有熟悉的代码结构。 **否则:** Node.js回调特性, function(err, response), 是导致不可维护代码的一个必然的方式。究其原因,是由于混合了随意的错误处理代码,臃肿的内嵌,蹩脚的代码模式。 @@ -283,17 +283,17 @@ 🔗 [**更多:** "Why does a results vary based on curly brace placement?" (Sta ### 代码示例 ### ```javascript // 使用UpperCamelCase命名类名 - class SomeClassExample () { - + class SomeClassExample () { + // 常量使用const关键字,并使用lowerCamelCase命名 const config = { key: 'value' }; - + // 变量和方法使用lowerCamelCase命名 let someVariableExample = 'value'; function doSomething() { - + } } @@ -485,7 +485,7 @@ 🔗 [**更多: 监控!**](/sections/production/monitoring.chinese.md) 🔗 [**更多: 使用智能日志增加透明度**](/sections/production/smartlogging.chinese.md) - +

## ![✔] 5.3. 委托可能的一切(例如:gzip,SSL)给反向代理 @@ -519,7 +519,7 @@ 🔗 [**更多: 锁住依赖**](/sections/production/lockdependencies.chinese.md 🔗 [**更多: 使用正确的工具保护进程正常运行**](/sections/production/guardprocess.chinese.md) - +

## ![✔] 5.6. 利用CPU多核 @@ -617,7 +617,7 @@ 🔗 [**更多: 使用自动检测漏洞的工具**](/sections/production/detect

-## ![✔] 5.14. 在每一个log语句中指明 ‘TransactionId’ +## ![✔] 5.14. 在每一个log语句中指明 ‘TransactionId’ **TL;DR:** 在每一个请求的每一条log入口,指明同一个标识符,transaction-id: {某些值}。然后在检查日志中的错误时,很容易总结出前后发生的事情。不幸的是,由于Node异步的天性自然,这是不容易办到的,看下代码里面的例子 @@ -951,10 +951,10 @@ Independent Node.js consultant who works with customers at USA, Europe and Israe 👨‍💻 Software engineer, 🌐 web developer, 🤖 emojis enthusiast. ## `Refael Ackermann` [@refack](https://github.com/refack) <refack@gmail.com> (he/him) -Node.js Core Collaborator, been noding since 0.4, and have noded in multiple production sites. Founded `node4good` home of [`lodash-contrib`](https://github.com/node4good/lodash-contrib), [`formage`](https://github.com/node4good/formage), and [`asynctrace`](https://github.com/node4good/asynctrace). +Node.js Core Collaborator, been noding since 0.4, and have noded in multiple production sites. Founded `node4good` home of [`lodash-contrib`](https://github.com/node4good/lodash-contrib), [`formage`](https://github.com/node4good/formage), and [`asynctrace`](https://github.com/node4good/asynctrace). `refack` on freenode, Twitter, GitHub, GMail, and many other platforms. DMs are open, happy to help. -## `Bruno Scheufler` +## `Bruno Scheufler` 💻 full-stack web developer and Node.js enthusiast. ## `Kyle Martin` [@js-kyle](https://github.com/js-kyle) @@ -1031,13 +1031,19 @@ 🌻 [Iman Mohamadi](https://github.com/ImanMh), 🌻 [Remek Ambroziak](https://github.com/reod), 🌻 [Sergii Paryzhskyi](https://github.com/HeeL), 🌻 [Kapil Patel](https://github.com/kapilepatel), -🌻 [迷渡](https://github.com/justjavac) +🌻 [迷渡](https://github.com/justjavac), +🌻 [Hozefa](https://github.com/hozefaj), +🌻 [Ethan](https://github.com/el-ethan), +🌻 [Sam](https://github.com/milkdeliver), +🌻 [Arlind](https://github.com/ArlindXh), +🌻 [Teddy Toussaint](https://github.com/ttous), +🌻 [Lewis](https://github.com/LewisArdern) -### Stars
+### Stars ⭐ [Kyle Martin](https://github.com/js-kyle), ⭐ [Keith Holliday](https://github.com/TheHollidayInn), ⭐ [Corey Cleary](https://github.com/coreyc), ⭐ [Maximilian Berkmann](https://github.com/Berkmann18) -

+


--- README.chinese.md | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/README.chinese.md b/README.chinese.md index a17ab626..31e2073e 100644 --- a/README.chinese.md +++ b/README.chinese.md @@ -9,7 +9,7 @@
- 79 items Last update: February 1st, 2019 Updated for Node 10.15.1 LTS + 81 items Last update: March 10, 2019 Updated for Node 10.15.3 LTS

@@ -96,7 +96,7 @@ ## ![✔] 2.1 使用 Async-Await 和 promises 用于异步错误处理 -**TL;DR:** 使用回调的方式处理异步错误可能是导致灾难的最快的方式(a.k.a the pyramid of doom)。对您的代码来说,最好的礼物就是使用规范的promise库或async-await来替代,这会使其像try-catch一样更加简洁,具有熟悉的代码结构。 +**TL;DR:** 使用回调的方式处理异步错误可能是导致灾难的最快的方式(a.k.a the pyramid of doom)。对您的代码来说,最好的礼物就是使用规范的promise库或async-await来替代,这会使其像try-catch一样更加简洁,具有熟悉的代码结构。 **否则:** Node.js回调特性, function(err, response), 是导致不可维护代码的一个必然的方式。究其原因,是由于混合了随意的错误处理代码,臃肿的内嵌,蹩脚的代码模式。 @@ -283,17 +283,17 @@ ### 代码示例 ### ```javascript // 使用UpperCamelCase命名类名 - class SomeClassExample () { - + class SomeClassExample () { + // 常量使用const关键字,并使用lowerCamelCase命名 const config = { key: 'value' }; - + // 变量和方法使用lowerCamelCase命名 let someVariableExample = 'value'; function doSomething() { - + } } @@ -485,7 +485,7 @@ null == undefined // true 🔗 [**更多: 使用智能日志增加透明度**](/sections/production/smartlogging.chinese.md) - +

## ![✔] 5.3. 委托可能的一切(例如:gzip,SSL)给反向代理 @@ -519,7 +519,7 @@ null == undefined // true 🔗 [**更多: 使用正确的工具保护进程正常运行**](/sections/production/guardprocess.chinese.md) - +

## ![✔] 5.6. 利用CPU多核 @@ -617,7 +617,7 @@ null == undefined // true

-## ![✔] 5.14. 在每一个log语句中指明 ‘TransactionId’ +## ![✔] 5.14. 在每一个log语句中指明 ‘TransactionId’ **TL;DR:** 在每一个请求的每一条log入口,指明同一个标识符,transaction-id: {某些值}。然后在检查日志中的错误时,很容易总结出前后发生的事情。不幸的是,由于Node异步的天性自然,这是不容易办到的,看下代码里面的例子 @@ -951,10 +951,10 @@ Independent Node.js consultant who works with customers at USA, Europe and Israe 👨‍💻 Software engineer, 🌐 web developer, 🤖 emojis enthusiast. ## `Refael Ackermann` [@refack](https://github.com/refack) <refack@gmail.com> (he/him) -Node.js Core Collaborator, been noding since 0.4, and have noded in multiple production sites. Founded `node4good` home of [`lodash-contrib`](https://github.com/node4good/lodash-contrib), [`formage`](https://github.com/node4good/formage), and [`asynctrace`](https://github.com/node4good/asynctrace). +Node.js Core Collaborator, been noding since 0.4, and have noded in multiple production sites. Founded `node4good` home of [`lodash-contrib`](https://github.com/node4good/lodash-contrib), [`formage`](https://github.com/node4good/formage), and [`asynctrace`](https://github.com/node4good/asynctrace). `refack` on freenode, Twitter, GitHub, GMail, and many other platforms. DMs are open, happy to help. -## `Bruno Scheufler` +## `Bruno Scheufler` 💻 full-stack web developer and Node.js enthusiast. ## `Kyle Martin` [@js-kyle](https://github.com/js-kyle) @@ -1031,13 +1031,19 @@ This repository is being kept up to date thanks to the help from the community. 🌻 [Remek Ambroziak](https://github.com/reod), 🌻 [Sergii Paryzhskyi](https://github.com/HeeL), 🌻 [Kapil Patel](https://github.com/kapilepatel), -🌻 [迷渡](https://github.com/justjavac) +🌻 [迷渡](https://github.com/justjavac), +🌻 [Hozefa](https://github.com/hozefaj), +🌻 [Ethan](https://github.com/el-ethan), +🌻 [Sam](https://github.com/milkdeliver), +🌻 [Arlind](https://github.com/ArlindXh), +🌻 [Teddy Toussaint](https://github.com/ttous), +🌻 [Lewis](https://github.com/LewisArdern) -### Stars
+### Stars ⭐ [Kyle Martin](https://github.com/js-kyle), ⭐ [Keith Holliday](https://github.com/TheHollidayInn), ⭐ [Corey Cleary](https://github.com/coreyc), ⭐ [Maximilian Berkmann](https://github.com/Berkmann18) -

+


From 4b28dae8c4b9df5943411893f485cdb6492a2824 Mon Sep 17 00:00:00 2001 From: sagirk Date: Sun, 10 Mar 2019 15:07:01 +0530 Subject: [PATCH 4/5] chore(march-2019): align KR translation with the English version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Update top badges, flowers and stars diff --git a/README.korean.md b/README.korean.md index 0cadfb5b..e94ef045 100644 --- a/README.korean.md +++ b/README.korean.md @@ -9,7 +9,7 @@
- 79 items Last update: February 1st, 2019 Updated for Node 10.15.1 LTS + 81 items Last update: March 10, 2019 Updated for Node 10.15.3 LTS

@@ -152,7 +152,7 @@ 🔗 [**자세히 보기: Swagger에서 에러 문서화하기**](/sections/erro ## ![✔] 2.6 이상한 것이 들어왔을때 프로세스를 정상적으로 중단하라 -**핵심요약:** 알수 없는 에러(프로그래머 에러, 모범사례 #3번 참조)가 발생하면 어플리케이션의 건강상태에 대한 불확실성이 있다. 일반적인 방법은 Forever와 PM2 같은 '재시작' 도구로 프로세스를 다시 시작하는 것이다. +**핵심요약:** 알수 없는 에러(프로그래머 에러, 모범사례 #3번 참조)가 발생하면 어플리케이션의 건강상태에 대한 불확실성이 있다. 일반적인 방법은 Forever와 PM2 같은 '재시작' 도구로 프로세스를 다시 시작하는 것이다. **그렇게 하지 않을 경우:** 익숙치 않은 예외가 발생하면 일부 객체가 오류 상태(예를 들어 전역적으로 사용되지만 내부 오류로 인해 이벤트를 더이상 발생시키지 않는 Event Emitter)일 수 있으며 향후의 모든 요청이 실패하거나 미친것처럼(crazily) 동작할 수 있다. @@ -216,7 +216,7 @@ 🔗 [**자세히 보기: 빠르게 실패하기**](/sections/errorhandling/fail ## ![✔] 3.1 ESLint를 사용하라 -**핵심요약:** [ESLint](https://eslint.org)는 발생 가능한 코드 에러를 체크하고 껄끄러운 간격(spacing)문제를 식별하는 것부터 프로그래머가 분별없이 에러를 던지는 것과 같은 코드의 심각한 안티 패턴을 감지하여 코드 스타일을 바꾸는 것에 대한 사실상의 표준이다. ESLint도 자동으로 코드스타일을 고칠 수 있지만 [prettier](https://www.npmjs.com/package/prettier)와 [beautify](https://www.npmjs.com/package/js-beautify)같은 수정 부분의 포맷을 맞춰주는 강력한 툴이 있고 ESLint와 함께 작동된다. +**핵심요약:** [ESLint](https://eslint.org)는 발생 가능한 코드 에러를 체크하고 껄끄러운 간격(spacing)문제를 식별하는 것부터 프로그래머가 분별없이 에러를 던지는 것과 같은 코드의 심각한 안티 패턴을 감지하여 코드 스타일을 바꾸는 것에 대한 사실상의 표준이다. ESLint도 자동으로 코드스타일을 고칠 수 있지만 [prettier](https://www.npmjs.com/package/prettier)와 [beautify](https://www.npmjs.com/package/js-beautify)같은 수정 부분의 포맷을 맞춰주는 강력한 툴이 있고 ESLint와 함께 작동된다. **그렇게 하지 않을 경우:** 프로그래머가 쓸데없는 간격과 한줄의 길이(line-width) 문제에 대해서 집중해야하고 프로젝트의 코드스타일에 대해 과도하게 생각하느라 시간을 낭비해야할 수도 있다. @@ -267,12 +267,12 @@ 🔗 [**자세히 보기:** "왜 결과가 중괄호의 위치에 따라 달라 **핵심요약:** 클로저와 콜백을 포함한 모든 함수에 이름을 붙여라. 익명함수를 피해라. 이것은 노드 앱을 프로파일링 할때 특히 유용하다. 모든 함수를 명명하는 것은 당신이 메모리 스냅샷을 확인할때 당신이 보고있는 것이 무엇인지 쉽게 이해 할수있도록 해준다. -**그렇게 하지 않을 경우:** +**그렇게 하지 않을 경우:** 당신이 익명함수에서 메모리 소비가 많다는 것을 확인 했을 때 코어 덤프(메모리 스냅샷)을 이용해 프로덕션 문제를 디버깅하는 것이 어려울 수도 있습니다.

-## ![✔] 3.6 변수, 상수, 함수, 클래스의 명명 규칙(naming convention) +## ![✔] 3.6 변수, 상수, 함수, 클래스의 명명 규칙(naming convention) **핵심요약:** 상수와 변수 함수를 명명할때는 **_lowerCamelCase_** 를 사용하고 클래스를 명명 할때는 **_UpperCamelCase_**(첫 글자 대문자)를 사용하라. 이것은 일반 변수/함수와 인스턴스로 만들어야 하는 클래스를 구분하는데 도움을 것이다. 설명이 포함된 이름을 사용하되 이름을 짧게 유지하도록 해라. @@ -754,9 +754,15 @@ 🌻 [Iman Mohamadi](https://github.com/ImanMh), 🌻 [Remek Ambroziak](https://github.com/reod), 🌻 [Sergii Paryzhskyi](https://github.com/HeeL), 🌻 [Kapil Patel](https://github.com/kapilepatel), -🌻 [迷渡](https://github.com/justjavac) - -### Stars
+🌻 [迷渡](https://github.com/justjavac), +🌻 [Hozefa](https://github.com/hozefaj), +🌻 [Ethan](https://github.com/el-ethan), +🌻 [Sam](https://github.com/milkdeliver), +🌻 [Arlind](https://github.com/ArlindXh), +🌻 [Teddy Toussaint](https://github.com/ttous), +🌻 [Lewis](https://github.com/LewisArdern) + +### Stars ⭐ [Kyle Martin](https://github.com/js-kyle), ⭐ [Keith Holliday](https://github.com/TheHollidayInn), --- README.korean.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/README.korean.md b/README.korean.md index 0cadfb5b..e94ef045 100644 --- a/README.korean.md +++ b/README.korean.md @@ -9,7 +9,7 @@
- 79 items Last update: February 1st, 2019 Updated for Node 10.15.1 LTS + 81 items Last update: March 10, 2019 Updated for Node 10.15.3 LTS

@@ -152,7 +152,7 @@ ## ![✔] 2.6 이상한 것이 들어왔을때 프로세스를 정상적으로 중단하라 -**핵심요약:** 알수 없는 에러(프로그래머 에러, 모범사례 #3번 참조)가 발생하면 어플리케이션의 건강상태에 대한 불확실성이 있다. 일반적인 방법은 Forever와 PM2 같은 '재시작' 도구로 프로세스를 다시 시작하는 것이다. +**핵심요약:** 알수 없는 에러(프로그래머 에러, 모범사례 #3번 참조)가 발생하면 어플리케이션의 건강상태에 대한 불확실성이 있다. 일반적인 방법은 Forever와 PM2 같은 '재시작' 도구로 프로세스를 다시 시작하는 것이다. **그렇게 하지 않을 경우:** 익숙치 않은 예외가 발생하면 일부 객체가 오류 상태(예를 들어 전역적으로 사용되지만 내부 오류로 인해 이벤트를 더이상 발생시키지 않는 Event Emitter)일 수 있으며 향후의 모든 요청이 실패하거나 미친것처럼(crazily) 동작할 수 있다. @@ -216,7 +216,7 @@ ## ![✔] 3.1 ESLint를 사용하라 -**핵심요약:** [ESLint](https://eslint.org)는 발생 가능한 코드 에러를 체크하고 껄끄러운 간격(spacing)문제를 식별하는 것부터 프로그래머가 분별없이 에러를 던지는 것과 같은 코드의 심각한 안티 패턴을 감지하여 코드 스타일을 바꾸는 것에 대한 사실상의 표준이다. ESLint도 자동으로 코드스타일을 고칠 수 있지만 [prettier](https://www.npmjs.com/package/prettier)와 [beautify](https://www.npmjs.com/package/js-beautify)같은 수정 부분의 포맷을 맞춰주는 강력한 툴이 있고 ESLint와 함께 작동된다. +**핵심요약:** [ESLint](https://eslint.org)는 발생 가능한 코드 에러를 체크하고 껄끄러운 간격(spacing)문제를 식별하는 것부터 프로그래머가 분별없이 에러를 던지는 것과 같은 코드의 심각한 안티 패턴을 감지하여 코드 스타일을 바꾸는 것에 대한 사실상의 표준이다. ESLint도 자동으로 코드스타일을 고칠 수 있지만 [prettier](https://www.npmjs.com/package/prettier)와 [beautify](https://www.npmjs.com/package/js-beautify)같은 수정 부분의 포맷을 맞춰주는 강력한 툴이 있고 ESLint와 함께 작동된다. **그렇게 하지 않을 경우:** 프로그래머가 쓸데없는 간격과 한줄의 길이(line-width) 문제에 대해서 집중해야하고 프로젝트의 코드스타일에 대해 과도하게 생각하느라 시간을 낭비해야할 수도 있다. @@ -267,12 +267,12 @@ function someFunction() **핵심요약:** 클로저와 콜백을 포함한 모든 함수에 이름을 붙여라. 익명함수를 피해라. 이것은 노드 앱을 프로파일링 할때 특히 유용하다. 모든 함수를 명명하는 것은 당신이 메모리 스냅샷을 확인할때 당신이 보고있는 것이 무엇인지 쉽게 이해 할수있도록 해준다. -**그렇게 하지 않을 경우:** +**그렇게 하지 않을 경우:** 당신이 익명함수에서 메모리 소비가 많다는 것을 확인 했을 때 코어 덤프(메모리 스냅샷)을 이용해 프로덕션 문제를 디버깅하는 것이 어려울 수도 있습니다.

-## ![✔] 3.6 변수, 상수, 함수, 클래스의 명명 규칙(naming convention) +## ![✔] 3.6 변수, 상수, 함수, 클래스의 명명 규칙(naming convention) **핵심요약:** 상수와 변수 함수를 명명할때는 **_lowerCamelCase_** 를 사용하고 클래스를 명명 할때는 **_UpperCamelCase_**(첫 글자 대문자)를 사용하라. 이것은 일반 변수/함수와 인스턴스로 만들어야 하는 클래스를 구분하는데 도움을 것이다. 설명이 포함된 이름을 사용하되 이름을 짧게 유지하도록 해라. @@ -754,9 +754,15 @@ This repository is being kept up to date thanks to the help from the community. 🌻 [Remek Ambroziak](https://github.com/reod), 🌻 [Sergii Paryzhskyi](https://github.com/HeeL), 🌻 [Kapil Patel](https://github.com/kapilepatel), -🌻 [迷渡](https://github.com/justjavac) +🌻 [迷渡](https://github.com/justjavac), +🌻 [Hozefa](https://github.com/hozefaj), +🌻 [Ethan](https://github.com/el-ethan), +🌻 [Sam](https://github.com/milkdeliver), +🌻 [Arlind](https://github.com/ArlindXh), +🌻 [Teddy Toussaint](https://github.com/ttous), +🌻 [Lewis](https://github.com/LewisArdern) -### Stars
+### Stars ⭐ [Kyle Martin](https://github.com/js-kyle), ⭐ [Keith Holliday](https://github.com/TheHollidayInn), From f0f7941871a33c002dea598f294f3d9a822cdea7 Mon Sep 17 00:00:00 2001 From: sagirk Date: Sun, 10 Mar 2019 16:15:23 +0530 Subject: [PATCH 5/5] chore(march-2019): update news section - Announce availability of BR translation in the news section! --- README.brazilian-portuguese.md | 8 +++++--- README.md | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/README.brazilian-portuguese.md b/README.brazilian-portuguese.md index 4e465421..ce21e7ba 100644 --- a/README.brazilian-portuguese.md +++ b/README.brazilian-portuguese.md @@ -26,11 +26,13 @@ Leia em diferentes linguagens: [![CN](/assets/flags/CN.png)**CN**](/README.chine # Latest Best Practices and News -- **New Best Practice:** 4.2: Include 3 parts in each test name - [_From the section "Testing and overall quality"_](https://github.com/i0natan/nodebestpractices#4-testing-and-overall-quality-practices) +- **New translation:** ![BR](/assets/flags/BR.png) [Brazilian Portuguese](/README.brazilian-portuguese.md) available now, courtesy of [Marcelo Melo](https://github.com/marcelosdm)! ❤️ -- **New Best Practice:** 7.1: Prefer native JS methods over user-land utils like Lodash - [_From the section "Performance"_](https://github.com/i0natan/nodebestpractices#7-performance-best-practices) +- **New best practice:** 4.2: Include 3 parts in each test name - [_From the section "Testing and overall quality"_](https://github.com/i0natan/nodebestpractices#4-testing-and-overall-quality-practices) -- **News updates** - [We kicked-off the performance section, wanna join?](https://github.com/i0natan/nodebestpractices/issues/302) +- **New best practice:** 7.1: Prefer native JS methods over user-land utils like Lodash - [_From the section "Performance"_](https://github.com/i0natan/nodebestpractices#7-performance-best-practices) + +- **News update:** [We kicked-off the performance section, wanna join?](https://github.com/i0natan/nodebestpractices/issues/302)

diff --git a/README.md b/README.md index 9c27409d..0a17c343 100644 --- a/README.md +++ b/README.md @@ -26,11 +26,13 @@ Read in a different language: [![CN](/assets/flags/CN.png)**CN**](/README.chines # Latest Best Practices and News -- **New Best Practice:** 4.2: Include 3 parts in each test name - [_From the section "Testing and overall quality"_](https://github.com/i0natan/nodebestpractices#4-testing-and-overall-quality-practices) +- **New translation:** ![BR](/assets/flags/BR.png) [Brazilian Portuguese](/README.brazilian-portuguese.md) available now, courtesy of [Marcelo Melo](https://github.com/marcelosdm)! ❤️ -- **New Best Practice:** 7.1: Prefer native JS methods over user-land utils like Lodash - [_From the section "Performance"_](https://github.com/i0natan/nodebestpractices#7-performance-best-practices) +- **New best practice:** 4.2: Include 3 parts in each test name - [_From the section "Testing and overall quality"_](https://github.com/i0natan/nodebestpractices#4-testing-and-overall-quality-practices) -- **News updates** - [We kicked-off the performance section, wanna join?](https://github.com/i0natan/nodebestpractices/issues/302) +- **New best practice:** 7.1: Prefer native JS methods over user-land utils like Lodash - [_From the section "Performance"_](https://github.com/i0natan/nodebestpractices#7-performance-best-practices) + +- **News update:** [We kicked-off the performance section, wanna join?](https://github.com/i0natan/nodebestpractices/issues/302)