เมื่อใช้ฟีเจอร์เพื่อจัดการการปรับใช้ฉันควรแบ่งฟังก์ชั่นของฉันออกเป็นฟีเจอร์เล็ก ๆ น้อย ๆ หรือฟีเจอร์ใหญ่หนึ่งอัน?


15

ฉันค่อนข้างใหม่ที่จะมีโมดูลและฉันได้อ่านคำแนะนำเกี่ยวกับการขัดแย้งออนไลน์ไม่ว่าจะเป็นวิธีที่ง่ายที่สุดในการรักษา A) หนึ่งคุณลักษณะใหญ่หรือ B) ขนาดเล็กหลายคุณสมบัติแล้ว " คุณลักษณะที่ควบคุม " โมดูลประเภทที่แสดงรายการคุณสมบัติทั้งหมดที่มีขนาดเล็ก เป็นการพึ่งพา

เล็กน้อยเกี่ยวกับสถานการณ์เฉพาะของฉัน: ฉันกำลังใช้local development -> dev server -> staging server -> live serverเวิร์กโฟลว์ ไซต์นี้โดยเฉพาะจะเป็นเว็บไซต์ประเภทเดียวที่ฉันเคยพัฒนา ฉันไม่ได้ตั้งใจจะใช้featuresฉันสร้างสำหรับเว็บไซต์นี้ในเว็บไซต์อื่น ๆ

สิ่งนี้ทำให้ฉันโน้มตัวไปสู่การทำทุกอย่างในฟีเจอร์ที่ยิ่งใหญ่เพราะฉันเคยมีปัญหาในอดีตที่ฉันตั้งใจกำหนดกฎเดียวกันในหลาย ๆ ฟีเจอร์และตกอยู่ในปัญหา อย่างไรก็ตามในแง่ของโครงสร้างสิ่งนี้ดูเหมือนผิดสำหรับฉัน - มีคุณสมบัติ / ฟังก์ชั่นที่แตกต่างกันดังนั้นพวกเขาควรจะแบ่งออกเป็นคุณสมบัติแยกต่างหาก ในทางกลับกันฉันรู้สึกอยากทำสิ่งนี้ฉันอาจแค่สร้างงานเพิ่มเติมและค่าใช้จ่ายสำหรับตัวเองที่จะไม่เกิดประโยชน์กับใครเลย

วิธีการใดที่รักษาได้ง่ายกว่าในทางปฏิบัติ - หนึ่งในคุณสมบัติที่ยิ่งใหญ่หรือที่เล็กกว่านั้น?

คำตอบ:


7

ทำให้คุณสมบัติเล็ก ๆ น้อย ๆ หลายแยกโดยชั้นแนวคิด

ข้อดี:

  1. มีความละเอียดเมื่อตรวจสอบการแทนที่และทำการเปลี่ยนกลับ - ดังนั้นคุณไม่จำเป็นต้องเปลี่ยนทุกอย่างในคราวเดียว
  2. Modularity - แม้ว่าคุณจะไม่ได้วางแผนที่จะนำส่วนประกอบแต่ละชิ้นมาใช้ใหม่การแบ่งสิ่งต่าง ๆ ลงในโมดูลที่ไม่ต่อเนื่องจะช่วยในการบำรุงรักษา

สำหรับการปรับใช้ไซต์เดียวจากการพัฒนาเพื่อทดสอบเพื่อการผลิตเราใช้ taxonomy ต่อไปนี้ (โดยที่ "ไซต์" ถูกแทนที่ด้วยชื่อเครื่องที่ไม่ซ้ำสำหรับไซต์) -

  • site_typesคุณสมบัติ - ประกาศประเภทเนื้อหาฟิลด์การตั้งค่า ImageCache บทบาทผู้ใช้
  • site_structureคุณสมบัติ - ประกาศบริบท, มุมมอง, เมนูและลิงค์เมนู , บล็อก, การอนุญาตของผู้ใช้, ตัวแปร
    • ขึ้นอยู่กับsite_typesคุณสมบัติ
  • site_contentคุณสมบัติ - ประกาศโหนด
    • ขึ้นอยู่กับsite_structureคุณสมบัติ

หากมีหลายส่วนของไซต์ที่แตกต่างกัน (ตัวอย่างเช่นสาธารณะกับส่วนตัว) ให้พิจารณาแยกสิ่งต่าง ๆ เพิ่มเติม:

  • site_types ลักษณะเฉพาะ
  • site_structure คุณสมบัติ - ประกาศส่วนประกอบโครงสร้างทั่วไปทั้งแบบสาธารณะและส่วนตัว
    • ขึ้นอยู่กับsite_typesคุณสมบัติ
  • site_public_structure ลักษณะเฉพาะ
    • ขึ้นอยู่กับsite_typesคุณสมบัติ
  • site_public_content ลักษณะเฉพาะ
    • ขึ้นอยู่กับsite_public_structureคุณสมบัติ
  • site_private_structure ลักษณะเฉพาะ
    • ขึ้นอยู่กับsite_typesคุณสมบัติ
  • site_private_content ลักษณะเฉพาะ
    • ขึ้นอยู่กับsite_private_structureคุณสมบัติ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.