Transformation Priority Premise (TPP)
-
Upload
somkiat-puisungnoen -
Category
Technology
-
view
927 -
download
1
Transcript of Transformation Priority Premise (TPP)
Transformation Priority Premise
@somkiat.cc
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
#CODEMANIA01
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
TEST ?
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
คณใเวลานานเทาไรdebugging code ?
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
TDDer ?
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
T D D C Y C L E
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
As the tests get more specific,
the code gets more generic- Uncle Bob -
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
เดนกาวเลกๆ
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
มาหดเดนกน
เรมตนกบ FizzBuzz1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, 16, 17, Fizz
ถาตวเลขหาร 3 ลงตว แสดงคาวา Fizz ถาตวเลขหาร 5 ลงตว แสดงคาวา Buzz
ถาตวเลขหาร 3 และ 5 ลงตว แสดงคาวา FizzBuzz วนอนๆ แสดงคาเลขนนๆ
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
คดวา code ดแลวหรอ ?
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Refactoring
เปลยนแปลงโครงสราง code
ไมใการเปลยนพฤตกรรม
ดวยวธการเรยบงาย
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Transformation
ในการ Refactoring code
ตองทาควบคกนไปกบ
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Transformation
วธการเรยบงาย
าหรบเปลยนพฤตกรรมภายในของ code
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Transformation Priority Premise
Transformations have a priority, or a preferred ordering,will prevent impasses,
or long outages in the red/green/refactor cycle.
- Uncle Bob -
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Transformation Priority
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Transformation PriorityNo. Transformation Name Example
1 no code -> nil no code -> null
2 nil -> simple constant null -> “1”
3 constant -> constant + “1” -> “2”
4 constant -> variable “2” -> number
5 statement -> statements number = “2” -> number = “2”; print(“Data”);
6 unconditional -> conditional no if -> if, ternary if statement
7 variable -> array dog -> [ dog, cat ]
8 array -> collection [ dog, cat ] -> { dog : “โงๆ”, cat : “เหมยว” }
9 statement -> tail recursion a + b -> a + recursion()
10 if -> while if( condition ) -> while( condition )
11 statement -> recursion a + recursion() -> recursion(recursion)
12 expression -> function today - birthdate -> calculateDay(birthday)
13 variable -> assignment day -> day = 10
14 case if( condition ) -> if( condition ) {} else {}
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
มาด ทาอะไรกนไปบางNo. Transformation Name FizzBuzz # 1
1 no code -> nil 1. no code -> null
2 nil -> simple constant 2. null -> “1”
3 constant -> constant +
4 constant -> variable 3. “1” -> number
5 statement -> statements
6 unconditional -> conditional 4. no if -> if(number % 3 == 0)
7 variable -> array
8 array -> collection
9 statement -> tail recursion
10 if -> while
11 statement -> recursion
12 expression -> function 6. number % 3 == 0 -> isFizz(number)
13 variable -> assignment
14 case 5. if() {} else if() else {}
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
คดวา code ดแลวหรอ ?
T D D + T P P
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
TPP
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
คาแนะนา
เลอกการ Transformation ลาดบแรกๆ
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
คาแนะนา
เลอก test case ทสามารถเขยน code ใหผาน
ดวย transformation ลาดบแรกๆ
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
ลองกนใหม
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
มาด ทาอะไรกนไปบางNo. Transformation Name FizzBuzz # 2
1 no code -> nil no code -> null
2 nil -> simple constant null -> “1”
3 constant -> constant +
4 constant -> variable
5 statement -> statements
6 unconditional -> conditional
7 variable -> array
8 array -> collection
9 statement -> tail recursion
10 if -> while
11 statement -> recursion
12 expression -> function
13 variable -> assignment
14 case
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
TPP นำเราไปพบอะไร ?
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
ไดแบบนใไหม ?
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
เราสราง feature อยางไร
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
TDD + TPP = Simple Logic
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
TDD + TPP = Better Code
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
TDD + TPP = Maintainable Code
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Test ทถกตองทาใหการ Transformtion ไดถกตอง
แหลงอางอง
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
http://blog.8thlight.com/uncle-bob/2013/05/27/TheTransformationPriorityPremise.html
https://github.com/up1/kata.tpp.fizzbuzz
http://blog.8thlight.com/uncle-bob/2013/05/27/TransformationPriorityAndSorting.html
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
ถามมา ตอบไป