วันนี้ผมจะพามาดูคำศัพท์เฉพาะทางของ นักพัฒนาซอฟต์แวร์ ที่ใช้ในสื่อสารกับ เพื่อนรวมทีมกัน และที่ใช้กันในชีวิตประจำวัน เดียวจะทยอยมา update คำศัพท์ให้เรื่อยๆนะครับ
นี่คือคำศัพท์ที่นักพัฒนาชอบพูดกันบ่อย ๆ
- Consume - การดึงข้อมูลหรือใช้บริการจากแหล่งอื่น เช่น เราไปร้านอาหาร แล้วสั่งอาหาร (ส่งคำขอ) ร้านก็จะทำอาหารให้เรา (ส่งคำตอบ)
- Produce - ก็เหมือนกับการส่งจดหมายไปรษณีย์ให้เพื่อนครับ เราเขียนข้อมูลที่ต้องการส่งลงในจดหมาย แล้วส่งไปยังที่อยู่ของเพื่อน เพื่อนก็จะได้รับจดหมายและอ่านข้อมูลที่เราส่งไป ในระบบคอมพิวเตอร์ ก็เช่นเดียวกัน การ Produce ข้อมูล หมายถึงการส่งข้อมูลจากระบบหนึ่งไปยังอีกระบบหนึ่ง เพื่อให้ระบบที่รับข้อมูลไปสามารถนำไปใช้งานต่อได้
- Bug - ข้อผิดพลาดหรือจุดบกพร่องในโปรแกรม
- Commit - การบันทึกการเปลี่ยนแปลงของโค้ดลงในระบบ Version Control
- Merge - การรวมโค้ดจากหลายๆ สาขา (branches) เข้าด้วยกัน
- Pull Request - คำขอให้ผู้อื่นตรวจสอบและรวมโค้ดของเรากับสาขาหลัก
- Refactor - การปรับปรุงโค้ดให้มีประสิทธิภาพหรืออ่านง่ายขึ้น โดยไม่เปลี่ยนการทำงานของมัน
- Deploy - การนำโปรแกรมขึ้นเซิร์ฟเวอร์
- Hotfix - การแก้ไขบั๊กด่วน
- Scrum - กระบวนการจัดการการพัฒนาแบบ Agile ที่มีการทำงานเป็นรอบ ๆ (sprints)
- Sprint - ช่วงเวลาที่กำหนดไว้สำหรับการทำงานใน Scrum
- Stand-up - การประชุมสั้นๆ ประจำวันเพื่อรายงานสถานะงานในทีม
- Dependency - การใช้ Library หรือโมดูลอื่นในการทำงานของโปรแกรม
- Environment - สภาพแวดล้อมที่โปรแกรมทำงาน เช่น Development, Testing, Production
- Middleware - ซอฟต์แวร์ที่ทำงานอยู่ระหว่างการสื่อสารของโปรแกรมสองตัว เช่น Web Server กับ Application Server
- Repository (Repo) - ที่เก็บโค้ดหรือโปรเจกต์ที่แชร์ให้กับทีม
- Continuous Integration (CI) - กระบวนการอัตโนมัติในการทดสอบและรวมโค้ดที่ส่งเข้ามาใหม่กับโค้ดหลัก
- Continuous Deployment (CD) - การนำโปรแกรมเข้าสู่การใช้งานจริงอย่างต่อเนื่องโดยอัตโนมัติ
- Linting - การตรวจสอบความถูกต้องของโค้ดเพื่อหาจุดบกพร่องหรือปัญหาต่างๆ
- Unit Test - การทดสอบฟังก์ชันหรือโมดูลเล็กๆ ของโปรแกรมเพื่อให้แน่ใจว่าทำงานถูกต้อง
- Microservices - สถาปัตยกรรมการพัฒนาโปรแกรมที่แบ่งแอปพลิเคชันออกเป็นส่วนย่อย ๆ ที่ทำงานอิสระกัน
- Containerization - การบรรจุโปรแกรมและ dependency ทั้งหมดใน "คอนเทนเนอร์" (เช่น Docker) เพื่อให้สามารถรันได้ทุกที่
สรุป
คำศัพท์เหล่านี้ช่วยให้นักพัฒนาสื่อสารกันได้เข้าใจตรงกัน และทำงานร่วมกันได้อย่างมีประสิทธิภาพ โดยเฉพาะน้อง จบใหม่รู้ก่อนก็เป็นสิ่งที่ดีครับ