โครงการของคุณควรมักจะใช้อดีตกาล ไม่ว่าในกรณีใดโครงการควรใช้รูปแบบเดียวกันเสมอเพื่อความมั่นคงและชัดเจน
ฉันเข้าใจข้อโต้แย้งอื่น ๆ ที่โต้แย้งว่าใช้กาลปัจจุบัน แต่มักจะไม่ใช้ หัวข้อย่อยต่อไปนี้เป็นข้อโต้แย้งทั่วไปสำหรับการเขียนในปัจจุบันและการตอบสนองของฉัน
- การเขียนในกาลปัจจุบันบอกบางคนว่าการใช้ความมุ่งมั่นจะทำอะไรมากกว่าสิ่งที่คุณทำ
นี่คือเหตุผลที่ถูกต้องที่สุดที่เราต้องการใช้กาลปัจจุบัน แต่ด้วยรูปแบบที่เหมาะสมของโครงการ การคิดแบบนี้ถือว่าการกระทำทั้งหมดเป็นการปรับปรุงหรือฟีเจอร์เสริมและคุณมีอิสระในการตัดสินใจว่าจะเก็บข้อมูลใดและจะปฏิเสธอะไรในที่เก็บข้อมูลเฉพาะของคุณ
อาร์กิวเมนต์นี้ใช้ได้ถ้าคุณกำลังจัดการกับโครงการที่มีการกระจายอย่างแท้จริง หากคุณกำลังจัดการกับโครงการแบบกระจายคุณอาจกำลังทำงานในโครงการโอเพ่นซอร์ส และอาจเป็นโครงการที่ใหญ่มากหากมีการแจกจ่ายจริง ๆ ในความเป็นจริงอาจเป็นเคอร์เนล Linux หรือ Git เนื่องจาก Linux นั้นเป็นสิ่งที่ทำให้ Git แพร่กระจายและได้รับความนิยมจึงเป็นเรื่องง่ายที่จะเข้าใจว่าทำไมผู้คนถึงคำนึงถึงสไตล์ของผู้ใช้ ใช่รูปแบบเหมาะสมกับทั้งสองโครงการ หรือโดยทั่วไปจะทำงานกับโครงการโอเพ่นซอร์สขนาดใหญ่แบบกระจาย
ที่ถูกกล่าวว่าโครงการส่วนใหญ่ในการควบคุมแหล่งที่มาไม่ทำงานเช่นนี้ มักจะไม่ถูกต้องสำหรับที่เก็บข้อมูลส่วนใหญ่ เป็นวิธีคิดสมัยใหม่เกี่ยวกับคอมมิท: การโค่นล้ม (SVN) และที่เก็บ CVS แทบจะไม่รองรับการเช็คอินที่เก็บแบบนี้ โดยทั่วไปแล้วสาขาการรวมจะจัดการการกรองเช็คอินที่ไม่ดี แต่โดยทั่วไปจะไม่ถือว่าเป็น "ตัวเลือก" หรือ "ฟีเจอร์ที่น่าอยู่"
ในสถานการณ์ส่วนใหญ่เมื่อคุณทำคอมมิชชันแหล่งเก็บข้อมูลคุณกำลังเขียนรายการสมุดรายวันซึ่งอธิบายสิ่งที่เปลี่ยนแปลงด้วยการปรับปรุงนี้เพื่อให้ผู้อื่นในอนาคตเข้าใจได้ง่ายขึ้นว่าทำไมการเปลี่ยนแปลงจึงเกิดขึ้น โดยทั่วไปแล้วจะไม่ใช่การเปลี่ยนแปลงทางเลือก - บุคคลอื่นในโครงการจะต้องทำการผสานหรือลดใหม่ คุณไม่ได้เขียนบันทึกรายการเช่น "ไดอารี่วันนี้ผมได้พบกับเด็กผู้ชายคนหนึ่งและเขากล่าวสวัสดีกับฉัน." แต่คุณเขียน "ผมได้พบกับเด็กผู้ชายคนหนึ่งและเขากล่าวสวัสดีกับฉัน."
ในที่สุดสำหรับโครงการที่ไม่เผยแพร่เช่น 99.99% ของเวลาที่บุคคลจะอ่านข้อความยืนยันสำหรับการอ่านประวัติ - ประวัติถูกอ่านในกาลที่ผ่านมา 0.01% ของเวลาที่จะตัดสินใจว่าควรใช้การคอมมิชชันนี้หรือรวมเข้ากับสาขา / พื้นที่เก็บข้อมูลของพวกเขาหรือไม่
- ความมั่นคง นั่นเป็นวิธีในหลาย ๆ โครงการ (รวมถึงคอมไพล์เอง) นอกจากนี้เครื่องมือคอมไพล์ที่สร้างคอมมิท (เช่นการรวมคอมไพล์หรือย้อนกลับคอมไพล์) ก็ทำได้เช่นกัน
ไม่ฉันรับประกันได้ว่าโครงการส่วนใหญ่ที่เคยบันทึกไว้ในระบบควบคุมเวอร์ชันจะมีประวัติของพวกเขาในอดีตที่ผ่านมา (ฉันไม่มีการอ้างอิง แต่มันอาจจะถูกต้องเพราะการโต้แย้งในปัจจุบันเป็นเรื่องใหม่ตั้งแต่ Git) ข้อความ "การแก้ไข" หรือส่งข้อความในกาลปัจจุบันเริ่มต้นเท่านั้นที่เหมาะสมในโครงการที่เผยแพร่อย่างแท้จริง - ดูจุดแรกด้านบน
- ผู้คนไม่เพียง แต่อ่านประวัติศาสตร์รู้ว่า "เกิดอะไรขึ้นกับ codebase นี้" แต่ยังต้องตอบคำถามเช่น "เกิดอะไรขึ้นเมื่อฉันเลือกการกระทำนี้" หรือ "สิ่งใหม่ ๆ จะเกิดขึ้นกับฐานรหัสของฉันเพราะสิ่งเหล่านี้ ฉันอาจจะหรืออาจจะไม่รวมในอนาคต "
ดูจุดแรก 99.99% ของเวลาที่บุคคลจะอ่านข้อความยืนยันสำหรับการอ่านประวัติ - ประวัติถูกอ่านในอดีตกาล 0.01% ของเวลาที่จะตัดสินใจว่าควรใช้การคอมมิชชันนี้หรือรวมเข้ากับสาขา / พื้นที่เก็บข้อมูลของพวกเขาหรือไม่ 99.99% เต้น 0.01%
ฉันไม่เคยเห็นข้อโต้แย้งที่ดีที่บอกว่าใช้กาล / ไวยากรณ์ที่ไม่เหมาะสมเพราะมันสั้นกว่า คุณอาจบันทึกโดยเฉลี่ย 3 ตัวอักษรสำหรับข้อความมาตรฐาน 50 ตัว ที่ถูกกล่าวว่ากาลปัจจุบันโดยเฉลี่ยอาจจะสั้นกว่าไม่กี่ตัวอักษร
- คุณสามารถตั้งชื่อให้คำมั่นสัญญากับชื่อตั๋วในตัวติดตามปัญหา / ฟีเจอร์ของคุณได้อย่างต่อเนื่อง (ซึ่งไม่ได้ใช้อดีตกาลแม้ว่าบางครั้งในอนาคต)
ตั๋วถูกเขียนเป็นสิ่งที่กำลังเกิดขึ้น (เช่นแอพแสดงพฤติกรรมที่ผิดเมื่อฉันคลิกปุ่มนี้) หรือสิ่งที่ต้องทำในอนาคต (เช่นข้อความจะต้องได้รับการตรวจสอบโดยบรรณาธิการ)
ประวัติ (เช่นกระทำข้อความ) เขียนเป็นสิ่งที่ทำในอดีต (เช่นปัญหาได้รับการแก้ไข)