วิธีเขียน Angular เป็นทีม Commit บน Git เส้นเดียว

a0fzide
1 min readMay 23, 2017

--

หลังจาก Blog ที่แล้ว ที่ฮิโตะคาเงะได้ออกเดินทางไปกับผม โดย UX อย่างผมมาเริ่มเขียน Angular ง่อยๆ เลยอยากจะมาแชร์วิธีการทำงานเป็นทีมที่ผมและทีมได้ทำการลองทำ ซึ่งผลลัพธ์ออกมาค่อนข้างดี เผื่อว่าจะมีใครไปทำตามบ้าง ไม่หวงนะครับ เราจะไม่สู้กับโปเกมอนหัวหน้า(ยิม) ไปคนเดียว

ก่อนอื่น ผมตั้งโจทย์กับทีมว่า เราต้องทำยังไงก็ได้ โดยมีข้อกำหนดด้านล่างนี้

  1. ห้ามแตก Branch โดยเด็ดขาด
  2. ห้ามให้ git แตกไปเกินกว่า 3 เส้น ต้องอยู่ใน เส้นเดียวให้ได้
  3. commit แล้ว โค้ดห้ามหาย แม้มีทีมงานเพิ่มก็ตาม
  4. สามารถย้อนกลับมาที่ Production ล่าสุดได้เสมอ

หลังจากที่ต้องโจทย์แล้วก็ลองคิดหาวิธีว่า เราจะทำยังไงกันได้บ้าง

  1. เมื่อ Angular เป็น MVC เราจะสามารถแยก MVC ออกจากกันได้ไหม?
  2. ทีมต้องมีขึ้นต่ำ 3 คน
  3. แบ่งหน้าที่กันว่า ใครรับผิดชอบ M V หรือ C
  4. ต้องพูดคุยและทำความเข้าใจกันอยู่เสมอ ว่ากำลังแก้อะไรกันอยู่ ไม่ให้กระทบกัน
  5. Setup ครั้งแรกต้องแยกทุกอย่างออกจากกันให้หมด
  6. หมั่น fetch และ pull อยู่เสมอ ก่อนเขียนโปรแกรม และ commit ต้องคอยคุยกัน
ตัวอย่างผลลัพธ์ ของการทำ Git เส้นเดียว

สรุป จากการทดลองวิธีนี้หลายๆ โปรเจค

ข้อดี

  1. UX ได้โฟกัสที่ HTML CSS หน้าตาอย่างที่อยากจะได้ และตอบโจทย์
  2. C หรือ Logic จากการ Design เข้าใจตรงกัน เพราะ HTML สามารถกดเล่นและอธิบายได้ตั้งแต่แรก
  3. คนที่รับผิดชอบ M จะเป็นคนเดียวที่ไปคุยกับ API ทำให้การสื่อสารไม่ผิดพลาด
  4. UX อย่างผมได้โฟกัสเรื่องการตอบโจทย์การใช้งานได้และแสดงผลถูกต้องตรงตามที่ต้องการ
  5. รู้ข้อจำกัดของ Design ในเชิง Technical มากขึ้น
  6. ประหยัดเวลาในการทำงานมากขึ้น ทำให้มีเวลาไปทำการ research มากขึ้น
  7. ทีมทำงานกันสนุกมากสนานมากขึ้น และสามารถเสร็จตามเวลาได้
  8. Css ไม่ conflict กัน เพราะทำคนเดียว

ข้อเสีย ( ทุกอย่างไม่ได้ดีทั้งหมด เน๊อะ )

  1. การ Set up Project ครั้งแรกใช้เวลาค่อนข้างนานนิดหน่อย แต่สามารถทำ template starter ไว้ได้
  2. การเขียนโปรแกรมเราจะเก่งด้านเดียว เช่น ทำ View จะได้เชิง Design, ทำ Controller จะได้ Logic, ทำ Model จะได้ Api และการเชื่อมต่อจัดการต่างๆ
  3. หากหายไปคนใดคนหนึ่งก็ทำงานกันค่อนข้างลำบากและช้าลง

หมายเหตุ : วิธีนี้เป็นวิธีการใช้งานรูปแบบนึงของ Angular ( ฮิโตะคาเงะของผม ) หวังว่าจะเป็นประโยชน์กับผู้เริ่มต้น หรือ อยากเริ่มต้นเขียนโปรแกรม

แนะนำเพิ่มเติม : front-end ปัจจุบันเหมือนรวมกันแล้วหลายสกิล ไม่ว่าจะเป็น Design, Logic, API ทำให้บางครั้งเราถนัดในแง่มุมต่างๆไม่เหมือนกัน เช่น ทำ Design ได้เร็ว แต่ทำ Logic ได้ช้า เป็นต้น

ขอบคุณที่ติดตามครับ

Trainer a0fzide

--

--

a0fzide

Design from Experience [Hacking, Security, Forensic, Design, Art, Code, Psychology, Theory, Buddhism, Usability, Business, Fun, Creative, need, Paradigm, etc]