ที่ผ่านมาเรายังไม่ได้พูดถึงโลกของส่วนติดต่อผู้ใช้ (user interface) เลย พวกคุณบางคนอาจแค่ให้บริการ API ที่เย็นชาและตรงไปตรงมากับลูกค้า แต่พวกเราหลายคนก็อยากสร้างส่วนติดต่อผู้ใช้ที่สวยงามและใช้งานได้จริง จนทำให้ลูกค้าประทับใจ ท้ายที่สุดแล้ว ส่วนติดต่อผู้ใช้คือจุดที่เราจะนำไมโครเซอร์วิสทั้งหมดมาประกอบรวมกันให้กลายเป็นสิ่งที่ลูกค้าของเราเข้าใจได้

ตอนที่ผมเริ่มทำงานด้านคอมพิวเตอร์ใหม่ๆ เราพูดถึงแอปพลิเคชันแบบ fat client ที่รันอยู่บนเดสก์ท็อปของเราเป็นส่วนใหญ่ ผมใช้เวลาหลายชั่วโมงกับ Motif แล้วก็ Swing เพื่อพยายามทำให้ซอฟต์แวร์ของผมใช้งานง่ายที่สุดเท่าที่จะทำได้ ระบบเหล่านี้ส่วนใหญ่มักใช้สำหรับสร้างและจัดการไฟล์บนเครื่อง แต่หลายระบบก็มีส่วนประกอบฝั่งเซิร์ฟเวอร์ด้วย งานแรกของผมที่ Thoughtworks คือการสร้างระบบขายหน้าร้าน (point-of-sale) แบบอิเล็กทรอนิกส์ด้วย Swing ซึ่งเป็นเพียงส่วนหนึ่งของระบบขนาดใหญ่ที่ส่วนใหญ่ทำงานอยู่ฝั่งเซิร์ฟเวอร์

จากนั้นเว็บก็เข้ามา เราเริ่มมอง UI ของเราเป็นแบบ "thin" คือมี logic อยู่ฝั่งเซิร์ฟเวอร์มากขึ้น ในช่วงแรก โปรแกรมฝั่งเซิร์ฟเวอร์ของเราจะ render หน้าทั้งหมดแล้วส่งไปให้เบราว์เซอร์ฝั่งไคลเอนต์ ซึ่งแทบไม่ต้องทำอะไรเลย การโต้ตอบใดๆ จะถูกจัดการฝั่งเซิร์ฟเวอร์ผ่าน GET และ POST ที่เกิดจากผู้ใช้คลิกลิงก์หรือกรอกฟอร์ม เมื่อเวลาผ่านไป JavaScript ก็กลายเป็นตัวเลือกที่ได้รับความนิยมมากขึ้นในการเพิ่มพฤติกรรมแบบ dynamic ให้กับ UI บนเบราว์เซอร์ จนบางแอปพลิเคชันอาจ "fat" พอๆ กับเดสก์ท็อปไคลเอนต์รุ่นเก่าเลยด้วยซ้ำ ต่อมาเราก็เห็นการเติบโตของแอปพลิเคชันมือถือ และทุกวันนี้เรามีภูมิทัศน์ที่หลากหลายสำหรับการนำเสนอส่วนติดต่อผู้ใช้แบบกราฟิกให้กับผู้ใช้ของเรา ไม่ว่าจะเป็นแพลตฟอร์มที่แตกต่างกัน หรือเทคโนโลยีที่แตกต่างกันสำหรับแพลตฟอร์มเหล่านั้น ความหลากหลายของเทคโนโลยีนี้ทำให้เรามีตัวเลือกมากมายในการสร้างส่วนติดต่อผู้ใช้ที่มีประสิทธิภาพโดยอิงกับไมโครเซอร์วิส เราจะมาสำรวจเรื่องนี้และอื่นๆ อีกมากมายในบทนี้