Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Rust Tutorial Hero

บทนำ - ยินดีต้อนรับสู่ Rust! 🦀

Rust คืออะไร?

Rust เป็นภาษาโปรแกรมระดับ Systems Programming ที่มุ่งเน้น 3 เรื่องหลัก: ความปลอดภัย (Safety), ความเร็ว (Speed), และ ความสามารถในการทำงานพร้อมกัน (Concurrency) โดยไม่ต้องมี Garbage Collector

🧠 ปรัชญาของ Rust (The Three Pillars)

Rust ถูกออกแบบมาเพื่อแก้ปัญหา Trade-off เดิมๆ ที่ว่า “ถ้าอยากได้ความปลอดภัย ต้องยอมแลกด้วยความเร็ว” ด้วย 3 เสาหลัก:

1. Memory Safety โดยไม่มี Garbage Collector

Rust ตรวจสอบความถูกต้องของหน่วยความจำตั้งแต่ตอน Compile (ผ่านระบบ Ownership) ไม่ต้องมี GC มาถ่วงตอน Runtime

แนวทางภาษาข้อดี/ข้อเสีย
Manual MemoryC/C++เร็วมาก แต่เสี่ยง Buffer Overflows / Memory Leaks
Garbage CollectionJava, Go, Pythonปลอดภัย แต่กินแรมและมีช่วงหยุด (GC Pause)
Ownership SystemRustปลอดภัย + เร็ว (Zero Runtime Overhead) ✅

2. Zero-Cost Abstractions

คุณสามารถเขียนโค้ด High-level (เช่น Iterators, Closures, Generics) ที่อ่านง่าย แต่เมื่อ Compile แล้วจะได้ Machine Code ที่เร็วเท่ากับการเขียนแบบ Low-level ด้วยมือ

📌 กฎเหล็ก: “สิ่งที่คุณไม่ได้ใช้ คุณไม่ต้องจ่าย และสิ่งที่คุณใช้ คุณไม่สามารถเขียนเองด้วยมือให้ดีกว่าที่ภาษาทำให้ได้”

3. Fearless Concurrency

Rust Compiler ช่วยป้องกัน Data Races ตั้งแต่ตอนเขียนโค้ด ทำให้นักพัฒนา “กล้า” เขียนโปรแกรมที่ทำงานขนานกัน (Multi-threading) ได้อย่างเต็มประสิทธิภาพโดยไม่ต้องกลัวบั๊กที่หาเจอยาก


🆚 เปรียบเทียบกับภาษาอื่น

ด้านC/C++GoPythonRust
ความเร็ว⚡⚡⚡⚡⚡⚡⚡⚡
Memory Safety❌ Manual✅ GC✅ GC✅ Ownership
Concurrency⚠️ ยาก✅ Goroutines⚠️ GIL✅ Fearless
Learning Curve⚠️ สูง✅ ง่าย✅ ง่าย⚠️ สูง
GC Pauseไม่มีมีมีไม่มี

💡 สรุป: Rust ให้ความเร็วเท่า C/C++ แต่ปลอดภัยเท่า Go/Java โดยไม่ต้องมี Garbage Collector!


ทำไมต้องเรียน Rust?

นอกเหนือจากความเทพทางเทคนิคแล้ว นี่คือเหตุผลที่คุณควรลงทุนเวลากับภาษานี้:

เหตุผลคำอธิบาย
📦 Modern ToolingCargo คือ Package Manager ที่ดีที่สุดตัวหนึ่งของโลก จัดการ dependencies, build, test, docs ได้ในตัวเดียว
💼 อุตสาหกรรมต้องการบริษัทระดับโลก (Microsoft, Google, AWS, Meta) ใช้ Rust ใน Core Infrastructure และต้องการคนเขียนเป็น
🏆 Most Loved Languageครองแชมป์ใน Stack Overflow Survey ติดต่อกันหลายปี นักพัฒนาที่ได้ลองใช้มักจะติดใจ
Strict CompilerCompiler ที่จู้จี้แต่ใจดี เหมือนมี Senior Dev คอยรีวิวและสอนโค้ดให้คุณตลอดเวลา

Rust เหมาะกับงานอะไร?

ประเภทงานตัวอย่าง
🖥️ Systems ProgrammingOS, Drivers, Compilers
🌐 Web ServicesBackend APIs, Microservices
⚡ WebAssemblyHigh-performance Web Apps
🛠️ CLI ToolsCommand-line Applications
📱 EmbeddedIoT, Robotics
🎮 Game EnginesGame Development
🔐 BlockchainCrypto, Smart Contracts

🌍 ใครใช้ Rust?

บริษัทชั้นนำระดับโลกเปลี่ยนมาใช้ Rust เพราะความปลอดภัยและประสิทธิภาพ:

บริษัทโปรเจกต์ทำไมถึงเลือก Rust
MicrosoftWindows kernelMemory safety ใน OS
GoogleAndroid (Binder)ลดช่องโหว่ด้านความปลอดภัย
MetaMononokeConcurrency ที่ดีกว่า
AWSFirecrackerLow latency สำหรับ Lambda
CloudflarePingoraแทน nginx, เร็วกว่า 3 เท่า
DiscordRead StatesGo → Rust, ลด latency spike
LinuxRust for Linuxภาษาที่ 2 หลัง C ใน kernel

💡 รู้หรือไม่? Discord เคยมีปัญหา latency spike ทุก 2 นาที เมื่อเปลี่ยนจาก Go เป็น Rust ปัญหาหายไปเลย!


📜 ประวัติความเป็นมา

Graydon Hoare พนักงานของ Mozilla เริ่มพัฒนา Rust เป็นโปรเจกต์ส่วนตัวในปี 2006 (ตั้งชื่อตามเชื้อราสนิมที่มีความทนทาน) ก่อนที่ Mozilla จะเห็นศักยภาพและสนับสนุนอย่างเป็นทางการในปี 2009

🗓️ Rust Timeline

ปีเหตุการณ์สำคัญ
2006เริ่มพัฒนาเป็น Side Project
2009Mozilla ประกาศสนับสนุนอย่างเป็นทางการ
2010เปิดตัวต่อสาธารณะครั้งแรก
2015🎉 Rust 1.0 เปิดตัว (Stable Release) พร้อมรับประกัน Backward Compatibility
2018Rust 2018 Edition (ปรับปรุงครั้งใหญ่, เพิ่ม async/await ในเวลาต่อมา)
2021ก่อตั้ง Rust Foundation (AWS, Google, Microsoft, Huawei, Mozilla)
2024🐧 Rust เข้าสู่ Linux Kernel อย่างเป็นทางการ (ภาษาที่ 2 ถัดจาก C)

หนังสือเล่มนี้มีอะไรบ้าง?

📊 ภาพรวม

เนื้อหาจำนวน
📖 บทเรียน20 บท
✍️ แบบฝึกหัด100+ ข้อ
❓ Quiz100+ คำถาม
📋 Cheatsheetครบทุกหัวข้อ
🔗 Resourcesแหล่งเรียนรู้เพิ่มเติม

🎯 Edition

หนังสือเล่มนี้ใช้ Rust Edition 2024 ซึ่งเป็นเวอร์ชันล่าสุด


หนังสือเล่มนี้สำหรับใคร?

หนังสือเล่มนี้เขียนขึ้นสำหรับ ผู้เริ่มต้น ที่:

  • 🆕 ไม่เคยเขียนโปรแกรมมาก่อน - เราจะอธิบายทุกอย่างตั้งแต่พื้นฐาน
  • 🔄 มีประสบการณ์ภาษาอื่น - และอยากเรียน Rust

โครงสร้างหนังสือ

หนังสือแบ่งออกเป็น 5 ส่วน:

Part 1: พื้นฐาน (บทที่ 1-4)

เริ่มต้นจากการติดตั้ง เขียน Hello World ไปจนถึงพื้นฐานการเขียนโปรแกรม

Part 2: Core Concepts (บทที่ 5-9)

หัวใจสำคัญของ Rust - Ownership ⭐, Structs, Enums, Error Handling

Part 3: Advanced Concepts (บทที่ 10-14)

Generics, Traits, Lifetimes, Modules, Testing, Iterators, Smart Pointers

Part 4: Concurrency & Advanced (บทที่ 15-18)

การเขียนโปรแกรมแบบ concurrent, async/await, unsafe, macros

Part 5: Real World (บทที่ 19-20)

Web Development และ Final Project - สร้างโปรเจกต์จริง


วิธีใช้หนังสือเล่มนี้

💡 คำแนะนำ

  1. 📚 อ่านตามลำดับ - แต่ละบทต่อยอดจากบทก่อนหน้า
  2. ⌨️ ลงมือทำ - พิมพ์โค้ดเอง อย่า copy-paste
  3. 🔬 ทดลอง - แก้โค้ดดู ลองผิดลองถูก
  4. ✍️ ทำแบบฝึกหัด - ท้ายบทจะมีแบบฝึกหัดให้ทำ
  5. ❓ ทำ Quiz - ทดสอบความเข้าใจ

📝 สัญลักษณ์ที่ใช้

ตลอดทั้งเล่ม คุณจะเห็นกล่องข้อความเหล่านี้:

📌 หมายเหตุ: ข้อมูลเพิ่มเติมที่น่าสนใจ

💡 เคล็ดลับ: คำแนะนำที่จะทำให้เขียนโค้ดได้ดีขึ้น

⚠️ คำเตือน: สิ่งที่ควรระวัง

🎯 ลองทำดู: แบบฝึกหัดให้ลองทำ


เครื่องมือที่ต้องการ

ก่อนเริ่มเรียน ติดตั้งสิ่งเหล่านี้:

เครื่องมือคำอธิบาย
Rustภาษา Rust + Cargo
VS CodeText Editor แนะนำ
rust-analyzerExtension สำหรับ VS Code

พร้อมแล้วหรือยัง?

มาเริ่มการเดินทางกับ Rust กันเลย! 🚀

👉 ไปบทที่ 1: Getting Started - เริ่มต้นกับ Rust

☕ สนับสนุนผู้เขียน

ถ้าหนังสือเล่มนี้มีประโยชน์และช่วยให้คุณเข้าใจ Rust มากขึ้น คุณสามารถเลี้ยงกาแฟผมได้ที่: Buy Me a Coffee ☕


🦀 Happy Coding with Rust!