Programação Eficaz - Agile Trends Floripa 2016

231 visualizações

Publicada em

Apresentação realizada por Sebastian Ferrari no Agile Trends Floripa 2016 abordando o tema Programação Eficaz.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Programação Eficaz - Agile Trends Floripa 2016

  1. 1. Programação Eficaz Agile Trends Floripa 2016 Sebastian Ferrari (a.k.a. Sebas) sebas@taller.net.br
  2. 2. Sebastian Ferrari CTO e Co-fundador da Taller sebas5384
  3. 3. +10 anos programando +4 anos com Ágil vivendo o pós Ágil
  4. 4. ~10 anos atrás CPU 300 MHZ RAM 128 MB 640 x 480 px
  5. 5. RAMAC 305 - ano 1956
  6. 6. 68 cores = 8 bytes microSDHC 8 billion bytes
  7. 7. 1 bilhão de vezes mais bytes, em menos espaço
  8. 8. IBM 305 RAMAC de 1956, considerada um SUPER computador com 5 Megabytes de HDD
  9. 9. multiplicações podiam demorar entre 60 ms a 190 ms
  10. 10. IBM 650 FORTRAN
  11. 11. HOJE ano 2016
  12. 12. MOTO X2
  13. 13. CPU Quad Core de 2.5 GHz. GPU Adreno 330, 26 frames por segundo. Memória de 32 GB e 2 GB de RAM. Alta Resolução de 1080 x 1920 pixels. Velocidade de download de 150 Mbps.
  14. 14. +10.000 vezes em 60 anos !!
  15. 15. Capacidade de hardware melhorou muito !
  16. 16. Mas … e a maneira como programamos ?
  17. 17. E a qualidade? … melhorou?
  18. 18. procurou no Google ?
  19. 19. treta vixe
  20. 20. :(
  21. 21. Por que ?
  22. 22. Softwares complexos
  23. 23. Manutenção muito cara
  24. 24. Novas funcionalidades
  25. 25. Priorizamos a eficiência
  26. 26. Software frágil
  27. 27. Programamos de maneira familiar
  28. 28. Experiência do programador é péssima
  29. 29. O que estamos fazendo de errado?
  30. 30. Software complexo!
  31. 31. Programação imperativa é um paradigma de programação que descreve a computação como ações, enunciados ou comandos que mudam o estado (variáveis) de um programa.
  32. 32. Lógicas escondidas e overload de abstrações
  33. 33. Estados internos mutáveis espalhados pelo sistema
  34. 34. Mutabilidade torna o sistema imprevisível
  35. 35. Refatoração quase impossível ou muito custosa
  36. 36. Side effects fora de controle
  37. 37. Testes automatizados são muito caros e precisam de muito mock
  38. 38. Acoplamento dificulta interoperabilidade
  39. 39. A soma das partes é maior do que o resultado final. Entropia
  40. 40. Alto risco e esforço perante as mudanças
  41. 41. Carregamos um elefante nas costas
  42. 42. Alto conhecimento do todo para realizar uma mudança
  43. 43. Overload cognitivo para entender
  44. 44. De onde vem esse campo?
  45. 45. Quem está trocando o texto desse botão?
  46. 46. Porque não está funcionando?
  47. 47. Porque está funcionando?
  48. 48. Não temos mais as mesmas restrições
  49. 49. Podemos usar outros paradigmas
  50. 50. Programação funcional e reativa λ lamba
  51. 51. Simples e declarativo que aumenta o entendimento do código
  52. 52. Familiar vs. Legibilidade pessoas novas no time podem entender o que o código faz
  53. 53. Funções puras são previsíveis, fácil de testar e sem estado interno
  54. 54. Funções de ordem superior, evita herança a favor da composição
  55. 55. Funções recursivas evita side-effects dentro de loops
  56. 56. Imutabilidade mudanças se tornam declarativas
  57. 57. Código fácil de se raciocinar
  58. 58. Programação reativa eventos no sistema unidirecional
  59. 59. Não precisa usar linguagens funcionais puras !
  60. 60. from: mobiltec.com.br
  61. 61. Tendência:
  62. 62. Não é a solução definitiva ou absoluta
  63. 63. … e o que tem a ver com Ágil ?
  64. 64. A empresa onde você trabalha é um sistema
  65. 65. A qualidade do resultado, depende do bom funcionamento entre as partes do sistema
  66. 66. Se os desenvolvedores geram software de baixa qualidade
  67. 67. ● Código frágil. ● Código que não escala. ● Refatoração de alto risco. ● Manutenção cara. ● Mudanças são lentas.
  68. 68. O que é ágil ? ou agilidade
  69. 69. “It’s not what happens that counts… it’s how you react.
  70. 70. Bruce Lee
  71. 71. Sua empresa vai precisar de: mais gerenciamento, mais negociações, mais contratos complexos, mais disciplinas, …. mais … mais …
  72. 72. Referências: Alan Kay Robert C. Martin (Uncle Bob) Joe Armstrong Rich Hickey
  73. 73. Obrigado :) Sebastian Ferrari sebas@taller.net.br

×