about summary refs log tree commit diff
path: root/usth/ICT2.7/P4L5 Software Refactoring Subtitles/2 - Introduction - lang_en_vs4.srt
diff options
context:
space:
mode:
Diffstat (limited to 'usth/ICT2.7/P4L5 Software Refactoring Subtitles/2 - Introduction - lang_en_vs4.srt')
-rw-r--r--usth/ICT2.7/P4L5 Software Refactoring Subtitles/2 - Introduction - lang_en_vs4.srt127
1 files changed, 0 insertions, 127 deletions
diff --git a/usth/ICT2.7/P4L5 Software Refactoring Subtitles/2 - Introduction - lang_en_vs4.srt b/usth/ICT2.7/P4L5 Software Refactoring Subtitles/2 - Introduction - lang_en_vs4.srt
deleted file mode 100644
index a50a2e5..0000000
--- a/usth/ICT2.7/P4L5 Software Refactoring Subtitles/2 - Introduction - lang_en_vs4.srt
+++ /dev/null
@@ -1,127 +0,0 @@
-1

-00:00:00,090 --> 00:00:02,790

-Let me start this lesson by discussing what is refactoring.

-

-2

-00:00:02,790 --> 00:00:06,590

-Refactoring is the process of applying transformation or refactoring to a

-

-3

-00:00:06,590 --> 00:00:09,320

-program. So as to obtain a refactor program. With an

-

-4

-00:00:09,320 --> 00:00:12,850

-improved design but with same functionality as the original program. So

-

-5

-00:00:12,850 --> 00:00:15,520

-key aspect of refactoring is the fact that refactoring should

-

-6

-00:00:15,520 --> 00:00:18,150

-be somatic to perserving So what is the main goal of

-

-7

-00:00:18,150 --> 00:00:22,030

-refactoring? The goal is to keep the program readable, understandable, and

-

-8

-00:00:22,030 --> 00:00:25,260

-maintainable as we evolve it. And to do this by eliminating

-

-9

-00:00:25,260 --> 00:00:28,530

-small problems soon, so that you can avoid big trouble later. And

-

-10

-00:00:28,530 --> 00:00:31,750

-I want to stress once more a key feature of refactoring, which

-

-11

-00:00:31,750 --> 00:00:34,790

-is the fact that it is behavior per serving. But how can

-

-12

-00:00:34,790 --> 00:00:38,130

-we ensure that the refactoring is behavior per serving? In other words,

-

-13

-00:00:38,130 --> 00:00:40,980

-how can we ensure that the program does the same thing before

-

-14

-00:00:40,980 --> 00:00:43,560

-and after applying a refactoring. So what we would like to do

-

-15

-00:00:43,560 --> 00:00:47,160

-is to have some guarantee that, that happens. And unfortunately in general,

-

-16

-00:00:47,160 --> 00:00:50,360

-there are no guarantees. But something we can do is to test

-

-17

-00:00:50,360 --> 00:00:53,690

-the code. For example, we can write tests that exercise the

-

-18

-00:00:53,690 --> 00:00:56,390

-parts of the program affected by the refactoring, and if we're in

-

-19

-00:00:56,390 --> 00:00:59,430

-a [INAUDIBLE] context, we might already have plenty of test cases

-

-20

-00:00:59,430 --> 00:01:01,914

-that exercise that part of the code. So we might just have

-

-21

-00:01:01,914 --> 00:01:04,780

-to rerun the test cases after the refactoring. And in fact,

-

-22

-00:01:04,780 --> 00:01:07,930

-that's a very advantageous situation, and that's a very good use of

-

-23

-00:01:07,930 --> 00:01:10,970

-existing test cases. And I want to make sure that you remember,

-

-24

-00:01:10,970 --> 00:01:15,500

-and that you beware that tests provide no guarantees. Testing can only

-

-25

-00:01:15,500 --> 00:01:18,990

-show the presence of defects, but cannot demonstrate their absence.

-

-26

-00:01:18,990 --> 00:01:21,090

-So we can use testing to get confidence in our

-

-27

-00:01:21,090 --> 00:01:23,990

-refactorings, but we can't really guarantee that the refactorings are

-

-28

-00:01:23,990 --> 00:01:26,820

-behavior preserving. I'd also like to point out that for some

-

-29

-00:01:26,820 --> 00:01:30,100

-simple refactoring, we can use a static analysis to actually

-

-30

-00:01:30,100 --> 00:01:33,160

-provide these guarantees. And in fact we will see examples of

-

-31

-00:01:33,160 --> 00:01:37,050

-such refactorings that are incorporated into IDs and that leverage

-

-32

-00:01:37,050 --> 00:01:40,070

-these kinds of analysis to perform refactoring in a safe way.