Skip to content

Commit d188c83

Browse files
authored
Merge pull request #189 from odsantos/conflicts-check-after-pr178
Conflicts check after pr178
2 parents 63cbf4a + 8642ab9 commit d188c83

File tree

216 files changed

+264
-9098
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

216 files changed

+264
-9098
lines changed

1-js/03-code-quality/01-debugging-chrome/article.md

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,9 @@
22

33
Antes de escrevermos código mais complexo, vamos falar de debugging (depuração de erros).
44

5-
<<<<<<< HEAD
6-
[Depuração](https://pt.wikipedia.org/wiki/Depura%C3%A7%C3%A3o) é o processo de procura e correção de erros num programa. Todos os navegadores (*browsers*) modernos e muitas outras plataformas (*environments*) suportam ferramentas de *debugging* -- uma UI (Interface de Utilizador) disponível nas ferramentas do desenvolvedor (*developer tools*) que torna a depuração de erros muito mais fácil. Ela também permite rastrear o código passo-a-passo para ver exactamente o que está a ser executado.
7-
8-
Aqui, vamos utilizar o Chrome porque tem bastantes funcionalidades, mas a maioria dos outros navegadores possuem um processo similar.
9-
=======
10-
[Debugging](https://en.wikipedia.org/wiki/Debugging) is the process of finding and fixing errors within a script. All modern browsers and most other environments support debugging tools -- a special UI in developer tools that makes debugging much easier. It also allows to trace the code step by step to see what exactly is going on.
5+
[Depuração](https://pt.wikipedia.org/wiki/Depura%C3%A7%C3%A3o) é o processo de procura e correção de erros num programa. Todos os navegadores (*browsers*) modernos e muitas outras plataformas (*environments*) suportam ferramentas de *debugging* -- uma UI (Interface de Utilizador) especial disponível nas ferramentas do desenvolvedor (*developer tools*) que torna a depuração de erros muito mais fácil. Ela também permite rastrear o código passo-a-passo para ver exatamente o que está a ser executado.
116

12-
We'll be using Chrome here, because it has enough features, most other browsers have a similar process.
13-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
7+
Aqui, vamos utilizar o Chrome porque tem muitas funcionalidades, mas a maioria dos outros navegadores possuem um processo similar.
148

159
## O painel "*Sources*"
1610

@@ -24,33 +18,19 @@ Aqui está o que poderá ver, se o estiver a fazer pela primeira vez:
2418

2519
![](chrome-open-sources.svg)
2620

27-
<<<<<<< HEAD
2821
O botão de alternador <span class="devtools" style="background-position:-172px -98px"></span> abre o separador com os ficheiros.
29-
=======
30-
The toggler button <span class="devtools" style="background-position:-172px -98px"></span> opens the tab with files.
31-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
3222

3323
Vamos clicar nele, e selecionar `hello.js` na vista de árvore de recursos apresentada. Aqui está o que deveria ser mostrado:
3424

3525
![](chrome-tabs.svg)
3626

37-
<<<<<<< HEAD
3827
O painel *Sources* possui 3 partes:
3928

4029
1. O painel **File Navigator**, lista ficheiros de HTML, JavaScript, CSS e outros, incluindo imagens anexadas à página. Extensões ao Chrome (*Chrome extensions*) também podem aparecer aqui.
4130
2. O painel **Code Editor**, mostra o código-fonte.
4231
3. O painel **JavaScript Debugging**, é para a depuração de erros; iremos explorá-lo em breve.
4332

4433
Agora, poderia clicar novamente no mesmo botão de alternador <span class="devtools" style="background-position:-172px -122px"></span> para ocultar a lista de recursos e dar ao código algum espaço.
45-
=======
46-
The Sources panel has 3 parts:
47-
48-
1. The **File Navigator** pane lists HTML, JavaScript, CSS and other files, including images that are attached to the page. Chrome extensions may appear here too.
49-
2. The **Code Editor** pane shows the source code.
50-
3. The **JavaScript Debugging** pane is for debugging, we'll explore it soon.
51-
52-
Now you could click the same toggler <span class="devtools" style="background-position:-172px -122px"></span> again to hide the resources list and give the code some space.
53-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
5434

5535
## Console
5636

1-js/03-code-quality/02-coding-style/1-style-errors/solution.md

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,12 @@ function pow(x,n) // <- nenhum espaço entre argumentos
1010
return result;
1111
}
1212

13-
<<<<<<< HEAD
1413
let x=prompt("x?",''), n=prompt("n?",'') // <-- tecnicamente possível,
15-
// mas o melhor é torná-la em 2 linhas, também não existem espaços, e falta o ;
14+
// mas o melhor é a tornar em 2 linhas, também não existem espaços, e falta o ;
1615
if (n<0) // <- nenhum espaço dentro (n < 0), e deveria existir uma linha extra sobre a condição
1716
{ // <- chaveta de abertura numa linha em separado
1817
// abaixo - linhas longas podem ser repartidas por múltiplas linhas para melhorar a legíbilidade
1918
alert(`A potência de ${n} não é suportada, por favor insira um número inteiro maior do que zero`);
20-
=======
21-
let x=prompt("x?",''), n=prompt("n?",'') // <-- technically possible,
22-
// but better make it 2 lines, also there's no spaces and missing ;
23-
if (n<=0) // <- no spaces inside (n <= 0), and should be extra line above it
24-
{ // <- figure bracket on a separate line
25-
// below - long lines can be split into multiple lines for improved readability
26-
alert(`Power ${n} is not supported, please enter an integer number greater than zero`);
27-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
2819
}
2920
else // <- poderia ser escrito numa única linha, como "} else {"
3021
{
@@ -48,14 +39,8 @@ function pow(x, n) {
4839
let x = prompt("x?", "");
4940
let n = prompt("n?", "");
5041

51-
<<<<<<< HEAD
5242
if (n < 0) {
5343
alert(`A potência de ${n} não é suportada, por favor insira um número inteiro maior do que zero`);
54-
=======
55-
if (n <= 0) {
56-
alert(`Power ${n} is not supported,
57-
please enter an integer number greater than zero`);
58-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
5944
} else {
6045
alert( pow(x, n) );
6146
}

1-js/03-code-quality/02-coding-style/article.md

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,8 @@ let x = prompt("x?", "");
2525
let n = prompt("n?", "");
2626
2727
if (n < 0) {
28-
<<<<<<< HEAD
2928
alert(`A potência de ${n} não é suportada,
3029
por favor insira um número inteiro positivo`);
31-
=======
32-
alert(`Power ${n} is not supported,
33-
please enter a non-negative integer number`);
34-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
3530
} else {
3631
alert( pow(x, n) );
3732
}
@@ -92,14 +87,7 @@ Por exemplo:
9287
```js
9388
// o acento grave (*backtick*) ` permite repartir uma *string* por múltiplas linhas
9489
let str = `
95-
<<<<<<< HEAD
96-
O TC39 da ECMA International, é um grupo de desenvolvedores e implementadores de JavaScript, académicos, e outros, colaborando com a comunidade para manter e
97-
evoluir a definição de JavaScript.
98-
=======
99-
ECMA International's TC39 is a group of JavaScript developers,
100-
implementers, academics, and more, collaborating with the community
101-
to maintain and evolve the definition of JavaScript.
102-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
90+
O TC39 da ECMA International, é um grupo de desenvolvedores e implementadores de JavaScript, académicos, e outros, colaborando com a comunidade para manter e evoluir a definição de JavaScript.
10391
`;
10492
```
10593

1-js/03-code-quality/03-comments/article.md

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,6 @@ Descreva a arquitetura
124124
Documente os parâmetros e o uso da função
125125
: Existe uma sintaxe especial, [JSDoc](http://en.wikipedia.org/wiki/JSDoc), para documentar uma função: o seu uso, parâmetros, e valor retornado.
126126

127-
<<<<<<< HEAD
128127
Por exemplo:
129128

130129
```js
@@ -134,35 +133,17 @@ Por exemplo:
134133
* @param {number} x O número a elevar.
135134
* @param {number} n A potência, deve ser um número natural.
136135
* @return {number} x elevado à n-ésima potência.
137-
=======
138-
For instance:
139-
```js
140-
/**
141-
* Returns x raised to the n-th power.
142-
*
143-
* @param {number} x The number to raise.
144-
* @param {number} n The power, must be a natural number.
145-
* @return {number} x raised to the n-th power.
146-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
147136
*/
148137
function pow(x, n) {
149138
...
150139
}
151140
```
152141

153-
<<<<<<< HEAD
154142
Tais comentários, nos permitem compreender o propósito da função e a usar de forma correta, sem olhar para o seu código.
155143

156144
A propósito, muitos editores, como o [WebStorm](https://www.jetbrains.com/webstorm/, podem também os perceber e os usar para fornecer completação automática de palavras (*autocomplete*), e algumas verificações de código (*code-checking*) automáticas.
157145

158146
Também, existem ferramentas como o [JSDoc 3](https://github.com/jsdoc3/jsdoc), que podem gerar documentação HTML a partir de comentários. Pode ler mais informação sobre o JSDoc em <http://usejsdoc.org/>.
159-
=======
160-
Such comments allow us to understand the purpose of the function and use it the right way without looking in its code.
161-
162-
By the way, many editors like [WebStorm](https://www.jetbrains.com/webstorm/) can understand them as well and use them to provide autocomplete and some automatic code-checking.
163-
164-
Also, there are tools like [JSDoc 3](https://github.com/jsdoc3/jsdoc) that can generate HTML-documentation from the comments. You can read more information about JSDoc at <http://usejsdoc.org/>.
165-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
166147

167148
Porque é a tarefa solucionada dessa forma?
168149
: O que está escrito é importante. Mas, o que *não* está escrito pode ser ainda mais importante, para se compreender o que se passa. Porque é a tarefa solucionada exatamente dessa forma? O código não dá resposta alguma.
@@ -193,12 +174,7 @@ Bons comentários, nos permitem manter o código saudável, voltar a ele após u
193174

194175
**Evite comentários:**
195176

196-
<<<<<<< HEAD
197177
- Que digam "como o código funciona" e "o que faz".
198178
- Coloque-os apenas se for impossível tornar o código tão simples e auto-descritivo que não precise deles.
199-
=======
200-
- That tell "how code works" and "what it does".
201-
- Put them in only if it's impossible to make the code so simple and self-descriptive that it doesn't require them.
202-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
203179

204180
Comentários também são utilizados por ferramentas de auto-documentação, como o JSDoc3: elas os lêm e geram documentos em HTML (ou documentos num outro formato).

1-js/03-code-quality/05-testing-mocha/article.md

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
<<<<<<< HEAD
21
# Teste automatizado com mocha
3-
=======
4-
# Automated testing with Mocha
5-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
62

73
Teste automatizado será utilizado nos exercícios seguintes, e também é amplamente usado em projetos reais.
84

@@ -85,11 +81,7 @@ Assim, o desenvolvimento é *iterativo*. Nós escrevemos a *spec*, a implementam
8581

8682
Vejamos este fluxo de desenvolvimento no nosso caso prático.
8783

88-
<<<<<<< HEAD
8984
O primeiro passo já está completo: nós temos uma *spec* inicial para `pow`. Agora, antes de fazer a implementação, vamos utilizar umas poucas bibliotecas (*libraries*) de JavaScript para executar os testes, apenas para ver se eles estão a funcionar (todos irão falhar).
90-
=======
91-
The first step is already complete: we have an initial spec for `pow`. Now, before making the implementation, let's use few JavaScript libraries to run the tests, just to see that they are working (they will all fail).
92-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
9385

9486
## A *spec* em ação
9587

@@ -171,13 +163,8 @@ Aqui, nós podemos selecionar uma das duas formas para organizar o teste:
171163
assert.equal(pow(2, 3), 8);
172164
});
173165
174-
<<<<<<< HEAD
175-
it("3 elevado a 3 é 27", function() {
176-
assert.equal(pow(3, 3), 27);
177-
=======
178-
it("3 raised to power 4 is 81", function() {
166+
it("3 elevado a 4 é 81", function() {
179167
assert.equal(pow(3, 4), 81);
180-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
181168
});
182169
183170
});
@@ -199,11 +186,7 @@ O resultado:
199186

200187
[iframe height=250 src="pow-2" edit border="1"]
201188

202-
<<<<<<< HEAD
203-
Como nós esperávamos, o segundo teste falhou. Seguramente, a nossa função retorna sempre `8`, enquanto o `assert` espera `27`.
204-
=======
205-
As we could expect, the second test failed. Sure, our function always returns `8`, while the `assert` expects `81`.
206-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
189+
Como nós esperávamos, o segundo teste falhou. Seguramente, a nossa função retorna sempre `8`, enquanto o `assert` espera `81`.
207190

208191
## Melhorando a implementação
209192

1-js/03-code-quality/05-testing-mocha/beforeafter.view/test.js

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,12 @@
1-
<<<<<<< HEAD
21
describe("teste", function() {
2+
// Mocha, geralmente espera pelos testes por 2 segundos antes de os considerar errados
33

4-
before(() => alert("Testes iniciados – antes de todos os testes"));
5-
after(() => alert("Testes terminados – depois de todos os testes"));
6-
=======
7-
describe("test", function() {
8-
9-
// Mocha usually waits for the tests for 2 seconds before considering them wrong
4+
this.timeout(200000); // Com este código nós aumentamos esse tempo - neste caso, para 200,000
105

11-
this.timeout(200000); // With this code we increase this - in this case to 200,000 milliseconds
6+
// Isto, por causa da função "alert", porque se você se demorar a pressionar o botão "OK" oos testes não irão passar!
127

13-
// This is because of the "alert" function, because if you delay pressing the "OK" button the tests will not pass!
14-
15-
before(() => alert("Testing started – before all tests"));
16-
after(() => alert("Testing finished – after all tests"));
17-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
8+
before(() => alert("Testes iniciados – antes de todos os testes"));
9+
after(() => alert("Testes terminados – depois de todos os testes"));
1810

1911
beforeEach(() => alert("antes de um teste – entrando para um teste"));
2012
afterEach(() => alert("depois de um teste – saindo de um teste"));

1-js/03-code-quality/05-testing-mocha/pow-2.view/test.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,8 @@ describe("pow", function() {
44
assert.equal(pow(2, 3), 8);
55
});
66

7-
<<<<<<< HEAD
8-
it("3 elevado à potência 3 é 27", function() {
9-
assert.equal(pow(3, 3), 27);
10-
=======
11-
it("3 raised to power 4 is 81", function() {
7+
it("3 elevado à potência 4 é 81", function() {
128
assert.equal(pow(3, 4), 81);
13-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
149
});
1510

1611
});

1-js/03-code-quality/06-polyfills/article.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,7 @@ Here Babel comes to the rescue.
1919

2020
Actually, there are two parts in Babel:
2121

22-
<<<<<<< HEAD
23-
1. First, the transpiler program, which rewrites the code. The developer runs it on their own computer. It rewrites the code into the older standard. And then the code is delivered to the website for users. Modern project build system like [webpack](http://webpack.github.io/) or [brunch](http://brunch.io/) provide means to run transpiler automatically on every code change, so that doesn't involve any time loss from our side.
24-
=======
2522
1. First, the transpiler program, which rewrites the code. The developer runs it on their own computer. It rewrites the code into the older standard. And then the code is delivered to the website for users. Modern project build systems like [webpack](http://webpack.github.io/) provide means to run transpiler automatically on every code change, so that it's very easy to integrate into development process.
26-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
2723

2824
2. Second, the polyfill.
2925

0 commit comments

Comments
 (0)