วันนี้ผมจะพามาดูคำศัพท์เฉพาะทางของ นักพัฒนาซอฟต์แวร์ ที่ใช้ในสื่อสารกับ เพื่อนรวมทีมกัน และที่ใช้กันในชีวิตประจำวัน เดียวจะทยอยมา update คำศัพท์ให้เรื่อยๆนะครับ
นี่คือคำศัพท์ที่นักพัฒนาชอบพูดกันบ่อย ๆ
- Conflict - โค้ดที่เกิด "ความขัดแย้ง" (conflict) ระหว่างไฟล์หรือโค้ดที่ถูกแก้ไขใน branch ต่าง ๆ เช่น merge branch หนึ่งเข้ากับอีก branch หนึ่ง และมีการเปลี่ยนแปลงในส่วนของไฟล์เดียวกันใน branch ทั้งสอง
- Consume(คนซื้อ) - การดึงข้อมูลหรือใช้บริการจากแหล่งอื่น คล้ายกับการที่ระบบของเราเป็นผู้รับข้อมูลที่ส่งมาจากบริการอื่น เช่น การดึงข้อมูลจาก API ของ third-party
- Produce(คนขาย) - หมายถึงการสร้างหรือส่งข้อมูลจากระบบของเราไปยังระบบอื่น ซึ่งระบบของเราจะทำหน้าที่เป็นผู้ส่งข้อมูล เช่น การส่งข้อมูลจาก backend ไปยัง API อื่น ๆ หรือส่งข้อมูลจาก frontend ไปยัง backend
- 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) เพื่อให้สามารถรันได้ทุกที่
- Definition - การบอกว่าระบบทำอะไร
- Use Case - การบอกว่าผู้ใช้ทำอะไรในระบบ
- Condition - เงื่อนไข
- Result - ผลลัพธ์
- Business Logic - ตรรกะธุรกิจ
- FE - Frontend
- BE - Backend
- Resolved - แก้ไขแล้ว
- IB
- SS
- TS
- UX
- HR
สรุป
คำศัพท์เหล่านี้ช่วยให้นักพัฒนาสื่อสารกันได้เข้าใจตรงกัน และทำงานร่วมกันได้อย่างมีประสิทธิภาพ โดยเฉพาะน้อง จบใหม่รู้ก่อนก็เป็นสิ่งที่ดีครับ