1
00:00:00,040 --> 00:00:04,160
Olá, hoje a gente continua a 
nossa conversa sobre engenharia 

2
00:00:04,160 --> 00:00:08,920
de software Moderna mergulhando 
a mais a fundo na prática de 

3
00:00:08,920 --> 00:00:11,880
refaturação, né? 
Como que isso funciona no dia a 

4
00:00:11,880 --> 00:00:16,200
dia em projetos reais? 
Isso, a ideia é entender como 

5
00:00:16,200 --> 00:00:19,320
aplicar essas técnicas para 
manter o código. 

6
00:00:19,880 --> 00:00:22,560
Hum, saudável, né? 
Em projetos que mudam o tempo 

7
00:00:22,560 --> 00:00:24,680
todo. 
E para começar, tem um ponto que

8
00:00:24,680 --> 00:00:26,400
o material bate muito na tecla, 
né? 

9
00:00:26,400 --> 00:00:30,040
Uma coisa essencial, antes mesmo
de pensar em refaturar, qual que

10
00:00:30,040 --> 00:00:30,960
é? 
Tem sim. 

11
00:00:31,200 --> 00:00:35,160
E é fundamental testes, 
principalmente testes de 

12
00:00:35,160 --> 00:00:37,840
unidade. 
Sem uma boa cobertura de testes,

13
00:00:37,840 --> 00:00:42,440
sabe mexer na estrutura do 
código, vira 11, roleta russa. 

14
00:00:42,880 --> 00:00:46,160
O texto até cita o John 
osterhoute, que fala que tipo a 

15
00:00:46,160 --> 00:00:49,160
falta de testes acaba impedindo 
mudanças na estrutura. 

16
00:00:49,160 --> 00:00:52,440
Aí o que acontece? 
A complexidade vai aumentando, 

17
00:00:52,640 --> 00:00:54,680
os problemas de design se 
acumulam. 

18
00:00:54,840 --> 00:00:58,440
E só aparecem lá na frente em 
produção, imagina? 

19
00:00:58,480 --> 00:01:00,840
Exatamente, é o caminho para o 
caos. 

20
00:01:00,840 --> 00:01:03,880
Muitas vezes os testes são a 
rede de segurança mesmo. 

21
00:01:04,040 --> 00:01:09,560
Entendido, testes são a base, 
então agora sobre o quando fazer

22
00:01:09,560 --> 00:01:11,520
isso? 
O material fala de 2 abordagens 

23
00:01:11,520 --> 00:01:13,200
principais, né? 
Uma a mais. 

24
00:01:13,560 --> 00:01:16,320
A no dia a dia e outra mais 
pensada. 

25
00:01:16,440 --> 00:01:20,160
Isso a oportunista e a 
planejada, a mais comum, a que 

26
00:01:20,160 --> 00:01:23,400
acontece mais é a oportunista. 
E como ela funciona? 

27
00:01:23,400 --> 00:01:26,240
Ela rola no meio de outra 
tarefa, tipo, você tá lá 

28
00:01:26,240 --> 00:01:29,200
corrigindo bug ou adicionando 
uma função nova? 

29
00:01:29,680 --> 00:01:32,520
E aí você percebe um trecho de 
código meio esquisito. 

30
00:01:32,680 --> 00:01:34,160
Sabe? 
Um nome ruim? 

31
00:01:34,320 --> 00:01:36,800
Um método muito longo, complexo 
demais. 

32
00:01:36,800 --> 00:01:41,920
Ah, os famosos cold mails. 
Exato, aí a ideia é para um 

33
00:01:41,920 --> 00:01:43,920
pouquinho. 
E arruma aquilo na hora, 

34
00:01:44,120 --> 00:01:46,960
refatório ali mesmo. 
Tem aquela frase do canty back 

35
00:01:46,960 --> 00:01:48,560
sobre isso que eu acho ótima, 
né? 

36
00:01:48,800 --> 00:01:52,280
Algo como primeiro deixa a 
mudança fácil. 

37
00:01:52,360 --> 00:01:57,320
Depois, faça a mudança fácil. 
Isso mesmo, a lógica que às 

38
00:01:57,320 --> 00:02:00,440
vezes a dificuldade de 
implementar algo novo vem do 

39
00:02:00,440 --> 00:02:02,240
próprio código, que não tá 
legal. 

40
00:02:02,880 --> 00:02:04,880
Então você dá um passo para 
trás. 

41
00:02:05,120 --> 00:02:08,759
Arruma a casa refaturando. 
Para depois dar 2 passos para 

42
00:02:08,759 --> 00:02:12,360
frente com mais facilidade. 
Perfeito, é esperado que uma 

43
00:02:12,360 --> 00:02:15,160
parte do tempo de qualquer 
tarefa seja usada para essas 

44
00:02:15,160 --> 00:02:18,480
pequenas melhorias contínuas. 
É como manter a casa limpa, 

45
00:02:18,480 --> 00:02:19,960
sabe? 
Faz todo o sentido. 

46
00:02:20,320 --> 00:02:23,400
E a outra, a refaturação 
planejada. 

47
00:02:23,400 --> 00:02:26,520
Quando que ela entra em jogo? 
Essa aí fica reservada para 

48
00:02:26,520 --> 00:02:30,120
situações mais parrudas, 
mudanças maiores, mais 

49
00:02:30,120 --> 00:02:31,960
complexas, que vão levar mais 
tempo. 

50
00:02:32,240 --> 00:02:35,360
Coisas que, tipo, não cabem 
naquela pausa rápida no meio de 

51
00:02:35,360 --> 00:02:37,720
outra tarefa. 
Que tipo de coisa seria isso? 

52
00:02:38,320 --> 00:02:41,560
Sei lá, reestruturar paportes 
inteiros, sabe? 

53
00:02:41,800 --> 00:02:44,400
Ou quando você tem um débito 
técnico muito grande que foi se 

54
00:02:44,400 --> 00:02:46,960
acumulando, porque justamente 
ninguém fez as refaturações 

55
00:02:46,960 --> 00:02:51,440
oportunistas antes? 
Entendi quando a dívida ficou 

56
00:02:51,440 --> 00:02:54,760
alta demais. 
Exato, o material citando o 

57
00:02:54,760 --> 00:02:58,800
Fowler até reforça que esses 
momentos planejados deveriam ser

58
00:02:59,720 --> 00:03:02,440
raros. 
O esforço principal tem que ser 

59
00:03:02,440 --> 00:03:04,280
esse, do dia a dia, o 
oportunista. 

60
00:03:04,880 --> 00:03:10,800
OK, parece um trabalho bem 
cuidadoso, mas assim, tem algum 

61
00:03:10,800 --> 00:03:14,280
jeito de agilizar isso? 
O texto fala de ferramentas, né?

62
00:03:14,400 --> 00:03:19,800
Com certeza as ideias modernas 
ajudam demais nisso, elas têm 

63
00:03:19,800 --> 00:03:22,480
suporte pra várias refaturações 
automáticas. 

64
00:03:22,520 --> 00:03:25,440
Como assim automáticas? 
Você seleciona o trecho de 

65
00:03:25,440 --> 00:03:29,640
código, escolhe a operação que 
quer fazer, tipo renomear um 

66
00:03:29,640 --> 00:03:32,480
método. 
Extrair uma variável e a 

67
00:03:32,480 --> 00:03:34,440
ferramenta aplica a mudança pra 
você. 

68
00:03:34,440 --> 00:03:36,640
Ah, que nem no exemplo de 
renomear o método que você 

69
00:03:36,640 --> 00:03:41,440
comentou, eu digo pra IDE, esse 
método agora vai chamar x? 

70
00:03:41,520 --> 00:03:47,080
Isso você indica o método, dá o 
novo nome e a IDE, pá, sai 

71
00:03:47,080 --> 00:03:49,640
atualizando tudo. 
Nossa, ela muda em todos os 

72
00:03:49,640 --> 00:03:53,680
lugares que ele é chamado? 
Exatamente, não só na definição,

73
00:03:53,760 --> 00:03:56,960
mas em todas as chamadas. 
E o mais importante. 

74
00:03:57,280 --> 00:04:01,100
Antes de fazer a mudança, a 
ideia normalmente checa umas pré

75
00:04:01,100 --> 00:04:02,160
condições. 
Para quê? 

76
00:04:02,480 --> 00:04:05,000
Para tentar garantir que a 
mudança não vai quebrar o 

77
00:04:05,000 --> 00:04:09,160
código, sabe, para evitar erro 
de compilação ou pior, mudar o 

78
00:04:09,160 --> 00:04:10,840
comportamento do programa sem 
querer. 

79
00:04:11,160 --> 00:04:13,560
Ah, bom, então tem uma camada de
segurança aí. 

80
00:04:13,640 --> 00:04:18,320
Tem sim, mas claro, mesmo sendo 
automático a decisão inicial do 

81
00:04:18,320 --> 00:04:21,920
que refatorá e para a 
construtura, melhor, essa ainda 

82
00:04:21,920 --> 00:04:24,960
é do desenvolvedor, né? 
A ferramenta só executa. 

83
00:04:25,000 --> 00:04:28,720
Entendi, ela faz o trabalho 
braçal, mas a inteligência é a 

84
00:04:28,720 --> 00:04:30,960
nossa. 
Exatamente essa a ideia. 

85
00:04:30,960 --> 00:04:34,960
Ótimo, então pra gente 
recapitular a base de tudo para 

86
00:04:34,960 --> 00:04:37,760
refaturar com segurança, são os 
testes. 

87
00:04:38,040 --> 00:04:42,040
A prática ideal é ir fazendo aos
poucos, de forma oportunista, no

88
00:04:42,040 --> 00:04:45,840
dia a dia, isso, mas para 
mudanças maiores, aí sim a gente

89
00:04:45,840 --> 00:04:49,240
planeja um momento específico, 
embora isso deva ser mais raro. 

90
00:04:49,240 --> 00:04:51,560
Perfeito. 
E a gente ainda conta com a 

91
00:04:51,560 --> 00:04:54,600
ajuda das ideias para 
automatizar boa parte dessas 

92
00:04:54,600 --> 00:04:58,600
transformações no código. 
Exatamente integrar essa prática

93
00:04:58,600 --> 00:05:02,440
no fluxo normal de trabalho é o 
que realmente faz a diferença 

94
00:05:02,440 --> 00:05:05,960
para manter a saúde do código. 
A manutensabilidade a longo 

95
00:05:05,960 --> 00:05:08,760
prazo, né? 
Evita virar aquela bola de lama 

96
00:05:08,760 --> 00:05:10,920
que ninguém mais encosta. 
É bem por aí. 

97
00:05:11,040 --> 00:05:14,960
Perfeito, muito obrigada por nos
acompanhar nesta análise. 

98
00:05:14,960 --> 00:05:16,600
Eu que agradeço. 
Até a próxima.

