คอมมิตแบบธรรมดาจะไม่ช่วยบันทึกข้อความคอมมิตของคุณ
สำรวจว่าทำไมแค่ทำตามคอมมิตแบบธรรมดาถึงไม่เพียงพอในการเขียนข้อความคอมมิตที่ดี และแนะนำกลยุทธ์การคิดที่สำคัญในการพัฒนากระบวนการพัฒนาและสร้างคอมมิตที่มีความหมายโดยธรรมชาติ
การค้นหาอย่างรวดเร็วบนอินเทอร์เน็ตจะแสดงบทความมากมายที่สอนวิธีการเขียนข้อความคอมมิต 90% ของบทความเหล่านี้บอกให้คุณใช้ คอมมิตแบบธรรมดา อย่างไรก็ตาม นักพัฒนาจำนวนไม่น้อยยังคงมีปัญหากับเรื่องนี้ พวกเขารู้ว่าควรทำตามแนวทางเหล่านี้ แต่พวกเขากลับพบว่ามันยากที่จะนำไปใช้ในทางปฏิบัติ ทุกครั้งที่พวกเขาคอมมิตโค้ด พวกเขารู้สึกหงุดหงิดว่าจะเขียน "refactor" หรือ "chore" ฉันเคยเห็นโครงการทีมีข้อความคอมมิตที่เหมือนกันทั้งหมดว่า "feat: add page" เพราะการเขียนข้อความคอมมิตสำหรับพวกเขานั้นท้าทายเกินไป และพวกเขาก็เพิ่งยอมแพ้
เร็วเกินไปที่จะพูดถึงคอมมิตแบบธรรมดา
ฉันไม่ได้บอกว่าคอมมิตแบบธรรมดาไม่ดี มันมีประโยชน์ที่เป็นที่รู้จักอย่างมากมาย:
- มันได้รูปแบบที่เป็นเอกภาพ ทำให้ข้อความคอมมิตมีมาตรฐานมากข ึ้น
- มันง่ายสำหรับเครื่องมืออัตโนมัติที่จะวิเคราะห์ ทำให้สามารถสร้างบันทึกการเปลี่ยนแปลงอัตโนมัติได้
- มันช่วยให้สมาชิกทีมเข้าใจวัตถุประสงค์และขอบเขตของการเปลี่ยนแปลงโค้ด
- มันช่วยให้แยกแยะประเภทของการเปลี่ยนแปลงโค้ดได้อย่างรวดเร็ว
อย่างไรก็ตาม เมื่อผู้พัฒนายังคงประสบกับความยากลำบากในการเขียนข้อความคอมมิตที่ดีแม้ว่าจะได้ใช้คอมมิตแบบธรรมดาแล้ว การยัดเยียดบทความเกี่ยวกับวิธีใช้คอมมิตแบบธรรมดาให้พวกเขา สอนพวกเขาว่า feat
แปลว่าอะไร และ fix
แปลว่าอะไร จะไม่มีประโยชน์จริงๆ เพราะมันก็เหมือนกับการให้ตำราการทำอาหารขั้นสูงให้คนที่ไม่รู้วิธีการทำอาหาร โดยไม่สอนวิธีใช้วัตถุดิบและอุปกรณ์ขั้นพื้นฐาน แต่บทความที่กล่าวถึงเช่นนี้ก็มีอยู่มากมายบนอินเทอร์เน็ต พวกเขาไม่รู้ว่าคอมมิตแบบธรรมดาจะมีประสิทธิผลอย่างแท้จริงเมื่อผู้พัฒนามีการคิดที่ชัดเจนและความสามารถในแบ่งแยกภารกิจอย่างแม่นยำเท่านั้น
ดังนั้น คอมมิตแบบธรรมดาไม่แย่ แต่ก่อนที่จะไปถึงจุดนั้น เราจำเป็นต้องสร้างทัศนคติการพัฒนาที่ถูกต้องและใช้การคิดแบบมีเหตุผลของนักพัฒนาทำสิ่งต่างๆ
การคิดที่สำคัญในการเขียนข้อความคอมมิตที่ดี
การเปลี่ยนแปลงโค้ดควรทำสิ่งหนึ่งในแต่ละครั้ง
ในการพัฒนาซอฟต์แวร์ "ทำสิ่งหนึ่งในแต่ละครั้ง" เป็นห ลักการที่สำคัญ นี้ไม่เพียงแต่ใช้ในการเขียนโค้ดแต่ยังใช้ในการคอมมิตโค้ดด้วย เมื่อเรามุ่งเน้นไปที่หนึ่งภารกิจหรือการเปลี่ยนแปลงที่เฉพาะเจาะจงในแต่ละครั้ง โค้ดของเราจะชัดเจนขึ้นและเจตนาของเราชัดเจนยิ่งขึ้น วิธีนี้ไม่เพียงแต่ช่วยเพิ่มประสิทธิภาพในการอ่านโค้ด แต่ยังทำให้กระบวนการตรวจสอบโค้ดง่ายลงอย่างมาก ผู้ตรวจสอบสามารถเข้าใจและตรวจสอบวัตถุประสงค์ของแต่ละการเปลี่ยนแปลงได้ง่ายขึ้น
ยิ่งไปกว่านั้น วิธีนี้มอบความสะดวกสบายในการย้อนโค้ดที่อาจมีปัญหา ถ้าเกิดมีปัญหา เราสามารถค้นหาและย้อนการเปลี่ยนแปลงที่เฉพาะเจาะจงได้ง่ายขึ้นโดยไม่กระทบกับส่วนอื่นที่ไม่เกี่ยวข้อง ที่สำคัญที่สุด เมื่อแต่ละการเปลี่ยนแปลงทำสิ่งหนึ่งเท่านั้น ข้อความคอมมิตที่บรรยายการเปลี่ยนแปลงนั้นก็จะกลายเป็นชัดเจนและมีความหมายโดยธรรมชาติ
ในการปฏิบัติ หมายความว่าเราต้องกำหนดภารกิจที่จะดำเนินการให้ชัดเจนก่อนที่เราจะเริ่มเขียนโค้ด หลังจากดำเนินภารกิจสำเร็จแล้ว เราควรคอมมิตโค้ดทันที แทนที่จะรอจนเมื่อหลายภารกิจสำเร็จแล้วค่อยคอมมิตพร้อมกัน ถ้าเราพบว่ามีพื้นที่อื่นที่ต้องการการปรับปรุงขณะที่กำลังทำงานกับภารกิจปัจจุบัน วิธีที่ดีที่สุดคือการจดบันทึกเอาไว้และจัดการแยกออกมาที่หลังจากภารกิจปัจจุบันเสร็จ ตัวอย่างเช่น เมื่อคุณกำลังดำเนินการคุณสมบัติหนึ่งและพบว่ามีข้อบกพร่องบางอย่างที่มีอยู่แล้ว สิ่งที่คุณควรทำคืไม่แก้ไขข้อบกพร่องทันทีพร้อมกับโค้ดคุณสมบัติใหม่ของคุณ แต่จะต้องดำเนินการคุณสมบัติก่อน จากนั้นแก้ไขข้อบกพร่องที่คุณพบในคอมมิตอื่น หรือแก้ไขข้อบกพร่องก่อนแล้วคอมมิตคุณสมบัติ