0Pricing
Zig Academy · บทเรียน

การจัดโครงสร้างโครงการหลายไฟล์

จัดระเบียบโมดูลให้เป็นระเบียบ

การจัดโครงสร้างโครงการหลายไฟล์ เป็นบทเรียน Zig Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Zig Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน

ไฟล์เดียวเริ่มแออัด

เมื่อโปรแกรมเติบโตขึ้น ไฟล์หลักไฟล์เดียวจะกลายเป็นกำแพงโค้ด การแยกออกเป็นไฟล์ที่มีหน้าที่ชัดเจนช่วยให้แต่ละส่วนอ่านง่าย 🗂️

main.zig คือจุดเริ่มต้น

ไฟล์ปฏิบัติการของคุณเริ่มทำงานใน main.zig ซึ่งมีฟังก์ชัน main อยู่ ไฟล์นี้จะนำเข้าไฟล์อื่นและเชื่อมส่วนต่าง ๆ ของโปรแกรมเข้าด้วยกัน

const greet = @import("greet.zig");

จัดกลุ่มตามหน้าที่

ใส่โค้ดที่เกี่ยวข้องกันไว้ในไฟล์เดียว เช่น การแยกวิเคราะห์ใน parser.zig และผลลัพธ์ใน render.zig แต่ละไฟล์มีหน้าที่รับผิดชอบที่ชัดเจนและมีส่วนติดต่อขนาดเล็ก

ไฟล์คือโมดูล

เนื่องจากไฟล์คือโครงสร้างข้อมูล การนำเข้าไฟล์จึงทำให้คุณได้โมดูลที่เป็นระเบียบ ฟังก์ชันและชนิดข้อมูล pub ของไฟล์จะประกอบกันเป็น API สาธารณะของโมดูลนั้น

const parser = @import("parser.zig");
const ast = parser.parse(input);

ใช้โฟลเดอร์เมื่อโครงการใหญ่ขึ้น

จัดกลุ่มไฟล์ไว้ในโฟลเดอร์ เช่น src/net หรือ src/cli แล้วนำเข้าโดยใช้เส้นทางสัมพัทธ์ที่มีชื่อโฟลเดอร์รวมอยู่ด้วย

const http = @import("net/http.zig");

ส่งออกซ้ำจากจุดเดียว

ไฟล์ รากขนาดเล็กสามารถเปิดเผยส่วนต่าง ๆ จากหลายไฟล์อีกครั้ง ทำให้ผู้เรียกใช้มีการนำเข้าเพียงครั้งเดียวเพื่อรวบรวมทั้งโมดูล

pub const http = @import("http.zig");
pub const dns = @import("dns.zig");

รักษา API ให้มีขนาดเล็ก

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

ชนิดข้อมูลก็ส่งออกได้

ไฟล์ส่งออกชนิดข้อมูลได้ ไม่ใช่แค่ฟังก์ชัน โครงสร้างข้อมูลหรือชนิดแจกแจงที่เป็น pub ใน shapes.zig จะกลายเป็น shapes.Circle เมื่อใดก็ตามที่มีการนำเข้า

const shapes = @import("shapes.zig");
var c: shapes.Circle = undefined;

ระวังการวนเป็นวงจร

ไฟล์สองไฟล์ที่นำเข้าซึ่งกันและกันอาจก่อให้เกิดวงจรได้ Zig รองรับหลายกรณี แต่การจัดโครงสร้างที่สะอาดกว่าคือย้ายชนิดข้อมูลที่ใช้ร่วมกันไปไว้ในไฟล์ที่สาม

การทดสอบอยู่ข้างโค้ด

แต่ละไฟล์สามารถมีบล็อกการทดสอบของตนเองอยู่ข้างโค้ดที่ตรวจสอบได้ การแยกไฟล์ช่วยให้การทดสอบที่เกี่ยวข้องอยู่ใกล้กับสิ่งที่ตรวจสอบ

test "add works" {
    try std.testing.expect(add(2, 2) == 4);
}

ตั้งชื่อไฟล์อย่างเป็นแบบแผน

ใช้ชื่อไฟล์ตัวพิมพ์เล็กที่ชัดเจนและสื่อถึงเนื้อหา เช่น token.zig หรือ config.zig ชื่อที่ดีทำให้การนำเข้าอ่านได้แทบเหมือนประโยค

const config = @import("config.zig");

ตรวจสอบอย่างรวดเร็ว

ทบทวนว่าไฟล์หนึ่งเปิดเผยความสามารถของตนให้ไฟล์อื่นได้อย่างไร

สรุปทบทวน

คุณได้เห็นวิธีแยกโค้ดออกเป็นไฟล์และโฟลเดอร์ที่มีหน้าที่ชัดเจน เปิดเผย API แบบ pub ขนาดเล็ก และส่งออกซ้ำผ่านโมดูลรากเพียงแห่งเดียว 🎯

คำถามที่พบบ่อย

บทเรียน “การจัดโครงสร้างโครงการหลายไฟล์” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การจัดโครงสร้างโครงการหลายไฟล์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Zig Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การจัดโครงสร้างโครงการหลายไฟล์”

จัดระเบียบโมดูลให้เป็นระเบียบ คุณปฏิบัติ Zig Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Zig Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Zig Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การจัดโครงสร้างโครงการหลายไฟล์” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Zig Academy นี้ได้ไหม

ได้ บทเรียน Zig Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. นำเข้าไฟล์ด้วย @import
  2. การจัดโครงสร้างโครงการหลายไฟล์
  3. build.zig.zon และตัวจัดการแพ็กเกจ
  4. การเพิ่มโมดูลจากผู้พัฒนาภายนอก
← กลับไปที่ Zig Academy