Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Clean Code Matters!

994 views

Published on

Lightning Talk sobre os motivos de se importar com Clean Code e 5 dicas ajudaram a melhorar a qualidade do meu código.

Published in: Engineering

Clean Code Matters!

  1. 1. Clean Code Matters! Porque Clean Code importa e 5 dicas para melhorar seu código.
  2. 2. Kewerson Hugo @kewersonhugo
  3. 3. O que é Clean Code?
  4. 4. Fácil de ler
  5. 5. Fácil de entender
  6. 6. Fácil de manter
  7. 7. Comunicação e expressão
  8. 8. Menos ambiguidade
  9. 9. Workflow
  10. 10. Interação entre objetos
  11. 11. Propósito de existir
  12. 12. Mas por quê importa?
  13. 13. Nós lemos mais do que escrevemos
  14. 14. Outros irão ler seu código
  15. 15. Código não é abandonado
  16. 16. O mais difícil é manter
  17. 17. Aumenta a confiança
  18. 18. // --------------------------------------------------- // VARIAVEIS // --------------------------------------------------- let message = "Hello World!" var contador = 0 // --------------------------------------------------- // FUNCOES // --------------------------------------------------- func incrementaContador() { contador++ //Incrementa o contador. } //func helloWorld() { // print("Hello World!") //}
  19. 19. // --------------------------------------------------- // VARIAVEIS // --------------------------------------------------- let message = "Hello World!" var contador = 0 // --------------------------------------------------- // FUNCOES // --------------------------------------------------- func incrementaContador() { contador++ //Incrementa o contador. } //func helloWorld() { // print("Hello World!") //}
  20. 20. // --------------------------------------------------- // VARIAVEIS // --------------------------------------------------- let message = "Hello World!" var contador = 0 // --------------------------------------------------- // FUNCOES // --------------------------------------------------- func incrementaContador() { contador++ //Incrementa o contador. }
  21. 21. // --------------------------------------------------- // VARIAVEIS // --------------------------------------------------- let message = "Hello World!" var contador = 0 // --------------------------------------------------- // FUNCOES // --------------------------------------------------- func incrementaContador() { contador++ //Incrementa o contador. }
  22. 22. // --------------------------------------------------- // VARIAVEIS // --------------------------------------------------- let message = "Hello World!" var contador = 0 // --------------------------------------------------- // FUNCOES // --------------------------------------------------- func incrementaContador() { contador++ //Incrementa o contador. }
  23. 23. let message = "Hello World!" var contador = 0 func incrementaContador() { contador++ //Incrementa o contador. }
  24. 24. let message = "Hello World!" var contador = 0 func incrementaContador() { contador++ //Incrementa o contador. } //func helloWorld() { // print("Hello World!") //}
  25. 25. let message = "Hello World!" var contador = 0 func incrementaContador() { contador++ //Incrementa o contador. } //func helloWorld() { // print("Hello World!") //}
  26. 26. et message = "Hello World!" ar contador = 0 unc incrementaContador() { contador++ //Incrementa o contador. /func helloWorld() { / print("Hello World!")
  27. 27. let message = "Hello World!" var contador = 0 func incrementaContador() { contador++ //Incrementa o contador. } //func helloWorld() { // print("Hello World!") //}
  28. 28. let message = "Hello World!" var contador = 0 func incrementaContador() { contador++ } //func helloWorld() { // print("Hello World!") //}
  29. 29. let message = "Hello World!" var contador = 0 func incrementaContador() { contador++ } //func helloWorld() { // print("Hello World!") //}
  30. 30. let message = "Hello World!" var contador = 0 func incrementaContador() { contador++ } //func helloWorld() { // print("Hello World!") //}
  31. 31. let message = "Hello World!" var contador = 0 func incrementaContador() { contador++ }
  32. 32. 1# Evite códigos e comentários inúteis
  33. 33. func authUsuario() { … } func usuarioAprovado() { let a = "Parabéns" … }
  34. 34. func authUsuario() { … } func usuarioAprovado() { let a = "Parabéns" … }
  35. 35. func autenticaLoginUsuario() { … } func usuarioAprovado() { let a = "Parabéns" … }
  36. 36. func autenticaLoginUsuario() { … } func usuarioAprovado() { let a = "Parabéns" … }
  37. 37. func autenticaLoginUsuario() { … } func usuarioAprovado() { let a = "Parabéns" … }
  38. 38. func autenticaLoginUsuario() { … } func usuarioAprovado() { let a = "Parabéns" … }
  39. 39. func aaautenticaaaLoginUsuaaario() { … } func usuaaarioaaaprovaaado() { let aaa = "Paaaraaabéns" … }
  40. 40. func aaautenticaaaLoginUsuaaario() { … } func usuaaarioaaaprovaaado() { let aaa = "Paaaraaabéns" … }
  41. 41. func autenticaLoginUsuario() { … } func usuarioAprovado() { let a = "Parabéns" … }
  42. 42. func autenticaLoginUsuario() { … } func usuarioAprovado() { let mensagemDeBoasVindas = "Parabéns" … }
  43. 43. func autenticaLoginUsuario() { … } func usuarioAprovado() { let mensagemDeBoasVindas = "Parabéns" … }
  44. 44. 2# Use nomes descritivos
  45. 45. let ddmmyyyyStr = formataDataAtual("dd-MM-yyyy")
  46. 46. let ddmmyyyyStr = formataDataAtual("dd-MM-yyyy")
  47. 47. let ddmmyyyyStr = formataDataAtual("dd-MM-yyyy")
  48. 48. let dataAtualCompleta = formataDataAtual("dd-MM-yyyy")
  49. 49. let dataAtualCompleta = formataDataAtual("dd-MM-yyyy")
  50. 50. 3# Use nomes pronunciáveis
  51. 51. if (idade > 18) { if (!faturaPendente) { … } }
  52. 52. if (idade > 18) { if (!faturaPendente) { if (condicao3) { if (condicao4) { if (condicao5) { … } } } } }
  53. 53. if (idade > 18) { if (!faturaPendente) { if (condicao3) { if (condicao4) { if (condicao5) { … } } } } }
  54. 54. if (idade > 18) { if (!faturaPendente) { … } }
  55. 55. if (idade > 18 && !faturaPendente) { … }
  56. 56. if (idade > 18 && !faturaPendente) { … }
  57. 57. if (idade > 18 && !faturaPendente) { … }
  58. 58. if (idade > 18 && !faturaPendente && condicao3 && condicao4 && condicao5 && condicao6) { … }
  59. 59. if (idade > 18 && !faturaPendente && condicao3 && condicao4 && condicao5 && condicao6) { … } NO
  60. 60. if (idade > 18 && !faturaPendente) { … }
  61. 61. func () { } if (idade > 18 && !faturaPendente) { … }
  62. 62. func () { } if (idade > 18 && !faturaPendente) { … }
  63. 63. func () -> Bool { } if (idade > 18 && !faturaPendente) { … }
  64. 64. func () -> Bool { } if (idade > 18 && !faturaPendente) { … }
  65. 65. func (_ idade: Int, _ faturaPendente: Bool) -> Bool { } if (idade > 18 && !faturaPendente) { … }
  66. 66. func (_ idade: Int, _ faturaPendente: Bool) -> Bool { } if (idade > 18 && !faturaPendente) { … }
  67. 67. func (_ idade: Int, _ faturaPendente: Bool) -> Bool { } if (idade > 18 && !faturaPendente) { … }
  68. 68. func (_ idade: Int, _ faturaPendente: Bool) -> Bool { return idade > 18 && !faturaPendente } if () { … }
  69. 69. func isUsuarioValido(_ idade: Int, _ faturaPendente: Bool) -> Bool { return idade > 18 && !faturaPendente } if () { … }
  70. 70. func isUsuarioValido(_ idade: Int, _ faturaPendente: Bool) -> Bool { return idade > 18 && !faturaPendente } if (isUsuarioValido(idade, faturaPendente)) { … }
  71. 71. func isUsuarioValido(_ idade: Int, _ faturaPendente: Bool) -> Bool { return idade > 18 && !faturaPendente } if (isUsuarioValido(idade, faturaPendente)) { … }
  72. 72. 4# Encapsule condicionais dentro funções
  73. 73. let pacote = Pacote( … ) func calculaFrete(endereco: Endereco) -> Double { pacote.frete = Correios.frete( pacote.endereco, endereco) return pacote.frete }
  74. 74. let pacote = Pacote( … ) func calculaFrete(endereco: Endereco) -> Double { pacote.frete = Correios.frete( pacote.endereco, endereco) return pacote.frete }
  75. 75. let pacote = Pacote( … ) func calculaFrete(endereco: Endereco) -> Double { pacote.frete = Correios.frete( pacote.endereco, endereco) return pacote.frete }
  76. 76. let pacote = Pacote( … ) func calculaFrete(endereco: Endereco) -> Double { pacote.frete = Correios.frete( pacote.endereco, endereco) return pacote.frete }
  77. 77. let pacote = Pacote( … ) func calculaFrete(endereco: Endereco) -> Double { pacote.frete = Correios.frete( pacote.endereco, endereco) return pacote.frete }
  78. 78. let pacote = Pacote( … ) func calculaFrete(endereco: Endereco) -> Double { let numeroAntesDoCinco = 4 let capitalDoParana = "Curitiba" ... }
  79. 79. let pacote = Pacote( … ) func calculaFrete(endereco: Endereco) -> Double { pacote.frete = Correios.frete( pacote.endereco, endereco) return pacote.frete }
  80. 80. let pacote = Pacote( … ) func calculaFrete(endereco: Endereco) -> Double { pacote.frete = Correios.frete( pacote.endereco, endereco) return pacote.frete }
  81. 81. let pacote = Pacote( … ) func calculaFrete(endereco: Endereco) -> Double { return Correios.frete(pacote.endereco, endereco) }
  82. 82. let pacote = Pacote( … ) func calculaFrete(endereco: Endereco) -> Double { return Correios.frete(pacote.endereco, endereco) }
  83. 83. let pacote = Pacote( … ) func calculaFrete(endereco: Endereco) -> Double { return Correios.frete(pacote.endereco, endereco) }
  84. 84. let pacote = Pacote( … ) func calculaFrete(endereco: Endereco) -> Double { return Correios.frete(pacote.endereco, endereco) }
  85. 85. let pacote = Pacote( … ) func calculaFrete(endereco: Endereco) -> Double { return Correios.frete(pacote.endereco, endereco) }
  86. 86. let pacote = Pacote( … ) func calculaFrete(endereco: Endereco) -> Double { return Correios.frete(pacote.endereco, endereco) }
  87. 87. let pacote = Pacote( … ) func calculaFrete(origem: Endereco), destino: Endereco) -> Double { return Correios.frete(pacote.endereco, endereco) }
  88. 88. let pacote = Pacote( … ) func calculaFrete(origem: Endereco), destino: Endereco) -> Double { return Correios.frete(pacote.endereco, endereco) }
  89. 89. let pacote = Pacote( … ) func calculaFrete(origem: Endereco), destino: Endereco) -> Double { return Correios.frete(origem, destino) }
  90. 90. let pacote = Pacote( … ) func calculaFrete(origem: Endereco), destino: Endereco) -> Double { return Correios.frete(origem, destino) }
  91. 91. 5# Evite efeitos colaterais
  92. 92. Desconto Especial: COMERCIAL@TRIADWORKS.COM.BR com o assunto AHEAD20CE 20% de desconto no curso de TDD

×