การแยกปัญหาด้วยเมธอดและโค้ดสะอาด
แยกปัญหาออกเป็นเมธอดขนาดเล็กที่ตั้งชื่ออย่างสื่อความหมาย ลดโค้ดซ้ำ เลือกใช้ตัวช่วยแบบบริสุทธิ์ และทำให้รายการพารามิเตอร์เรียบง่าย
การแยกปัญหาด้วยเมธอดและโค้ดสะอาด เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน
เหตุใดจึงต้องแยกเมธอด
เหตุใดจึงต้องแยก เมธอดขนาดเล็กอ่านง่าย ทดสอบ และนำกลับมาใช้ซ้ำได้ง่ายกว่า เมธอดเหล่านี้ทำให้เจตนาชัดเจนและซ่อนรายละเอียด ทำให้ลำดับการทำงานหลักอ่านได้เหมือนเรื่องราว
ความรับผิดชอบเดียว
หนึ่งจุดประสงค์ต่อหนึ่งเมธอด หากเมธอดหนึ่งทั้งคำนวณและพิมพ์ ให้แยกออกจากกัน ทำให้ส่วนเนื้อหาเมธอดสั้นประมาณ 5–15 บรรทัด และตั้งชื่อเป็นคำกริยา
ชื่อและพารามิเตอร์
ชื่อควรบอกเรื่องราว ควรใช้ applyDiscount แทน คำนวณ1 กำหนดพารามิเตอร์ให้น้อยและมีความหมาย หลีกเลี่ยงแฟล็กบูลีนที่ซ่อนพฤติกรรม
กำจัดการทำซ้ำ
DRY หากคุณคัดลอกแล้ววางบรรทัดเดิมซ้ำสองสามบรรทัด ให้แยกเป็นตัวช่วยและเรียกใช้ในทั้งสองตำแหน่ง วิธีนี้จะลดข้อผิดพลาดเมื่อกฎเปลี่ยนแปลง
ตัวช่วยบริสุทธิ์
เมธอดบริสุทธิ์ จะขึ้นอยู่กับข้อมูลเข้าเท่านั้นและส่งกลับผลลัพธ์ เมธอดเหล่านี้นำกลับมาใช้ซ้ำและทดสอบได้ง่าย ให้เก็บ I/O และการพิมพ์ไว้ที่ขอบของระบบ
ตัวอย่างสาธิต: แยกเป็นตัวช่วย
สังเกตตัวช่วยขนาดเล็กที่สื่อความหมาย (applyDiscount, addTax, ปัดเศษ2) ตรรกะจึงนำกลับมาใช้ซ้ำและทดสอบได้ ส่วนการพิมพ์ถูกแยกออกจากกัน
public class Main {
// Entry point: reads like a story using small helpers
public static void main(String[] args) {
double subtotal = 120.00;
double discountRate = 0.10; // 10% off
double taxRate = 0.08; // 8% tax
double discounted = applyDiscount(subtotal, discountRate); // pure
double taxed = addTax(discounted, taxRate); // pure
double total = round2(taxed); // pure
printReceipt(subtotal, discountRate, taxRate, total); // I/O kept at edge
}
// Apply a percentage discount (pure)
static double applyDiscount(double amount, double rate) {
return amount - (amount * rate);
}
// Add a percentage tax (pure)
static double addTax(double amount, double rate) {
return amount + (amount * rate);
}
// Round to 2 decimals (pure)
static double round2(double x) {
return Math.round(x * 100.0) / 100.0;
}
// Handle printing separately (side effect)
static void printReceipt(double subtotal, double discountRate, double taxRate, double total) {
System.out.println("Subtotal: " + subtotal);
System.out.println("Discount: " + (int)(discountRate * 100) + "%");
System.out.println("Tax: " + (int)(taxRate * 100) + "%");
System.out.println("Total: " + total);
}
}
ตรวจสอบการออกแบบที่สะอาด
ตรวจสอบอย่างรวดเร็ว: ตัวเลือกใดสะท้อนการออกแบบเมธอดที่สะอาดได้ดีที่สุด
สรุปทบทวน
สรุปทบทวน: แยกงานออกเป็นส่วน ๆ เลือกชื่อที่ชัดเจน กำจัดโค้ดซ้ำ และเก็บตัวช่วยบริสุทธิ์ไว้ในแกนกลาง โดยให้ผลข้างเคียงอยู่ที่ขอบของระบบ
คำถามที่พบบ่อย
บทเรียน “การแยกปัญหาด้วยเมธอดและโค้ดสะอาด” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การแยกปัญหาด้วยเมธอดและโค้ดสะอาด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การแยกปัญหาด้วยเมธอดและโค้ดสะอาด”
แยกปัญหาออกเป็นเมธอดขนาดเล็กที่ตั้งชื่ออย่างสื่อความหมาย ลดโค้ดซ้ำ เลือกใช้ตัวช่วยแบบบริสุทธิ์ และทำให้รายการพารามิเตอร์เรียบง่าย คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน
บทเรียน “การแยกปัญหาด้วยเมธอดและโค้ดสะอาด” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม
ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การส่งค่าใน Java
- เมธอด static กับเมธอดของอินสแตนซ์
- การแยกปัญหาด้วยเมธอดและโค้ดสะอาด