Teoria da aprendizagem e design de código

Teoria da aprendizagem e design de código

Como podemos escrever código melhor se soubermos um pouco mais sobre nosso processo cognitivo de aprendizagem.

D90f76214917d48df9732b222fd00013?s=128

Alberto Luiz Souza

November 26, 2019
Tweet

Transcript

  1. TEORIA DA APRENDIZAGEM E DESIGN DE CÓDIGO

  2. Alberto Souza @alberto_souza timesincriveis.com.br bit.ly/medium-alberto

  3. ALGUMAS INSPIRAÇÕES PARA NOSSO CÓDIGO

  4. DESIGN PATTERNS

  5. None
  6. DAO, DEPENDENCY INJECTION ETC

  7. None
  8. DOMAIN DRIVEN DESIGN

  9. None
  10. None
  11. REFACTORING

  12. Extract Method Extract Variable Introduce Parameter Object

  13. SOLID

  14. None
  15. POR QUE TEMOS ESSE MONTE DE TÉCNICA?

  16. JÁ PENSARAM SOBRE ISSO?

  17. POR QUE EU NÃO DEIXO TUDO NUM ARQUIVO SÓ?

  18. None
  19. SINGLE SOURCE OF TRUTH

  20. ALGUNS OUTROS PQS AQUI

  21. Por que nomes de variáveis devem ser semânticos? Por que

    alguém surgiu com a ideia de fazer controller, service, dao etc?
  22. Por que eu devo separar meu código por módulos? Por

    que devo criar funções privadas em vez de comentar um trecho de código?
  23. TENTANDO DESEVENDAR OS MOTIVOS

  24. COGNITIVE LOAD THEORY

  25. MEMÓRIA DE TRABALHO

  26. TEMOS UM LIMITE NA MEMÓRIA DE TRABALHO

  27. LIMITE É LINEAR, AS COMBINAÇÕES NÃO

  28. ADVINHA O QUE ACONTECE QUANDO VOCÊ PEGA UM CÓDIGO QUE

    NÃO FAZ IDEIA?
  29. E POR QUE, NO MESMO CÓDIGO, A PESSOA EXPERIENTE CONSEGUE

    ENTENDER TUDO?
  30. MEMÓRIA DE LONGO PRAZO

  31. SUPER PODER

  32. N COISAS PODEM VIRAR UMA SÓ = ESQUEMAS

  33. USO DA MEMÓRIA DE LONGO PRAZO NÃO LIMITA A DE

    CURTO
  34. AUMENTE A SUA QUANTIDADE DE ESQUEMAS

  35. E COMO EU SEI QUANTOS ELEMENTOS ESTÃO OCUPANDO MINHA MEMÓRIA

    DE CURTO PRAZO?
  36. INTRINSIC LOAD

  37. E SERÁ QUE TEM UM JEITO DIRETO DE MEDIR A

    CARGA DO MATERIAL?
  38. QUE TAL CRIARMOS UMAS REGRAS PARA O CÓDIGO?

  39. Nomes de variáveis ? complexidade ciclomática? Variáveis perto da utilização?

    Pontos de inicialização de variáveis?
  40. Coesão? Acoplamento? O quanto da regra de negócio eu preciso

    conhecer para entender aquele código? Pontos de inicialização de variáveis?
  41. Como aqueles parâmetros que eu recebo no construtor foram criados

    e passados por ali? O que faz aquele metadado? Annotation, Decorator(typescript) etc Abstrações?Pontos de inicialização de variáveis?
  42. PRIORIZE

  43. ASSOCIE UMA PONTUAÇÃO

  44. TENHA REVIEWS MAIS ASSERTIVOS

  45. ENTENDIMENTO NÃO É MANDINGA

  46. MEÇA A SAÚDE DO SEU CÓDIGO PELA CARGA INTRÍNSECA DAS

    PARTES
  47. OBRIGADO!

  48. PERGUNTAS?