Thursday, 12 July 2007

JSF คืออะไร? ทำไมต้อง JSF

ถ้าคุณจำเป็นต้องตัดสินใจเลือกว่าจะใช้กรรมวิธีใดในการพัฒนา Web Base Application ขึ้นมาในปัจจุบัน
คุณจะเลือกอะไรดี ระหว่าง 2 กรรมวิธี ที่กำลังเป็นที่นิยมอยู่ คือ

1. พัฒนาแบบเร่งด่วน (Rapid development)
เป็นการใช้เครื่องมือในการพัฒนาที่เห็นภาพ (Visual Development) มาใช้ในการสร้างระบบ ตัวอย่างของกรรมวิธีแบบนี้ ที่นิยมก็คือการพัฒนาของค่าย Microsoft เช่น ASP.NET เป็นต้น

2. เน้นเขียนโค้ดเองเป็นหลัก (Hard core coding)
คือการที่เราเป็นคนเขียนโค้ดเองซะเป็นส่วนใหญ่ เพื่อที่จะได้สามารถควบคุมและจัดการ environment เกือบทั้งหมด สิ่งที่จะได้มาก็คือประสิทธิภาพที่ดียิ่งขึ้นของระบบนั้น ๆ เช่น การเชื่อมต่อกับฐานข้อมูล, การทำ Connection Pool เป็นต้น ลักษณะของกรรมวิธีแบบนี้ที่เราคุ้นเคย ก็คือ Java EE (Java Enterprise Edition) นั่นเอง

ทั้งสองอย่างที่กล่าวมาต่างก็มีข้อดี ข้อเสียอยู่ในตัว
ถ้าเราเลือก Java EE, นักพัฒนาก็จะต้องคอยควบคุมทุก ๆ อย่างเอง
และบางครั้งก็เป็นเรื่องหน้าเบื่อ ที่ต้องมาเขียนโค้ดขึ้นกับมือเองทั้งหมด

แต่ถ้าเราเลือกที่จะใช้ ASP.Net ล่ะ?
ข้อดีที่จะได้ก็คือ เราจะสามารถออกแบบและพัฒนาระบบได้ง่ายขึ้นมาก
แต่ข้อเสียก็คือ เราจะควบคุม Environment ต่าง ๆ ได้ยากขึ้น
เพราะเครื่องมือนั้น ๆ ไม่ได้เปิดช่องทางเอาไว้ให้เรามากพอ

จากที่ได้กล่าวมา, Sun Microsystem จึงได้ออก Framework ที่ชื่อ JSF, Java ServerFace ขึ้นมา
เพื่อที่จะประสานข้อดีของรูปแบบการพัฒนา Web Application ทั้งสองอย่างเข้ามาไว้ด้วยกัน

โดยนักพัฒนาที่คุ้นเคยกับการเขียนโปรแกรมฝั่ง Client, เช่น Swing, AWT, หรือ SWT ของ IBM
ก็จะมองว่าการพัฒนาด้วย JSF นั้น ก็มีรูปแบบที่คล้างคลึงกัน

แต่ถ้าหากนักพัฒนามีความชำนาญ JSF มากขึ้น
ก็จะพบว่า JSF นั้นยืดหยุ่นกว่าที่คิด เพราะว่า JSF ได้เปิดช่องให้เราสามารถเข้าไปออกแบบ JSF Tag ขึ้นมาใช้งานเองได้อีกด้วย จะทำให้เราสามารถประยุกต์มาใช้งานได้มีประสิทธิภาพยิ่ง ๆ ขึ้น

และยิ่งไปกว่านั้นคนที่คุ้นเคยกับ Servlet กับ JSP มาก่อน
ก็สามารถมองได้ว่า Servlet กับ JSP เปรียบเสมือนเป็น Assembly Language
ที่อยู่เบื้องหลังของ Framework JSF นั่นเอง

7 comments:

Anonymous said...

แปลหนังสือมาเขียน

kim said...

ขอบคุณสำหรับ comment ครับ

Dominixz.com said...

ผมชอบประโยคหลังมากเลย JSP คือ Assembly ของ JSF

แบบนี้ JSF ก็ใช้งานต่างๆได้ง่ายกว่า JSP ถูกต้องไหมครับ ??

สำหรับนักพัฒนาเด็กๆแบบผม PHP แบบ MVC ก็ว่ายากละถ้าไป Java สงสัยเละ (เพราะต้องเรียนใหม่หมดเลยผมพยายามชี้ทางอย่างเก่งเป็นด้านเพราะรู้สึกว่า ใน 1 ภาษานี้ศึกษาเยอะถึงเยอะมาก ไหนจะมี Framework ให้เล่นอีกละเนี้ย ToT)

แต่ที่ผมถนัดสุดกลับกลายเป็น XHTML + Javascript ผมส่วนใหญ่เน้น Quick & Dirty มากกว่าเพราะ Project ผมเล็กน้อยมากๆถ้าเทียบกับ Program ทั่วไปอยากจบไปลองทำงานเร็วๆจัง

tofu said...

เข้าใจถูกแล้วครับคุณ dominixz

~inSiderboy said...

หากผมทำ Structs แล้ว integrateไปรวมก่ะ JSF ได้ไหมครับ.

Mr. Invert prahs said...

คุณ ~inSiderboy ครับการนำ Structs แล้ว integrateไปรวมกับ JSF ทำได้ครับแต่ว่าเราต้องโหลด struts-faces api เข้าติดตั้งก่อนที่ web http://struts.apache.org/1.x/struts-faces/index.html แล้วจึงติดตั้งลงไปหลังจากนั้นก็ลองเข้าไปดูใน http://www.oracle.com/technology/pub/articles/masterj2ee/j2ee_wk8.html ซึ่งจะมีตัวอย่างการเขียน struts กับ jsf integrate กันอยู่ครับแต่ tool ที่เค้าใช้ในการเขียนนั้นเป็น Jdeveloper ครับซึ่งตัวนี้โหลดมาใช้เล่นได้ฟรีที่ otn.oracle.com ครับ

motorcycles said...

มีประโยชน์มากครับ
น่าจะทำเป็น Tutorial แต่ละหัวข้อเลย