Programação Eficaz - Agile Trends Floripa 2016

Click here to load reader

  • date post

    16-Apr-2017
  • Category

    Technology

  • view

    175
  • download

    0

Embed Size (px)

Transcript of Programação Eficaz - Agile Trends Floripa 2016

Programao EficazAgile Trends Floripa 2016Sebastian Ferrari (a.k.a. Sebas)[email protected]

Sebastian FerrariCTO e Co-fundador da Tallersebas5384

+10 anos programando+4 anos com gilvivendo o ps gil

~10 anos atrs

CPU 300 MHZRAM 128 MB640 x 480 px

RAMAC 305 - ano 1956

68 cores = 8 bytesmicroSDHC 8 billion bytes

1 bilho de vezes maisbytes, em menos espao

IBM 305 RAMAC de 1956, considerada umSUPER computadorcom 5 Megabytes de HDD

multiplicaespodiam demorar entre60 ms a 190 ms

IBM 650FORTRAN

HOJEano 2016

MOTO X2

CPU Quad Core de 2.5 GHz.GPU Adreno 330, 26 frames por segundo.Memria de 32 GB e 2 GB de RAM.Alta Resoluo de 1080 x 1920 pixels.Velocidade de download de 150 Mbps.

+10.000 vezesem 60 anos !!

Capacidade de hardwaremelhorou muito !

Mas

e a maneira comoprogramamos ?

E a qualidade?

melhorou?

procurouno Google ?

treta vixe

:(

Por que ?

Softwares complexos

Manuteno muito cara

Novas funcionalidades

Priorizamos a eficincia

Software frgil

Programamos demaneira familiar

Experincia doprogramador pssima

O que estamos fazendo deerrado?

Softwarecomplexo!

Programao imperativa um paradigma de programao que descreve a computao como aes, enunciados ou comandos que mudam o estado (variveis) de um programa.

Lgicas escondidaseoverload de abstraes

Estados internosmutveis espalhadospelo sistema

Mutabilidadetorna o sistemaimprevisvel

Refatoraoquase impossvelou muito custosa

Side effectsfora de controle

Testes automatizadosso muito caros eprecisam de muito mock

Acoplamentodificultainteroperabilidade

A soma das partes maior do que o resultado final.Entropia

Alto risco e esforoperante as mudanas

Carregamosum elefante nas costas

Alto conhecimento do todo para realizar uma mudana

Overloadcognitivopara entender

De onde vemesse campo?

Quem est trocando o texto desse boto?

Porque no est funcionando?

Porque est funcionando?

No temos mais as mesmas restries

Podemos usar outrosparadigmas

Programaofuncional e reativa

lamba

Simples e declarativo que aumenta o entendimento do cdigo

Familiar vs. Legibilidadepessoas novas no time podem entender o que o cdigo faz

Funes purasso previsveis,fcil de testare sem estado interno

Funes de ordem superior,evita herana a favor da composio

Funes recursivasevita side-effects dentrode loops

Imutabilidademudanas se tornamdeclarativas

Cdigo fcil de seraciocinar

Programao reativaeventos no sistemaunidirecional

No precisausar linguagensfuncionais puras !

from: mobiltec.com.br

Curva de la jota.Costo de la innovacin.

Tendncia:

No a soluodefinitiva ou absoluta

e o que tem a ver com gil ?

A empresa ondevoc trabalha um sistema

A qualidade do resultado, depende dobom funcionamentoentre as partes do sistema

Se os desenvolvedoresgeram softwarede baixa qualidade

Cdigo frgil.Cdigo que no escala.Refatorao de alto risco.Manuteno cara.Mudanas so lentas.

O que gil ?ou agilidade

Its not what happensthat countsits how you react.

Bruce Lee

Sua empresa vai precisar de:mais gerenciamento,mais negociaes,mais contratos complexos,mais disciplinas,. mais mais

Referncias:

Alan KayRobert C. Martin (Uncle Bob)Joe ArmstrongRich Hickey

Obrigado :)

Sebastian [email protected]