codigo legado fisl

68
CÓDIGO LEGADO Fazendo as pazes com quinta-feira, 30 de junho de 2011

Upload: andre-fonseca

Post on 19-Jul-2015

1.311 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Codigo legado fisl

CÓDIGO LEGADO

Fazendo as pazes com

quinta-feira, 30 de junho de 2011

Page 2: Codigo legado fisl

~ 12 anos de estrada

~ Desenvolvedor Senior da Globo.com

~ Apaixonado pelo que faço ...

quinta-feira, 30 de junho de 2011

Page 3: Codigo legado fisl

~ 4 anos de estrada

~ Desenvolvedor da Globo.com

~ Hacker por definição e apaixonado por tecnologia

Guilherme Souza (não pode vir)

quinta-feira, 30 de junho de 2011

Page 4: Codigo legado fisl

quinta-feira, 30 de junho de 2011

Page 5: Codigo legado fisl

quinta-feira, 30 de junho de 2011

Page 6: Codigo legado fisl

NOT

quinta-feira, 30 de junho de 2011

Page 7: Codigo legado fisl

Made by Other

quinta-feira, 30 de junho de 2011

Page 8: Codigo legado fisl

quinta-feira, 30 de junho de 2011

Page 9: Codigo legado fisl

Cuidadovocê pode estar

escrevendo código legado agora ...

quinta-feira, 30 de junho de 2011

Page 10: Codigo legado fisl

quinta-feira, 30 de junho de 2011

Page 11: Codigo legado fisl

TESTE

quinta-feira, 30 de junho de 2011

Page 12: Codigo legado fisl

quinta-feira, 30 de junho de 2011

Page 13: Codigo legado fisl

Clean Code is not ENOUGH

quinta-feira, 30 de junho de 2011

Page 14: Codigo legado fisl

quinta-feira, 30 de junho de 2011

Page 15: Codigo legado fisl

Era uma vez ...

quinta-feira, 30 de junho de 2011

Page 16: Codigo legado fisl

E daí ?

quinta-feira, 30 de junho de 2011

Page 17: Codigo legado fisl

quinta-feira, 30 de junho de 2011

Page 18: Codigo legado fisl

quinta-feira, 30 de junho de 2011

Page 19: Codigo legado fisl

Era uma vez ...

quinta-feira, 30 de junho de 2011

Page 20: Codigo legado fisl

Refazer é caro

quinta-feira, 30 de junho de 2011

Page 21: Codigo legado fisl

MissãoEnsinar técnicas e formas de pensar que facilitem e deixem a todos confiantes para mexer em qualquer base de código

quinta-feira, 30 de junho de 2011

Page 22: Codigo legado fisl

Era uma vez ...

quinta-feira, 30 de junho de 2011

Page 23: Codigo legado fisl

quinta-feira, 30 de junho de 2011

Page 24: Codigo legado fisl

Caminho é longo ...

quinta-feira, 30 de junho de 2011

Page 25: Codigo legado fisl

Complexidade é alta ...

quinta-feira, 30 de junho de 2011

Page 26: Codigo legado fisl

Mas o prazo é oMESMO

quinta-feira, 30 de junho de 2011

Page 27: Codigo legado fisl

Por onde começar?

quinta-feira, 30 de junho de 2011

Page 28: Codigo legado fisl

.. vença uma por vez ...

Escolha suas batalhas e

quinta-feira, 30 de junho de 2011

Page 29: Codigo legado fisl

Dependencia

Efeito Colateral

Aumentar cobertura de teste

quinta-feira, 30 de junho de 2011

Page 30: Codigo legado fisl

quinta-feira, 30 de junho de 2011

Page 31: Codigo legado fisl

Identify Change Points

quinta-feira, 30 de junho de 2011

Page 32: Codigo legado fisl

Find Test Points

quinta-feira, 30 de junho de 2011

Page 33: Codigo legado fisl

Break Dependencies

quinta-feira, 30 de junho de 2011

Page 34: Codigo legado fisl

Cover with tests

quinta-feira, 30 de junho de 2011

Page 35: Codigo legado fisl

Change

quinta-feira, 30 de junho de 2011

Page 36: Codigo legado fisl

Como eu faço isso ? quinta-feira, 30 de junho de 2011

Page 37: Codigo legado fisl

example.rb Page 1

class Example def send_welcome_msg clients = Client.get_all clients.each do |client| addresses = client.get_all_users body = << EOF Welcome to our system. We're very happy for your presence here. EOF

addresses.each do |user| sender = MailSender.new sender.from= "[email protected]" sender.to= user.mail sender.body=body sender.send end client.billing << Charging.new(200) account = client.bank_account account.charge end endend

quinta-feira, 30 de junho de 2011

Page 38: Codigo legado fisl

example.rb Page 1

class Example def send_welcome_msg clients = Client.get_all clients.each do |client| addresses = client.get_all_users body = << EOF Welcome to our system. We're very happy for your presence here. EOF

addresses.each do |user| sender = MailSender.new sender.from= "[email protected]" sender.to= user.mail sender.body=body sender.send end client.billing << Charging.new(200) account = client.bank_account account.charge end endend

Quero colocar aqui um audit

quinta-feira, 30 de junho de 2011

Page 39: Codigo legado fisl

Sprout

Methods

quinta-feira, 30 de junho de 2011

Page 40: Codigo legado fisl

Change Point

quinta-feira, 30 de junho de 2011

Page 41: Codigo legado fisl

Change Point

New Tested Method

quinta-feira, 30 de junho de 2011

Page 42: Codigo legado fisl

example.rb Page 1

class Example def send_welcome_msg clients = Client.get_all clients.each do |client| addresses = client.get_all_users body = << EOF Welcome to our system. We're very happy for your presence here. EOF

addresses.each do |user| sender = MailSender.new sender.from= "[email protected]" sender.to= user.mail sender.body=body sender.send audit_send(user.mail, body) end client.billing << Charging.new(200) account = client.bank_account account.charge end end

def audit_send(mail, body) audit = Audit.new audit.operations << SendMailOperatio.new(:to=> mail, :body => body, created_at => Date.now) audit.save endend

quinta-feira, 30 de junho de 2011

Page 43: Codigo legado fisl

example.rb Page 1

class Example def send_welcome_msg clients = Client.get_all clients.each do |client| addresses = client.get_all_users body = << EOF Welcome to our system. We're very happy for your presence here. EOF

addresses.each do |user| sender = MailSender.new sender.from= "[email protected]" sender.to= user.mail sender.body=body sender.send audit_send(user.mail, body) end client.billing << Charging.new(200) account = client.bank_account account.charge end end

def audit_send(mail, body) audit = Audit.new audit.operations << SendMailOperatio.new(:to=> mail, :body => body, created_at => Date.now) audit.save endend

quinta-feira, 30 de junho de 2011

Page 44: Codigo legado fisl

example.rb Page 1

class Example def send_welcome_msg clients = Client.get_all clients.each do |client| addresses = client.get_all_users body = << EOF Welcome to our system. We're very happy for your presence here. EOF

addresses.each do |user| sender = MailSender.new sender.from= "[email protected]" sender.to= user.mail sender.body=body sender.send audit_send(user.mail, body) end client.billing << Charging.new(200) account = client.bank_account account.charge end end

def audit_send(mail, body) audit = Audit.new audit.operations << SendMailOperatio.new(:to=> mail, :body => body, created_at => Date.now) audit.save endend

quinta-feira, 30 de junho de 2011

Page 45: Codigo legado fisl

example.rb Page 1

class Example def send_welcome_msg clients = Client.get_all clients.each do |client| addresses = client.get_all_users body = << EOF Welcome to our system. We're very happy for your presence here. EOF

addresses.each do |user| sender = MailSender.new sender.from= "[email protected]" sender.to= user.mail sender.body=body sender.send audit_send(user.mail, body) end client.billing << Charging.new(200) account = client.bank_account account.charge end end

def audit_send(mail, body) audit = Audit.new audit.operations << SendMailOperatio.new(:to=> mail, :body => body, created_at => Date.now) audit.save endend

TEST

ADO

quinta-feira, 30 de junho de 2011

Page 46: Codigo legado fisl

Sprout

Classes

quinta-feira, 30 de junho de 2011

Page 47: Codigo legado fisl

Change Point

quinta-feira, 30 de junho de 2011

Page 48: Codigo legado fisl

Change Point

New Tested Class

quinta-feira, 30 de junho de 2011

Page 49: Codigo legado fisl

example.rb[+] Page 1

class Example def welcome clients = Client.get_all clients.each do |client| addresses = client.get_all_users body = << EOF Welcome to our system. We're very happy for your presence here. EOF

addresses.each do |user| sender = MailSender.new sender.from= "[email protected]" sender.to= user.mail sender.body=body sender.send audit_send(user.mail, body) end end end

def audit_send(mail, body) audit = Audit.new audit.operations << SendMailOperatio.new(:to=> mail, :body => body, created_at => Date.now) audit.save endend

quinta-feira, 30 de junho de 2011

Page 50: Codigo legado fisl

Wrap

Methods

quinta-feira, 30 de junho de 2011

Page 51: Codigo legado fisl

quinta-feira, 30 de junho de 2011

Page 52: Codigo legado fisl

Change Point

quinta-feira, 30 de junho de 2011

Page 53: Codigo legado fisl

Change Point

Wrap Tested Method

quinta-feira, 30 de junho de 2011

Page 54: Codigo legado fisl

example.rb[+] Page 1

class Example def old_welcome(clients) clients.each do |client| addresses = client.get_all_users body = << EOF Welcome to our system. We're very happy for your presence here. EOF

addresses.each do |user| sender = MailSender.new sender.from= "[email protected]" sender.to= user.mail sender.body=body sender.send audit_send(user.mail, body) end end end

def welcome clients= Client.get_all old_welcome clients Billing.charge(clients) end

def audit_send(mail, body) audit = Audit.new audit.operations << SendMailOperatio.new(:to=> mail, :body => body, created_at => Date.now) audit.save endend

quinta-feira, 30 de junho de 2011

Page 55: Codigo legado fisl

example.rb[+] Page 1

class Example def old_welcome(clients) clients.each do |client| addresses = client.get_all_users body = << EOF Welcome to our system. We're very happy for your presence here. EOF

addresses.each do |user| sender = MailSender.new sender.from= "[email protected]" sender.to= user.mail sender.body=body sender.send audit_send(user.mail, body) end end end

def welcome clients= Client.get_all old_welcome clients Billing.charge(clients) end

def audit_send(mail, body) audit = Audit.new audit.operations << SendMailOperatio.new(:to=> mail, :body => body, created_at => Date.now) audit.save endend

quinta-feira, 30 de junho de 2011

Page 56: Codigo legado fisl

example.rb[+] Page 1

class Example def old_welcome(clients) clients.each do |client| addresses = client.get_all_users body = << EOF Welcome to our system. We're very happy for your presence here. EOF

addresses.each do |user| sender = MailSender.new sender.from= "[email protected]" sender.to= user.mail sender.body=body sender.send audit_send(user.mail, body) end end end

def welcome clients= Client.get_all old_welcome clients Billing.charge(clients) end

def audit_send(mail, body) audit = Audit.new audit.operations << SendMailOperatio.new(:to=> mail, :body => body, created_at => Date.now) audit.save endend

quinta-feira, 30 de junho de 2011

Page 57: Codigo legado fisl

Wrap

Classes

quinta-feira, 30 de junho de 2011

Page 58: Codigo legado fisl

quinta-feira, 30 de junho de 2011

Page 59: Codigo legado fisl

Change Point

quinta-feira, 30 de junho de 2011

Page 60: Codigo legado fisl

Change Point

Wrap Tested Class

quinta-feira, 30 de junho de 2011

Page 61: Codigo legado fisl

Acabou ?

Era só isso?

quinta-feira, 30 de junho de 2011

Page 62: Codigo legado fisl

NEGATIVO

quinta-feira, 30 de junho de 2011

Page 63: Codigo legado fisl

Vamos ao refactoring ...

quinta-feira, 30 de junho de 2011

Page 64: Codigo legado fisl

Não vamos reinventar nada !

ATENÇÃO

quinta-feira, 30 de junho de 2011

Page 65: Codigo legado fisl

SOLIDSMELLS (Fowler)PatternsRefactoring Patterns

quinta-feira, 30 de junho de 2011

Page 66: Codigo legado fisl

Foco

quinta-feira, 30 de junho de 2011

Page 67: Codigo legado fisl

Bora codar um pouco ...

quinta-feira, 30 de junho de 2011

Page 68: Codigo legado fisl

@aoqfonseca

[email protected]

www.andrefonseca.net

Obrigado !!!

quinta-feira, 30 de junho de 2011