ฉันใช้ไฟล์ config และความสัมพันธ์กับโค้ดมาระยะหนึ่งแล้วและขึ้นอยู่กับวันและทิศทางของลมความคิดเห็นของฉันดูเหมือนจะเปลี่ยนไป มากขึ้นเรื่อย ๆ แม้ว่าฉันจะกลับมาสู่การตระหนักรู้ครั้งแรกในขณะที่เรียนรู้ Lisp: มีความแตกต่างเล็กน้อยระหว่างข้อมูลและรหัส สิ่งนี้ดูเหมือนจะเป็นจริงทวีคูณสำหรับไฟล์ config เมื่อมองในแง่ที่ถูกต้องสคริปต์ Perl จะมากกว่าไฟล์ config สำหรับ perl เล็กน้อย สิ่งนี้มีแนวโน้มที่จะส่งผลที่ค่อนข้างหนักสำหรับงานเช่น QA และแผนกต่างๆเช่นใครควรรับผิดชอบในการเปลี่ยนไฟล์ config
การคืบจากไฟล์กำหนดค่าไปเป็นภาษาที่สมบูรณ์โดยทั่วไปจะทำงานช้าและดูเหมือนว่าจะได้รับแรงหนุนจากความปรารถนาที่จะมีระบบทั่วไป โปรเจ็กต์ส่วนใหญ่ดูเหมือนจะเริ่มต้นเล็ก ๆ ด้วยรายการกำหนดค่าบางอย่างเช่นตำแหน่งที่จะเขียนบันทึกค้นหาข้อมูลชื่อผู้ใช้และรหัสผ่าน ฯลฯ แต่จากนั้นพวกเขาก็เริ่มเติบโตขึ้น: ฟีเจอร์ต่างๆเริ่มที่จะสามารถเปิดหรือปิดได้ การกำหนดเวลาและลำดับของการดำเนินการเริ่มได้รับการควบคุมและบางคนต้องการเริ่มเพิ่มลอจิกเข้าไปอย่างหลีกเลี่ยงไม่ได้ (เช่นใช้ 10 ถ้าเครื่องเป็น X และ 15 ถ้าเครื่องเป็น Y) เมื่อถึงจุดหนึ่งไฟล์ config จะกลายเป็นภาษาเฉพาะของโดเมนและภาษาที่เขียนไม่ดี
ตอนนี้ฉันได้เดินเตร่เพื่อตั้งเวทีคำถามของฉันมีดังนี้:
- วัตถุประสงค์ที่แท้จริงของไฟล์กำหนดค่าคืออะไร?
- ควรพยายามทำให้ไฟล์ config เป็นเรื่องง่ายหรือไม่?
- ใครควรรับผิดชอบในการเปลี่ยนแปลงสิ่งเหล่านี้ (นักพัฒนาผู้ใช้ผู้ดูแลระบบ ฯลฯ )
- ควรควบคุมแหล่งที่มา (ดูคำถาม 3)?
อย่างที่ฉันได้กล่าวไปก่อนหน้านี้คำตอบของฉันสำหรับคำถามเหล่านี้เปลี่ยนไปเรื่อย ๆ แต่ตอนนี้ฉันกำลังคิดว่า:
- เพื่อให้ผู้ที่ไม่ใช่โปรแกรมเมอร์สามารถเปลี่ยนแปลงพฤติกรรมจำนวนมากได้อย่างรวดเร็ว
- ใช่สิ่งที่ไม่หยาบควรอยู่ในรหัส
- ผู้ใช้ควรรับผิดชอบต่อไฟล์ config และโปรแกรมเมอร์ควรรับผิดชอบเลเยอร์คอนฟิกูเรชันระหว่างไฟล์ config และโค้ดที่ให้การควบคุมแอพพลิเคชั่นอย่างละเอียดมากขึ้น
- ไม่ แต่ชั้นกลางที่ละเอียดกว่านั้นควรเป็น