Ahh meus 20 e poucos!!



Ahh meus 20 e poucos!!

0 5


ahhmeus20epoucos

Ahh meus 20 e poucos!

On Github tonylampada / ahhmeus20epoucos

Ahh meus 20 e poucos!!

Dicas de arquitetura que eu gostaria de ter ouvido há 10 anos atrás.

Tony Lâmpada, quem é vc?

O que a gente vai falar hoje?

Design e arquitetura Processo de desenvolvimento Boas práticas + pra web

Tudo isso com uma visão geral, mas com links pra vc se aprofundar um pouco mais

1. Sobre Orientação a objeto, responsabilidades, e comida italiana [1]

Sobre Orientação a objeto, responsabilidades, e comida italiana

  • OO é "melhor"... mas por quê?
  • Ravioli vs. Spaghetti!
  • E eu vi muito OO: herança, polimorfismo, classes. Tava tudo lá.
  • E o spaghetti sempre achava um jeito de brotar aqui e ali!
  • O tempo passa - e vc começa a pensar em termos de responsabilidades e conhecimento
  • "Onde vai esse método?"; "Xi, fulano não devia conhecer cicrano..."
  • Parece até uma empresa crescendo!

Sobre Orientação a objeto, responsabilidades, e comida italiana

  • OO --> ravioli! #sqn
  • Componente: um pedaço de software que tem uma(s) RESPONSABILIDADE(s)
  • Componente: de preferência conhece alguns poucos componentes vizinhos
  • Componente: pode ser quebrado em componentes menores
  • É preciso organizar essa malha de modo a facilitar a comunicação entre esses componentes

Fazer software bem feito é a arte de ser CEO do sistema!

Comunique arquitetura com diagramas CRC

Um exemplo: extração de dados

Outro exemplo: [2] - Faça você mesmo - componente de CRUD com AngularJS

Não importa seu estilo

  • "Meu filho, vc já viu o diagrama?"; ou
  • "Rapaz eu tô enrolado, mas dá uma olhada lá, qq dúvida grita blz?"

A onda é ser preguiçoso

APIs importam

function CrudModel(model, options){
	this.model = model;
	this...
	this.is_saving = false;
}

angular.extend(CrudModel.prototype, {
	list: list,
	create: create,
	update: update,
	remove: remove,
	cancel: cancel,
});

function list(){
	...
}

E TDD é uma questão de planejamento!

Sobre coesão e acoplamento [3]

2. Processo bom erra rápido e corrige rápido [4]

As 3 leis da build [5]

Como manter um ambiente de integração contínua são

1a. lei: Não comitarás em build quebrada.

Se vc quiser fazer um commit mas a branch está quebrada, vc deve providenciar que ela fique verde primeiro: Ou seja, ou vc conserta o que está quebrado, ou vai atrás da pessoa que quebrou pra ela consertar. Só depois que estiver verde, vc pode comitar suas alterações.

2a. lei: Se vc quebrar a build, vc tem 20 minutos pra consertar

Mesmo que pra isso vc preciso desfazer seu ultimo commit.

3a. lei: volte o commit de quem viola a 2a lei.

Vc pode até ser bonzinho e salvar o commit quebrado do cara numa branch.

Na pratica, isso aqui agora é muito raro

3. Web developer?

Conheça o Djangular3! [6]

O ambiente de desenvolvimento é importante!

Se eu tivesse 8 horas para cortar uma árvore, gastaria seis afiando meu machado - Abraham Lincoln

Clona e vai trabalhar!

AJAX? Faz um de mentirinha!

Tenha um catálogo de componentes

Ajax fake + catalogo de componentes = ...

  • Ambiente de desenvolvimento simples e rápido pra front-enders
  • Ambiente de prototipação/validação: errar barato!
  • Desenvolva componentes isoladamente: "TPDD"!
  • E ainda viabiliza testes unitários javascript

Web developer?

Tem mais algumas dicas legais lá no vídeo do Djangular3.

Sério. Vai dar uma olhada depois.

Ahh meus 20 e poucos!! Dicas de arquitetura que eu gostaria de ter ouvido há 10 anos atrás. /tonylampada/ahhmeus20epoucos /tonylampada