ภาคผนวก
หากคุณอ่านบทไวยากรณ์และบทขั้นสูงจบอย่างละเอียดจริงๆ และลงมือเขียนโค้ดแล้ว คุณจะพบว่าไวยากรณ์ของ Go จริงๆ แล้วไม่ยาก ฟีเจอร์ก็ไม่มาก ผู้ที่มีประสบการณ์อาจใช้เวลาเพียงไม่กี่วันก็เริ่มต้นได้ มัน是一门ภาษาที่มุ่งเน้นวิศวกรรมอย่างสมบูรณ์ สิ่งนี้คุณจะค่อยๆ สัมผัสได้ในการเขียนโค้ดในอนาคต หากคุณเรียนรู้จบแล้วรู้สึก无处施展拳脚 ต้องการศึกษาลึกขึ้น ฉันสามารถให้เส้นทางการเรียนรู้และโปรเจกต์ตัวอย่างต่อไปนี้เพื่อเป็นข้อมูลอ้างอิง
การพัฒนา Web
การพัฒนา Web เป็นสถานการณ์การใช้งานที่พบบ่อยมากในภาษา Go คุณสามารถลองเฟรมเวิร์ก Web โอเพนซอร์สต่อไปนี้:
หากคุณต้องการพัฒนาไมโครเซอร์วิส ฉันแนะนำเฟรมเวิร์กโอเพนซอร์สต่อไปนี้:
จากนั้นคุณต้องโต้ตอบกับฐานข้อมูล ฉันแนะนำไลบรารีโอเพนซอร์สต่อไปนี้:
คุณสามารถอ้างอิงโปรเจกต์ต่อไปนี้เพื่อการศึกษา:
- gin vue admin
- go-zero-looklook
- gin-admin โปรเจกต์ Web แบบ monolithic ฉันแนะนำให้参考โปรเจกต์นี้เพื่อการศึกษา
- go-platform โปรเจกต์ไมโครเซอร์วิส ฉันแนะนำให้参考โปรเจกต์นี้เพื่อการศึกษา
การสื่อสาร IM
ใช้ Go ในการพัฒนา IM แนะนำโปรเจกต์โอเพนซอร์สเหล่านี้:
การเขียนโปรแกรมเครือข่าย
Go ในการเขียนโปรแกรมเครือข่ายก็มีแอปพลิเคชันมากมายเช่นกัน ต่อไปนี้เป็นโปรเจกต์โอเพนซอร์สอ้างอิง:
เซิร์ฟเวอร์เกม
ในวงการเซิร์ฟเวอร์เกม มีองค์กร越来越多ที่เปลี่ยนไปใช้ Go
การพัฒนาฐานข้อมูล
การพัฒนาฐานข้อมูลต้องการพื้นฐานทางเทคนิค一定的 ฐานข้อมูลหรือเอนจินที่ใช้ภาษา Go ก็ไม่น้อยเช่นกัน เพียงอ่านซอร์สโค้ดของพวกมันก็ต้องใช้เวลาไม่น้อย
- badger ฐานข้อมูล kv ความเร็วสูง
- dgraph ฐานข้อมูลกราฟ
- cayley ฐานข้อมูลกราฟ
- etcd ฐานข้อมูลคีย์-ค่าแบบกระจาย
- rosedb ฐานข้อมูลคีย์-ค่า ตัวเลือกที่ดีที่สุดสำหรับผู้เริ่มต้น
- nutsdb ฐานข้อมูลคีย์-ค่า
- prometheus ฐานข้อมูลอนุกรมเวลา
- tidb ฐานข้อมูลอนุกรมเวลา
- cockroach ฐานข้อมูล SQL แบบกระจาย
- rqlite ฐานข้อมูลแบบกระจายบนพื้นฐาน SQLite
เครื่องมือ command line
Go เหมาะสมมากสำหรับการพัฒนาเครื่องมือ CLI command line ต่อไปนี้แนะนำเฟรมเวิร์กหรือไลบรารีการพัฒนา command line:
- flag ไลบรารีมาตรฐาน flag
- cobra แนะนำให้ใช้ cobra ในการพัฒนา CLI อย่างยิ่ง มีโปรเจกต์ที่มีชื่อเสียงมากมายที่สร้างบน cobra เช่น Docker, K8S เป็นต้น
- go-pretty ใช้สำหรับ输出ที่สวยงามใน command line
- cli เฟรมเวิร์ก command line แบบเบา
- kingpin ไลบรารี解析 command line ที่ทรงพลังและยืดหยุ่น
เนื่องจาก cobra ใช้บ่อยมาก โปรเจกต์ที่พัฒนา command line บนพื้นฐานของมันมีมากมาก หาได้ง่าย ต่อไปนี้เป็นเพียงโปรเจกต์อ้างอิง:
ข้างต้นเป็นเพียง列出ด้านที่พบบ่อย คุณจะเห็นว่า Go มีการใช้งานอย่างกว้างขวางในด้านเซิร์ฟเวอร์ ส่วนไคลเอนต์则น้อย ที่จริง Go ในด้านอื่นๆ ก็มีการใช้งานไม่น้อยเช่นกัน เช่น webrtc, blockchain, object storage, cloud computing เป็นต้น หากสนใจสามารถศึกษาเพิ่มเติมบน Github
สุดท้าย หากคุณต้องการเข้าใจรายละเอียดการนำไปใช้ของภาษา Go ลึกขึ้น เช่น โครงสร้างข้อมูลระดับล่างของ slice และ map การนำไปใช้ของตัวจัดกำหนดการ协程 กระบวนการ回收ขยะ GC เป็นต้น ไปที่章节 หลักการนำไปใช้ เพื่อ了解เนื้อหาเพิ่มเติม
