SlideShare a Scribd company logo
1 of 17
Thực hành XP với Coding
         Dojo

                Nguyễn Ngọc Tú
                 Phạm Anh Đới
Nội dung
 Giới thiệu về Coding Dojo
 Cách làm việc của Coding Dojo
 Phương pháp XP trong Coding Dojo
 Conway’s Game of life




9/12/2012        XP trong Coding Dojo   2
Coding Dojo đầu tiên

             Tại Paris, Tháng 12-2004
             Lập trình trước công chúng,
             Viết một chương trình hoàn chỉnh trong khoảng(1 -
              1,5h).
             Dùng nhiều ngôn ngữ, công cụ và các dạng bài tập
             Một bài tập được coi là thành công khi được hoàn
              thành trong thời gian định trước và người tham gia
              có thể tự mình làm lại bài tập đó tại nhà.




9/12/2012               XP trong Coding Dojo                 3
Định nghĩa Coding Dojo

                          Là buổi gặp gỡ của nhóm lập
                            trình viên để cùng nhau vượt
                            qua một thử thách

                          Giúp thành viên nâng cao
                            trình độ, kỹ năng trong không
                            khí vui vẻ




9/12/2012    XP trong Coding Dojo                          4
Quy trình làm việc


                                                 Cải tiến
                                          Code
                     Thảo                 tiếp
            Code     luận
 Giới
 thiệu
 chủ đề



9/12/2012          XP trong Coding Dojo                 5
XP trong Coding Dojo


 Lập trình theo cặp
   (Pair Programming)
 Tái cấu trúc
   (Refactoring)
 Phát triển hướng kiểm thử
   (TDD- Test Driven Development)




9/12/2012              XP trong Coding Dojo   6
Lập trình theo cặp

 Người lái (Driver)
       Trực tiếp viết mã
 Hoa tiêu(Navigator)
       Theo dõi người lái và
        liên tục bình luận




9/12/2012                   XP trong Coding Dojo   7
Phát triển hướng kiểm thử



Bạn chỉ bắt đầu lập trình khi thiết kế xong kiểm thử




9/12/2012            XP trong Coding Dojo         8
Phát triển hướng kiểm thử

                            Viết
                            kiểm
                             thử




                                             Vượt
            Tái cấu                          qua
             trúc                            kiểm
                                              thử




9/12/2012             XP trong Coding Dojo          9
XP trong Cocodojo – Tái cấu trúc


Tái cấu trúc là thay đổi cấu trúc bên trong mà không
làm thay đổi hành vi với bên ngoài của hệ thống

                                             Martin Fowler




9/12/2012             XP trong Coding Dojo              10
Thiết Kế Đơn Giản - 4 quy tắc
1. Vượt qua tất cả kiểm thử
2. Mục đích rõ ràng
3. Không lặp lại hành vi hoặc cấu hình
4. Hạn chế số lượng phương
   thức, lớp, trừu tượng hóa, vv




9/12/2012        XP trong Coding Dojo    11
9/12/2012   XP trong Coding Dojo   12
Conway’s Game of
life

9/12/2012   XP trong Coding Dojo   13
Workshop – Game of Life
 Game of life là bài
  toán thuộc lĩnh
  vực cellcular
  automaton được
  đưa ra bởi John
  Horton
  Conway vào năm
  1970.



9/12/2012         XP trong Coding Dojo   14
Workshop – Game of Life
 Là mạng lưới các ô tạo nên một không gian hai chiều
  không giới hạn.
 Trạng thái của ô: sống hoặc chết
 Mỗi ô có 8 ô liền kề
 Trạng thái tiếp theo của ô được quyết định theo quy tắc:
    1. Ô đang sống mà có ít hơn hai hàng xóm đang sống sẽ chết
    2. Ô đang sống mà có nhiều hơn 3 hàng xóm đang sống sẽ chết
    3. Ô đang sống mà có 2 hoặc 3 hàng xóm đang sống sẽ tiếp tục
    4. Ô chết mà có đúng 3 hàng xóm đang sống sẽ chuyển thành ô sống




9/12/2012                    XP trong Coding Dojo                  15
Workshop – Game of Life




9/12/2012   XP trong Coding Dojo   16
Workshop – Game of Life




9/12/2012   XP trong Coding Dojo   17

More Related Content

Viewers also liked

Học cách học (version 2.0) - Learning How To Learn
Học cách học (version 2.0) - Learning How To LearnHọc cách học (version 2.0) - Learning How To Learn
Học cách học (version 2.0) - Learning How To LearnDUONG Trong Tan
 
Giáo dục thông minh (Smart Education)
Giáo dục thông minh (Smart Education)Giáo dục thông minh (Smart Education)
Giáo dục thông minh (Smart Education)DUONG Trong Tan
 
Nal Group - Hành trình Agile
Nal Group - Hành trình AgileNal Group - Hành trình Agile
Nal Group - Hành trình AgilePham Manh Lan
 
Training is not enough - Coaching your agile team
Training is not enough - Coaching your agile teamTraining is not enough - Coaching your agile team
Training is not enough - Coaching your agile teamDUONG Trong Tan
 
Học cách học (Learning How To Learn)
Học cách học (Learning How To Learn)Học cách học (Learning How To Learn)
Học cách học (Learning How To Learn)DUONG Trong Tan
 
Người lớn học như thế nào - Nhìn từ tiếp cận kiến tạo
Người lớn học như thế nào - Nhìn từ tiếp cận kiến tạoNgười lớn học như thế nào - Nhìn từ tiếp cận kiến tạo
Người lớn học như thế nào - Nhìn từ tiếp cận kiến tạoDUONG Trong Tan
 
Agile Development & XP
Agile Development & XPAgile Development & XP
Agile Development & XPJino Hoàng
 
Building a Learning Organization
Building a Learning OrganizationBuilding a Learning Organization
Building a Learning OrganizationDUONG Trong Tan
 
Phát triển tốt hơn với Scrum
Phát triển tốt hơn với ScrumPhát triển tốt hơn với Scrum
Phát triển tốt hơn với ScrumDUONG Trong Tan
 

Viewers also liked (10)

Học cách học (version 2.0) - Learning How To Learn
Học cách học (version 2.0) - Learning How To LearnHọc cách học (version 2.0) - Learning How To Learn
Học cách học (version 2.0) - Learning How To Learn
 
Giáo dục thông minh (Smart Education)
Giáo dục thông minh (Smart Education)Giáo dục thông minh (Smart Education)
Giáo dục thông minh (Smart Education)
 
Nal Group - Hành trình Agile
Nal Group - Hành trình AgileNal Group - Hành trình Agile
Nal Group - Hành trình Agile
 
Training is not enough - Coaching your agile team
Training is not enough - Coaching your agile teamTraining is not enough - Coaching your agile team
Training is not enough - Coaching your agile team
 
Học cách học (Learning How To Learn)
Học cách học (Learning How To Learn)Học cách học (Learning How To Learn)
Học cách học (Learning How To Learn)
 
Người lớn học như thế nào - Nhìn từ tiếp cận kiến tạo
Người lớn học như thế nào - Nhìn từ tiếp cận kiến tạoNgười lớn học như thế nào - Nhìn từ tiếp cận kiến tạo
Người lớn học như thế nào - Nhìn từ tiếp cận kiến tạo
 
Agile Development & XP
Agile Development & XPAgile Development & XP
Agile Development & XP
 
Luyện cách hỏi
Luyện cách hỏi Luyện cách hỏi
Luyện cách hỏi
 
Building a Learning Organization
Building a Learning OrganizationBuilding a Learning Organization
Building a Learning Organization
 
Phát triển tốt hơn với Scrum
Phát triển tốt hơn với ScrumPhát triển tốt hơn với Scrum
Phát triển tốt hơn với Scrum
 

Similar to ScrumDay Vietnam 2012- Thực hành XP với Coding Dojo - Tu,Doi

Similar to ScrumDay Vietnam 2012- Thực hành XP với Coding Dojo - Tu,Doi (7)

Introduction to coding dojo
Introduction to coding dojoIntroduction to coding dojo
Introduction to coding dojo
 
Introduction to coding dojo
Introduction to coding dojoIntroduction to coding dojo
Introduction to coding dojo
 
Giới thiệu về Coding Dojo [at]CocoDojo.hn.vn
Giới thiệu về Coding Dojo [at]CocoDojo.hn.vnGiới thiệu về Coding Dojo [at]CocoDojo.hn.vn
Giới thiệu về Coding Dojo [at]CocoDojo.hn.vn
 
Fu agile coding dojo
Fu agile coding dojoFu agile coding dojo
Fu agile coding dojo
 
Hacking de4dot for fun - Bài dịch
Hacking de4dot for fun - Bài dịchHacking de4dot for fun - Bài dịch
Hacking de4dot for fun - Bài dịch
 
K33103273 lop11 chuong3_bai9
K33103273 lop11 chuong3_bai9K33103273 lop11 chuong3_bai9
K33103273 lop11 chuong3_bai9
 
K33103273 lop11 chuong3_bai9
K33103273 lop11 chuong3_bai9K33103273 lop11 chuong3_bai9
K33103273 lop11 chuong3_bai9
 

More from DUONG Trong Tan

Trở thành Agile Coach
Trở thành Agile CoachTrở thành Agile Coach
Trở thành Agile CoachDUONG Trong Tan
 
Coder nên biết thêm gì ngoài việc lập trình
Coder nên biết thêm gì ngoài việc lập trìnhCoder nên biết thêm gì ngoài việc lập trình
Coder nên biết thêm gì ngoài việc lập trìnhDUONG Trong Tan
 
A reflection on constructivism and engineering education
A reflection on constructivism and engineering educationA reflection on constructivism and engineering education
A reflection on constructivism and engineering educationDUONG Trong Tan
 
Các nguyên lí giáo dục
Các nguyên lí giáo dụcCác nguyên lí giáo dục
Các nguyên lí giáo dụcDUONG Trong Tan
 
Vì sao các tổ chức không học hỏi
Vì sao các tổ chức không học hỏiVì sao các tổ chức không học hỏi
Vì sao các tổ chức không học hỏiDUONG Trong Tan
 
Học qua dự án (Project-based Learning)
Học qua dự án (Project-based Learning)Học qua dự án (Project-based Learning)
Học qua dự án (Project-based Learning)DUONG Trong Tan
 
Scrum - a tool to achieve agility
Scrum - a tool to achieve agilityScrum - a tool to achieve agility
Scrum - a tool to achieve agilityDUONG Trong Tan
 
Practices of an agile developer
Practices of an agile developerPractices of an agile developer
Practices of an agile developerDUONG Trong Tan
 
ScrumDay Vietnam 2012 - Scrum with Team Foundation Server - Quang
ScrumDay Vietnam 2012 - Scrum with Team Foundation Server - QuangScrumDay Vietnam 2012 - Scrum with Team Foundation Server - Quang
ScrumDay Vietnam 2012 - Scrum with Team Foundation Server - QuangDUONG Trong Tan
 
ScrumDay Vietnam 2012 - Scrum tu chien hao VNext - Trung
ScrumDay Vietnam 2012 - Scrum tu chien hao VNext - TrungScrumDay Vietnam 2012 - Scrum tu chien hao VNext - Trung
ScrumDay Vietnam 2012 - Scrum tu chien hao VNext - TrungDUONG Trong Tan
 
ScrumDay Vietnam 2012 - Software project estimation for Scrum - Dr.Vinh
ScrumDay Vietnam 2012 - Software project estimation for Scrum - Dr.VinhScrumDay Vietnam 2012 - Software project estimation for Scrum - Dr.Vinh
ScrumDay Vietnam 2012 - Software project estimation for Scrum - Dr.VinhDUONG Trong Tan
 
ScrumDay Vietnam 2012 - Open company (talk on scrumday 9 dec2012)
ScrumDay Vietnam 2012 - Open company (talk on scrumday 9 dec2012)ScrumDay Vietnam 2012 - Open company (talk on scrumday 9 dec2012)
ScrumDay Vietnam 2012 - Open company (talk on scrumday 9 dec2012)DUONG Trong Tan
 
ScrumDayVietnam 2012 - Agile tutorial -Tan
ScrumDayVietnam 2012 - Agile tutorial -TanScrumDayVietnam 2012 - Agile tutorial -Tan
ScrumDayVietnam 2012 - Agile tutorial -TanDUONG Trong Tan
 
FOSS and agile software development
FOSS and agile software developmentFOSS and agile software development
FOSS and agile software developmentDUONG Trong Tan
 
Tài liệu đào tạo Scrum
Tài liệu đào tạo ScrumTài liệu đào tạo Scrum
Tài liệu đào tạo ScrumDUONG Trong Tan
 

More from DUONG Trong Tan (19)

Trở thành Agile Coach
Trở thành Agile CoachTrở thành Agile Coach
Trở thành Agile Coach
 
Coder nên biết thêm gì ngoài việc lập trình
Coder nên biết thêm gì ngoài việc lập trìnhCoder nên biết thêm gì ngoài việc lập trình
Coder nên biết thêm gì ngoài việc lập trình
 
A reflection on constructivism and engineering education
A reflection on constructivism and engineering educationA reflection on constructivism and engineering education
A reflection on constructivism and engineering education
 
Các nguyên lí giáo dục
Các nguyên lí giáo dụcCác nguyên lí giáo dục
Các nguyên lí giáo dục
 
Vì sao các tổ chức không học hỏi
Vì sao các tổ chức không học hỏiVì sao các tổ chức không học hỏi
Vì sao các tổ chức không học hỏi
 
Học qua dự án (Project-based Learning)
Học qua dự án (Project-based Learning)Học qua dự án (Project-based Learning)
Học qua dự án (Project-based Learning)
 
Scrum - a tool to achieve agility
Scrum - a tool to achieve agilityScrum - a tool to achieve agility
Scrum - a tool to achieve agility
 
Practices of an agile developer
Practices of an agile developerPractices of an agile developer
Practices of an agile developer
 
ScrumDay Vietnam 2012 - Scrum with Team Foundation Server - Quang
ScrumDay Vietnam 2012 - Scrum with Team Foundation Server - QuangScrumDay Vietnam 2012 - Scrum with Team Foundation Server - Quang
ScrumDay Vietnam 2012 - Scrum with Team Foundation Server - Quang
 
ScrumDay Vietnam 2012 - Scrum tu chien hao VNext - Trung
ScrumDay Vietnam 2012 - Scrum tu chien hao VNext - TrungScrumDay Vietnam 2012 - Scrum tu chien hao VNext - Trung
ScrumDay Vietnam 2012 - Scrum tu chien hao VNext - Trung
 
ScrumDay Vietnam 2012 - Software project estimation for Scrum - Dr.Vinh
ScrumDay Vietnam 2012 - Software project estimation for Scrum - Dr.VinhScrumDay Vietnam 2012 - Software project estimation for Scrum - Dr.Vinh
ScrumDay Vietnam 2012 - Software project estimation for Scrum - Dr.Vinh
 
ScrumDay Vietnam 2012 - Open company (talk on scrumday 9 dec2012)
ScrumDay Vietnam 2012 - Open company (talk on scrumday 9 dec2012)ScrumDay Vietnam 2012 - Open company (talk on scrumday 9 dec2012)
ScrumDay Vietnam 2012 - Open company (talk on scrumday 9 dec2012)
 
ScrumDayVietnam 2012 - Agile tutorial -Tan
ScrumDayVietnam 2012 - Agile tutorial -TanScrumDayVietnam 2012 - Agile tutorial -Tan
ScrumDayVietnam 2012 - Agile tutorial -Tan
 
Agile Learning
Agile LearningAgile Learning
Agile Learning
 
Agile Education
Agile EducationAgile Education
Agile Education
 
FOSS and agile software development
FOSS and agile software developmentFOSS and agile software development
FOSS and agile software development
 
Simple design
Simple designSimple design
Simple design
 
Agile values
Agile valuesAgile values
Agile values
 
Tài liệu đào tạo Scrum
Tài liệu đào tạo ScrumTài liệu đào tạo Scrum
Tài liệu đào tạo Scrum
 

ScrumDay Vietnam 2012- Thực hành XP với Coding Dojo - Tu,Doi

  • 1. Thực hành XP với Coding Dojo Nguyễn Ngọc Tú Phạm Anh Đới
  • 2. Nội dung  Giới thiệu về Coding Dojo  Cách làm việc của Coding Dojo  Phương pháp XP trong Coding Dojo  Conway’s Game of life 9/12/2012 XP trong Coding Dojo 2
  • 3. Coding Dojo đầu tiên  Tại Paris, Tháng 12-2004  Lập trình trước công chúng,  Viết một chương trình hoàn chỉnh trong khoảng(1 - 1,5h).  Dùng nhiều ngôn ngữ, công cụ và các dạng bài tập  Một bài tập được coi là thành công khi được hoàn thành trong thời gian định trước và người tham gia có thể tự mình làm lại bài tập đó tại nhà. 9/12/2012 XP trong Coding Dojo 3
  • 4. Định nghĩa Coding Dojo  Là buổi gặp gỡ của nhóm lập trình viên để cùng nhau vượt qua một thử thách  Giúp thành viên nâng cao trình độ, kỹ năng trong không khí vui vẻ 9/12/2012 XP trong Coding Dojo 4
  • 5. Quy trình làm việc Cải tiến Code Thảo tiếp Code luận Giới thiệu chủ đề 9/12/2012 XP trong Coding Dojo 5
  • 6. XP trong Coding Dojo  Lập trình theo cặp (Pair Programming)  Tái cấu trúc (Refactoring)  Phát triển hướng kiểm thử (TDD- Test Driven Development) 9/12/2012 XP trong Coding Dojo 6
  • 7. Lập trình theo cặp  Người lái (Driver)  Trực tiếp viết mã  Hoa tiêu(Navigator)  Theo dõi người lái và liên tục bình luận 9/12/2012 XP trong Coding Dojo 7
  • 8. Phát triển hướng kiểm thử Bạn chỉ bắt đầu lập trình khi thiết kế xong kiểm thử 9/12/2012 XP trong Coding Dojo 8
  • 9. Phát triển hướng kiểm thử Viết kiểm thử Vượt Tái cấu qua trúc kiểm thử 9/12/2012 XP trong Coding Dojo 9
  • 10. XP trong Cocodojo – Tái cấu trúc Tái cấu trúc là thay đổi cấu trúc bên trong mà không làm thay đổi hành vi với bên ngoài của hệ thống Martin Fowler 9/12/2012 XP trong Coding Dojo 10
  • 11. Thiết Kế Đơn Giản - 4 quy tắc 1. Vượt qua tất cả kiểm thử 2. Mục đích rõ ràng 3. Không lặp lại hành vi hoặc cấu hình 4. Hạn chế số lượng phương thức, lớp, trừu tượng hóa, vv 9/12/2012 XP trong Coding Dojo 11
  • 12. 9/12/2012 XP trong Coding Dojo 12
  • 13. Conway’s Game of life 9/12/2012 XP trong Coding Dojo 13
  • 14. Workshop – Game of Life  Game of life là bài toán thuộc lĩnh vực cellcular automaton được đưa ra bởi John Horton Conway vào năm 1970. 9/12/2012 XP trong Coding Dojo 14
  • 15. Workshop – Game of Life  Là mạng lưới các ô tạo nên một không gian hai chiều không giới hạn.  Trạng thái của ô: sống hoặc chết  Mỗi ô có 8 ô liền kề  Trạng thái tiếp theo của ô được quyết định theo quy tắc: 1. Ô đang sống mà có ít hơn hai hàng xóm đang sống sẽ chết 2. Ô đang sống mà có nhiều hơn 3 hàng xóm đang sống sẽ chết 3. Ô đang sống mà có 2 hoặc 3 hàng xóm đang sống sẽ tiếp tục 4. Ô chết mà có đúng 3 hàng xóm đang sống sẽ chuyển thành ô sống 9/12/2012 XP trong Coding Dojo 15
  • 16. Workshop – Game of Life 9/12/2012 XP trong Coding Dojo 16
  • 17. Workshop – Game of Life 9/12/2012 XP trong Coding Dojo 17

Editor's Notes

  1. Đới
  2. Đới
  3. Đới
  4. Đới
  5. ĐớiGiới thiệuchủđề (10 phút): QuyếtđịnhchủđềcủabuổigặpnàyCode (40 phút)Thảoluận (10 phút): Nghỉgiữa phiên làmviệcđểthảoluận xem cáchmọiviệc đang diễn ra.Code thêm (40 phút)Cải tiến (30 phút): Xem nhanh lại những gì của buổi trước, những gì tốt, thú vị, những gì còn chưa tốt
  6. Đới
  7. Đới
  8. Đới
  9. TúCode reorganizationImplies equivalenceChange the structure, not the behaviorCleans up “code-smell”Does NOT fix bugs
  10. Đới
  11. The World Corresponding to a Game of Life