Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

มาเรียนรู้และใช้งาน Git Stash-Driven Development กัน

$
0
0

Screen Shot 2559-01-18 at 1.16.10 PM

Screen Shot 2559-01-18 at 1.16.10 PM ช่วงนี้มีโอกาสได้ใช้ git stash ในการเก็บงานที่พัฒนาไม่เสร็จ หรือต้องการ rollback code ที่เปลี่ยนแปลงจำนวนเยอะ ๆ ซึ่งใช้คำสั่งง่าย ๆ ดังนี้ $git stash save --keep-index $git stash drop เพียงเท่านี้ก็ rollback code กลับไปได้แล้ว รวมทั้งนำมาใช้ร่วมกับการพัฒนาตามแนวคิด TDD (Test-Driven Development) ได้อย่างดีด้วย จึงนำมาสรุปไว้นิดหน่อย เมื่อลองไปค้นหาใน internet ก็เจอบทความเรื่องเดียวกัน คือ Git Stash-Driven Development เลยใช้เป็นตัวหลักในการอธิบายเลยดีกว่า

ขั้นตอนในการพัฒนาตามแนวคิด TDD ร่วมกับ Git เป็นดังนี้

  1. เขียน test code ที่มัน fail (RED)
  2. เขียน production code เพื่อทำให้ test ผ่าน (GREEN)
  3. ทำการ commit code
  4. ทำการ refactor code
  5. ทำการ commit code
  6. ทำการ push code
  7. กลับไปยังข้อ 1
ถ้าเวลาในการทำงานแต่ละรอบ หรือ lead time น้อย ๆ แล้ว ยิ่งทำให้เราได้รับ feedback ที่เร็ว นั่นส่งผลดีอย่างมาก และสะท้อนให้เราเห็นว่า สิ่งที่เรากำลังทำมันเล็กหรือใหญ่กันแน่ นั่นคือ สอนให้รู้เรื่องการแตกงานนั่นเอง

บ่อยครั้งเมื่อเราเขียน test ใหม่แล้ว พบว่าการเขียน production code มันยากมาก !!

ดังนั้นสิ่งที่เราทำได้คือ
  • ทำการลบ test
  • ทำการ ignore test
จากนั้นทำการ commit การเปลี่ยนแปลง แล้วกลับมาทำการ refactor code ต่อ เพื่อทำให้ code มันง่าย และ พร้อมสำหรับ test ชุดใหม่ จากนั้นทำการ commit และ push code เมื่อทุกอย่างพร้อมก็ทำการเขียน test หรือ เอา ignore test ออกไป และเริ่มเขียน production code ต่อไป ซึ่งทำแบบนี้ไปเรื่อย ๆ แสดงดังรูป listening-to-the-tests

แต่ก็มีบางกรณีที่ไม่สามารถ ignore หรือ ลบ test ได้

ไม่ต้องการ commit ignore test ขึ้นไป ไม่ต้องการ commit code ที่ไม่เสร็จ ไม่ต้องการ commit code ที่ refactor ไม่เสร็จ บางครั้งต้องสลับไปพัฒนาระบบอื่น ทั้ง ๆ ที่ code ยังไม่เสร็จ สิ่งต่าง ๆ เหล่านี้ ล้วนก่อให้เกิดอันตรายอย่างมากในอนาคตอันใกล้ !! คำถาม มีวิธีการใดบ้างที่ช่วยบรรเทาความเจ็บปวดเหล่านี้ได้บ้าง ? คำตอบที่ผมได้รับกลับมาจากการลอง คือ ใช้งาน git stash ซะ เนื่องจากเราสามารถซ่อนการเปลี่ยนแปลง ที่เราไม่ต้องการ commit ได้ แต่ในการใช้งาน git stash นั้น ผมมีกฎง่าย ๆ 1 ข้อคือ ห้ามทำการ stash เกินกว่า 1 ครั้ง ไม่เช่นนั้นคุณจะซ่อนการเปลี่ยนแปลงไว้เยอะมาก ๆ

ผลที่ได้คือ การเขียน code ตามแนวคิด TDD

มันลื่นไหล หรือ flow มากยิ่งขึ้น รวมทั้งทำให้ code ที่ commit ขึ้นไป มันมีความสวยงาม และ มี code ที่จำเป็นเท่านั้น นี่คือหนึ่งวิธีการเพื่อปรับปรุงการทำงานให้ดี และ สะดวกขึ้น และเป็นการประยุกต์เครื่องมือต่าง ๆ มาช่วยแก้ไขปัญหาที่เราพบเจออยู่เป็นประจำ ซึ่งแนวคิดนี้มันคือ Git Stash-Driven Development นั่นเอง ลองนำไปใช้ดูครับ เผื่อจะมีประโยชน์บ้าง

Viewing all articles
Browse latest Browse all 1997

Trending Articles