Monthly Archives: July 2011

Refactoring Dojo

บล๊อกนีเป็นบล๊อกแรกที่เขียนเลยนับตั้งแต่มาสิงคโปร์ เพราะขี้เกียจเขียน ทั้งที่จริงๆ มีเรื่องให้เขียนมากมาย

วันนี้จะข้ามมากิจกรรมล่าสุดที่ได้ไปทำมาเมื่อกี้ คือไปร่วม programming event อันนึง ชื่อตามหัวข้อโพสนี้ว่า Refactoring Dojo

ได้รู้ข่าวมาจาก Agile Singapore’s Google group ด้วยความที่ตอนนี้รับข่าวจาก tech กรุ๊๋ปที่นี่ หลายกรุ๊ปมาก ทั้ง Functional Language, Ruby, Agile, Java ตั้งใจจะไปทุกงานถ้าไม่มีอะไรคอขาดบาดตาย เอาให้คุ้มอยากและคุ้มมาไกลบ้าน แถมงานที่บริษัทก็ไม่ค่อยตรงความตั้งใจซะหน่อย

สถานที่ตั้งอยู่ใกล้ Ferrer Park MRT (ใกล้กับ Mustafa ที่รู้จักกันดีนั่นแหละ) ใช้สถานที่ของบริษัท Odd-e ซึ่งเป็น Agile traning company ที่นี่ โดยคนจัดงานเป็นพนักงานคนหนึ่งของที่นี่

งานนี้มีคนมาร่วมงานจริงๆ แค่ 5 คน รวมกับคนจัดอีก 2 คน

โจทย์ที่ได้รับคือ api ของ Towers of Hanoi 1 method หลัก ที่ทำหน้าที่สลับแผ่นจากหอคอยนึง ไปอีกหอคอยนึง โดย method นี้ รับค่าหอคอย from และ to แล้วก็ทำการย้ายเม็ด(หรือแผ่นก็แล้วแต่) โดยเช็คก่อนว่าไม่เอาอันใหญ่ไปทับอันเล็กตามกฎของเกมส์นี้ ซึ่งเค้า implement functional ไว้เสร็จแล้ว และมี test ครอบคลุมเรียบร้อย แต่ไม่ได้ refactor เลย เพื่อให้เราได้ focus การ Refactoring อย่างเดียว

งานนี้แบ่งออกมา 3 คู่ ให้เวลา 20 นาที หมดเวลาแล้วมาดูกันว่าแต่ละคู่เป็นยังไง แล้วก็สลับคู่ ทำ 3 รอบ จะอธิบายความรู้สึกส่วนตัวในการทำ 3 รอบนี้หน่อย

รอบแรก ไม่ได้จับ Java และ eclipse มาเดื่อนกว่า เริ่มไม่คุ้นมือ + ความตื่นเต้นและเกร็ง + ทำบน Windows ที่ไม่ได้ใช้มานาน กดมั่วไปหมด + ปกติ refactor ด้วย sense แต่เห็นหนังสือ Refactoring ของ Martin Fowler ปกหนาตั้งอยู่ก็กลัวว่าคนอื่นอยากได้คำอธิบายชื่อวิธีของเราด้วยหรือเปล่า ไอ่ที่เราทำเค้าจะโอเคหรือเปล่า(เป็นครั้งแรกในชีวิตที่ pair โดยสนใจเรื่อง refactoring) จบรอบแรกไป ไม่ได้ทำอะไรเท่าไหร่ อ่าน code ยังไม่เข้าใจเลย

พอรอบสอง รู้แล้วว่าต้องทำอะไรก็เริ่มลงมือทำจนเสร็จตามที่นึกไว้ พอนั่งดูต่อว่าจะทำอะไรก็หมดเวลา

รอบสาม รีบทำแบบที่ทำรอบสองอย่างรวดเร็วเพราะรู้ว่าเวลาไม่พอแน่ แล้วก็ได้ทำอะไรต่อไปอีกหน่อย แต่ก็ไม่เสร็จ

สรุปสนุกดี อาจจะไม่ได้อะไรเป็นเนื้อหาหลักการมากมาย แต่ได้เจอคนที่คุยกันแล้วเข้าใจ ได้เจอคนที่เห็นความสำคัญในเรื่องเดียวๆกัน แค่นี้ก็มีความสุขแล้ว

Meeting ของ Agile group มีอีกครั้งศุกร์หน้า เป็นคนจาก Pivotal มาพูด ได้ยินว่าบริษัทนี้ ทำ XP แบบ serious มาก แบบว่า require ลูกค้าต้องมี 1 คนมาประจำกับ team dev ทุกๆ วัน ไม่งั้นไม่รับทำ น่าสนใจดี

ขากลับนั่ง MRT กลับพร้อมกับผู้ร่วมงานคนนึง เป็น Tech lead ของ ST Electornics แล้วดันขึ้น MRT กันผิดฝั่ง ได้คุยกันยาวเลย

 

ปล. ขออภัยไม่มีรูปภาพประกอบ

ปล.2 Eclipse ที่ใช้ ลง plugin น่าสนใจอยู่อันนึง เป็น plugin ที่บังคับให้เราใช้ shortcut key ถ้าเราเรียกคำสั่งจาก menu หรือ click ขวา มันจะขึ้น notification พร้อมบอก shortcut key มาให้ แล้วก็เงียบๆ ไม่ทำตามที่เราสั่ง บังคับให้เราต้องใช้ shortcut key อีกที โดยซักสองสามรอบก็จำ key ได้ละ