พูดจากประสบการณ์ ...
โครงการโอเพ่นซอร์สครั้งแรกที่ฉันมีส่วนฉันเต็มไปด้วยปัสสาวะและน้ำส้มเมื่อฉันเริ่มด้วย
สิ่งที่ฉันทำทันทีคืออ่านไฟล์ต้นฉบับหลาย ๆ ไฟล์แล้วเริ่มจัดแต่งสิ่งต่าง ๆ ตามความชอบส่วนตัวสร้างแพตช์ขนาดใหญ่แล้วส่งมัน
หากคุณกำลังทำงานกับคนที่ 'ดี' (เหมือนฉัน) เขาจะปฏิเสธแพทช์ทันที ส่วนใหญ่เป็นเพราะเมื่อคุณมีส่วนร่วมในโครงการโอเพนซอร์สคุณคาดว่าจะแบ่งการแก้ไขของคุณเป็นชิ้นขนาดกัดที่แก้ไขปัญหาเดียว 'นำ gotos ทั้งหมดออก' ไม่ใช่ตัวอย่างที่ดีของการกระทำปรมาณู แม้ว่าคุณจะทำลายมันให้เล็กลงเอกสารที่ผูกมัดไว้ก่อนก็อาจถูกปฏิเสธได้
เหตุผลก็คือเนื่องจากรหัสนี้ทำงานโดยคนหลายคน (ที่มีสไตล์แตกต่างกัน) เมื่อเวลาผ่านไปจึงไม่สามารถยอมรับการเปลี่ยนแปลงในห้องสมุดทั้งหมดเพื่อให้เหมาะกับสไตล์ของนักพัฒนาคนเดียว หากการเปลี่ยนรูปแบบเพื่อประโยชน์ของสไตล์นั้นเป็นไปได้ดังนั้นโครงการโอเพนซอร์สทุกแห่งจะไม่ก้าวไปข้างหน้าเพราะรหัสจะได้รับการแก้ไขอย่างต่อเนื่องเพื่อให้เหมาะกับสไตล์ที่แตกต่างกัน
การสร้างรหัสใหม่และการเพิ่มฟังก์ชันการทำงาน (หรือลบ cruft ที่เลิกใช้แล้ว) มักจะมีความสำคัญมากกว่ารหัส 'การทำความสะอาด'
ส่วนที่ยากที่สุดและคุ้มค่าที่สุดในการทำงานในโครงการโอเพ่นซอร์สคือคุณจะถูกถามว่าทำไมคุณจึงเสนอให้ทำการเปลี่ยนแปลงที่คุณส่ง หากคุณสามารถให้เหตุผลที่ดีมีโอกาสที่ดีกว่าที่จะส่งแพทช์ของคุณ
คำแนะนำของฉันคือทำการเปลี่ยนแปลงเล็กน้อยเหล่านี้ในไฟล์ต้นฉบับหนึ่งไฟล์เพื่อให้ได้ลิ้มรสสิ่งที่คุณพยายามทำก่อน หากการเปลี่ยนแปลงนั้นมีความสมเหตุสมผลและเป็นที่ยอมรับให้ถามว่าการเปลี่ยนแปลงอื่น ๆ เช่นนี้จะช่วยปรับปรุงคุณภาพของโครงการหรือไม่ ด้วยวิธีนี้คุณจะไม่ต้องเปลืองแรงในการทำอะไรหากแพทช์ของคุณถูกปฏิเสธในอนาคต
การพัฒนาโอเพ่นซอร์สเป็นมากกว่าการเขียนโค้ด คุณกำลังทำงานเพื่อสร้างความสัมพันธ์ที่เชื่อถือได้เพราะผู้รักษาประตู (ผู้พัฒนาที่ควบคุมการเข้าถึงแบบพุช) จะทำสิ่งที่พวกเขาต้องทำเพื่อปกป้องความสมบูรณ์ของโครงการ ในขณะที่คุณส่งแพตช์เพิ่มเติมผู้รักษาประตูจะได้รับความรู้สึกที่ดีขึ้นสำหรับสไตล์ของคุณและคุณจะไม่ต้องพิสูจน์การเปลี่ยนแปลงของคุณอีกมาก
มันเป็นกระบวนการที่ต้องใช้เวลา แต่มันก็คุ้มค่ามาก ไม่เพียง แต่คุณจะได้เรียนรู้มากมายจากความสามารถในการมองและการวิจารณ์รหัสของคนอื่น แต่คุณจะได้รับการวิพากษ์วิจารณ์ในสไตล์ของคุณเอง
ก่อนที่คุณจะเสียเวลามากมายในการพยายาม 'แก้ไขความอยุติธรรมของข้อผิดพลาดของรูปแบบการเข้ารหัสของผู้อื่น' ให้ถามตัวคุณเองว่า:
การเปลี่ยนแปลงที่คุณเสนอนั้นขึ้นอยู่กับการเพิ่มมูลค่าให้กับโครงการหรือเป็นไปตามศาสนาโวหารภายในของคุณเอง
มีเป็นจำนวนมากในการนับถือศาสนาในกองมากเกิน (และเว็บไซต์ที่เกี่ยวข้องกอง Exchange) ผมหมายถึงมาก ผู้คนคิดและพูดคุยเกี่ยวกับสไตล์อย่างไม่มีที่สิ้นสุดราวกับว่ายิ่งคุณพูดถึงมันมากเท่าไหร่คุณก็ยิ่งใกล้กับสไตล์การเขียนโค้ดที่ 'สมบูรณ์แบบในอุดมคติไม่สามารถทำลายได้' ฉันพูดถึงมันมากเกินไปเพราะมันสนุก
ในโลกโอเพ่นซอร์สสไตล์นั้นไม่สำคัญ ฟังก์ชั่นคือ
หมายเหตุ: คำแนะนำทั้งหมดนี้ถือว่าผู้รักษาประตูของคุณเป็นโปรแกรมเมอร์ที่สมเหตุสมผลและมีความสามารถ หากเขาเป็นคนนับว่าคุณโชคดีที่คุณไม่ได้ติดอยู่กับหนึ่งใน whiny b @ & # & es ที่มีความกังวลเพียงอย่างเดียวคือการปกป้อง 'ทารก' ของพวกเขา พวกมันมีอยู่ในป่าดังนั้นอย่าแปลกใจถ้าคุณเจอมัน
goto
ไม่จำเป็นต้องเป็นระเบียบ มีหลายกรณีที่การใช้งานนั้นถูกต้องสมบูรณ์