Slide 1

Slide 1 text

Começando do Jeito Certo

Slide 2

Slide 2 text

Joel Wallis Jucá Cearense, 27, Webdev /joelwallis1 $ whoami

Slide 3

Slide 3 text

componentes angular ● Modules ○ Controllers ○ Directives ○ Providers (services, factories, constants, etc.) ○ Filters, etc.

Slide 4

Slide 4 text

quando usar angular?

Slide 5

Slide 5 text

● TLDR: para Web apps! quando usar angular?

Slide 6

Slide 6 text

● TLDR: para Web apps! ● Ao lidar com dados + contextos (usuário autenticado, cotação de moedas, previsão do tempo, etc.). quando usar angular?

Slide 7

Slide 7 text

● TLDR: para Web apps! ● Ao lidar com dados + contextos (usuário autenticado, cotação de moedas, previsão do tempo, etc.). ● Quando você não precisa/depende de SEO. quando usar angular?

Slide 8

Slide 8 text

● TLDR: para Web apps! ● Ao lidar com dados + contextos (usuário autenticado, cotação de moedas, previsão do tempo, etc.). ● Quando você não precisa/depende de SEO. ● Ex.: agenda de contatos, cliente de e-mail, app financeira, etc. quando usar angular?

Slide 9

Slide 9 text

versionamento (git)

Slide 10

Slide 10 text

● Um repositório Git dedicado ao projeto Angular versionamento (git)

Slide 11

Slide 11 text

● Um repositório Git dedicado ao projeto Angular ■ Incentiva o desacoplamento adequado (o maior/melhor benefício dos frameworks SPAs!) versionamento (git)

Slide 12

Slide 12 text

● Um repositório Git dedicado ao projeto Angular ■ Incentiva o desacoplamento adequado (o maior/melhor benefício dos frameworks SPAs!) ■ Documentação específica pro projeto versionamento (git)

Slide 13

Slide 13 text

● Um repositório Git dedicado ao projeto Angular ■ Incentiva o desacoplamento adequado (o maior/melhor benefício dos frameworks SPAs!) ■ Documentação específica pro projeto ■ Testes e todo o resto adequadamente separados versionamento (git)

Slide 14

Slide 14 text

● Um repositório Git dedicado ao projeto Angular ■ Incentiva o desacoplamento adequado (o maior/melhor benefício dos frameworks SPAs!) ■ Documentação específica pro projeto ■ Testes e todo o resto adequadamente separados ■ Processo de deploy separado, e simplificado versionamento (git)

Slide 15

Slide 15 text

documentação

Slide 16

Slide 16 text

● Documentar é caro; não documentar é ainda mais! documentação

Slide 17

Slide 17 text

● Documentar é caro; não documentar é ainda mais! ● Use e abuse do readme.md! documentação

Slide 18

Slide 18 text

documentação ● Documentar é caro; não documentar é ainda mais! ● Use e abuse do readme.md! ● Use JSDoc para coisas não tão óbvias

Slide 19

Slide 19 text

documentação: readme.md

Slide 20

Slide 20 text

● Descrição do projeto, cliente e seus objetivos documentação: readme.md

Slide 21

Slide 21 text

● Descrição do projeto, cliente e seus objetivos ● Mapa de navegação documentação: readme.md

Slide 22

Slide 22 text

● Descrição do projeto, cliente e seus objetivos ● Mapa de navegação ● Instruções de uso e contribuição documentação: readme.md

Slide 23

Slide 23 text

● Descrição do projeto, cliente e seus objetivos ● Mapa de navegação ● Instruções de uso e contribuição ■ Como preparar o ambiente ■ Como instalar ■ Como fazer builds ■ Como rodar ■ Como testar documentação: readme.md

Slide 24

Slide 24 text

documentação: jsdoc

Slide 25

Slide 25 text

● Desenvolvedores devem saber ler código documentação: jsdoc

Slide 26

Slide 26 text

● Desenvolvedores devem saber ler código ● Pequenas descrições não tomam tempo e ajudam um bocado! documentação: jsdoc

Slide 27

Slide 27 text

● Desenvolvedores devem saber ler código ● Pequenas descrições não tomam tempo e ajudam um bocado! ■ /** * A high-level interface for user-related * operations against our HTTP API. */ angular.module('mymodule').service('User', User); documentação: jsdoc

Slide 28

Slide 28 text

● Desenvolvedores devem saber ler código ● Pequenas descrições não tomam tempo e ajudam um bocado! ■ /** * A high-level interface for user-related * operations against our HTTP API. */ angular.module('mymodule').service('User', User); ● Links para documentação, bons artigos, exemplos, etc. documentação: jsdoc

Slide 29

Slide 29 text

código-fonte

Slide 30

Slide 30 text

● Separe o código-fonte do build código-fonte

Slide 31

Slide 31 text

● Separe o código-fonte do build ■ Use compiladores/transpiladores código-fonte

Slide 32

Slide 32 text

● Separe o código-fonte do build ■ Use compiladores/transpiladores ■ Use linters, preprocessadores, etc. código-fonte

Slide 33

Slide 33 text

● Separe o código-fonte do build ■ Use compiladores/transpiladores ■ Use linters, preprocessadores, etc. ■ Use aquilo que te tornar mais produtivo! código-fonte

Slide 34

Slide 34 text

● Separe o código-fonte do build ■ Use compiladores/transpiladores ■ Use linters, preprocessadores, etc. ■ Use aquilo que te tornar mais produtivo! ● Automatize tarefas com Grunt/gulp/Shell/whatever código-fonte

Slide 35

Slide 35 text

código-fonte ● Separe o código-fonte do build ■ Use compiladores/transpiladores ■ Use linters, preprocessadores, etc. ■ Use aquilo que te tornar mais produtivo! ● Automatize tarefas com Grunt/gulp/Shell/whatever ● Adote um Style Guide (Eu uso o do John Papa)

Slide 36

Slide 36 text

workflow

Slide 37

Slide 37 text

● Aprendam task runners! (Grunt, gulp, etc.) workflow

Slide 38

Slide 38 text

● Aprendam task runners! (Grunt, gulp, etc.) ● Aprendam task runners!!!11 workflow

Slide 39

Slide 39 text

● Aprendam task runners! (Grunt, gulp, etc.) ● Aprendam task runners!!!11 ● Shell vs Grunt vs gulp vs [PUT YOUR TASK RUNNER HERE] workflow

Slide 40

Slide 40 text

● Aprendam task runners! (Grunt, gulp, etc.) ● Aprendam task runners!!!11 ● Shell vs Grunt vs gulp vs [PUT YOUR TASK RUNNER HERE] ■ ¬¬ workflow

Slide 41

Slide 41 text

● Aprendam task runners! (Grunt, gulp, etc.) ● Aprendam task runners!!!11 ● Shell vs Grunt vs gulp vs [PUT YOUR TASK RUNNER HERE] ■ ¬¬ ■ ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ workflow

Slide 42

Slide 42 text

● Aprendam task runners! (Grunt, gulp, etc.) ● Aprendam task runners!!!11 ● Shell vs Grunt vs gulp vs [PUT YOUR TASK RUNNER HERE] ■ ¬¬ ■ ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ ● Use e abuse dos scripts npm! workflow

Slide 43

Slide 43 text

workflow: scripts npm

Slide 44

Slide 44 text

● no seu package.json: { (configs do projeto, etc...) } workflow: scripts npm

Slide 45

Slide 45 text

● no seu package.json: { (configs do projeto, etc...) "scripts": { "start": "node dev-server.js", "build": "gulp build", "watch": "gulp watch" } workflow: scripts npm

Slide 46

Slide 46 text

● No seu terminal: ○ $ npm start (Inicia o servidor de desenvolvimento) workflow: scripts npm

Slide 47

Slide 47 text

● No seu terminal: ○ $ npm start (Inicia o servidor de desenvolvimento) ○ $ npm run build (Faz o build do projeto) workflow: scripts npm

Slide 48

Slide 48 text

● No seu terminal: ○ $ npm start (Inicia o servidor de desenvolvimento) ○ $ npm run build (Faz o build do projeto) ○ $ npm run your-custom-command-here workflow: scripts npm

Slide 49

Slide 49 text

● No seu terminal: ○ $ npm start (Inicia o servidor de desenvolvimento) ○ $ npm run build (Faz o build do projeto) ○ $ npm run your-custom-command-here ○ E por aí vai... workflow: scripts npm

Slide 50

Slide 50 text

● { (configs do projeto, etc...) "scripts": { "start": "node dev-server.js", "build": "gulp build", "watch": "gulp watch" } workflow: scripts npm

Slide 51

Slide 51 text

● { (configs do projeto, etc...) "scripts": { "start": "node dev-server.js", "build": "gulp build", "watch": "gulp watch", "build:html": "gulp build:html", "build:css": "gulp build:css", "build:js": "gulp build:js" } workflow: scripts npm

Slide 52

Slide 52 text

● { (configs do projeto, etc...) "scripts": { "start": "node dev-server.js", "build": "gulp build", "watch": "gulp watch", "build:html": "gulp build:html", "build:css": "gulp build:css", "build:js": "gulp build:js", "watch:*": "gulp watch:*" <=== Repita as variações de build aqui } workflow: scripts npm

Slide 53

Slide 53 text

questions? don’t be shy :)

Slide 54

Slide 54 text

Feedback? Discussions? /joelwallis1 thank you!