วันพุธ, มกราคม 14, 2552

Web Technology จากมุมมองของคนออกแบบโปรแกรม

มีเรื่องต้องตัดสินใจเลือกเทคโนโลยีที่จะเอาไว้ใช้ในบริษัท ต่อไปในอนาคต เลยลองวาดแผนภาพออกมาช่วยในการตัดสินใจ แต่ไหนๆ วาดแล้วเลยเอามาใส่ไว้ในนี้ด้วยเลย ในภาพจะเทียบเรื่อง Thin Client กับ Rich Client เป็นแกน โดยเอาเรื่อง Open กับ Proprietary มาประกอบ Thin Client สุดขั้ว - ต้องสามารถเปิดได้โดย web browser ทั่วไป - ใช้ HTTP สำหรับการ Request/Response - ความปลอดภัยเต็มร้อย เพราะแทบไม่ทำอะไรบนเครื่องผู้ใช้เลย - เปิดได้เร็ว ใช้ cpu น้อย ใช้ band width น้อยเหมาะกับเครื่องลูกกระจ๊อก - ให้ Server ประมวลผลแทน Rich Client สุดขั้ว - มีลักษณะเหมือนโปรแกรมที่ไม่ผ่าน web ผู้ใช้รู้สึกว่าเป็น Application มากกว่า Web - มีการประมวลผลที่ Client หรือใช้ Hardware บนเครื่อง Client ช่วย เช่น กล้อง หรือ Graphic card เป็นต้น - สามารถทำงาน offline ได้ ผมให้พื้นที่ของ AJAX และ DHTML ไว้ใหญ่มากๆ เพราะสองตัวนี้มีเทคโนโลยีที่เอามาเสริมได้มากเช่นตัว ExtJs เป็นต้น ถ้ารวบรวมแล้วคงต้องทำแผนภูมิเฉพาะของสองส่วนนี้ออกมาอีกที สำหรับฝั่ง Rich Client มีคนเข้ามาแข่งเป็นตัวๆ อย่างชัดเจน เพราะจะทำทีนึงต้องทำใหญ่ๆ ถ้าทำกะจุ๊กกะจิ๊กก็ไม่เป็น Rich Client ทางฝั่งนี้ผู้พัฒนาสบายหน่อยเพราะทุกเจ้าจะมีเครื่องมีอมาให้ครบ ทั้งตาราง ทั้งฟอร์ม แทบจะไม่ต้องเขียนเอง จะติดก็ตรงที่ความยากในการย้ายข้าง เมื่อเลือกตัวใดแล้วจะเปลี่ยนเป็นอีกตัวก็เสียดายเวลา สำหรับเรื่อง ความเปิดเผย ผมแยกแบบนี้ครับ Open สุดขั้ว - สร้างโดยมีมาตรฐานเปิด - สามารถเข้าถึง API หรือ Code ภายในได้ - เปิด Code ดูได้ มนุษย์อ่านออก Proprietary สุดขั้ว - ไม่เปิดมาตรฐานในการพัฒนาให้คนทั่วไป - ไม่เปิด Code หรือเข้าถึงได้แค่ API - Code ที่ส่งให้ User คนทั่วไปไม่สามารถอ่านได้ ผมให้ Java อยู่สูงกว่าตัวอื่นเพราะ sun เอา java open source เลยถือว่าเปิดมากกว่าคนอื่นเขา หลังจากนี้ต้องลองเทียบดูว่าผู้ใช้ของเรามีข้อจำกัดอะไร และโปรแกรมที่เรากำลังจะพัฒนาต้องทำอะไรได้บ้าง แล้วลองให้คะแนนแต่ละ technology ดู
blog comments powered by Disqus