วันนี้วันที่ 30 ธันวาคม แถมเป็นวันศุกร์แห่งชาติอีกนะเทอว์ ซึ่งถ้าดูตามฮวงจุ้ยแล้ว วันนี้เป็นวันที่ไม่น่ามาทำงานมากที่สุด แต่ในเมื่อมาทำงานไปแล้วลองมานั่งมองตัวเองในปีที่จะผ่านไปนี้ก็ไม่เลวเหมือนกันแฮะ อย่างน้อยเราก็จะได้ประเมินได้ว่าสำหรับการประกอบอาชีพแล้ว เรามีอาวุธอยู่กี่ชิ้น และจะเอาอาวุธพวกนี้ไปใช้อะไรได้บ้าง ซึ่งถ้าจะให้พูดสิ่งที่เรียนรู้มาทั้งหมดในปีที่แล้ว เขียนยาวเป็นอาทิตย์แน่นอน ดังนั้น Entry นี้จะพูดในด้านที่เกี่ยวกับอาชีพ Software Engineer ในแง่ Technical แล้วก็เน้นเป็นตัว Tools หรือ Programming Language ที่เป็น Open Source ละกันนะจ๊ะ
1. JSF
ซึ่ง JSF ตัวที่เรียนรู้นี่ก็คือ RichFace ซึ่งเป็น JSF Framework ตัวนึงอ่ะนะ ส่วนตัวไม่ค่อยประทับใจเท่าไหร่เนื่องจากมีบางครั้งมันชอบ Render ผิด ถึงแม้ว่ามันจะสะดวกสบายในแง่การ Coding กว่าการใช้ JSP อยู่ไม่น้อยก็ตาม หากใครกำลังมองหา Tools ที่ช่วยในการจัดการในด้าน View ใน MVC หรือขี้เกียจมานั่งเขียน Tab, Menu หรืออะไรพวกนี้ ลองดูก็ไม่เสียหาย และผมเชื่อว่าคุ้มค่ากับที่ลงทุนเสียเวลาเรียนรู้แน่นอนฮะ ในแง่ของ Reference ของ RichFace ก็หาไม่ง่ายแล้วก็ไม่ยากทำให้การเรียนรู้ใช้เวลาไม่นานเท่าไหร่ ให้ 3 ดาวฮะ ♥ ♥ ♥
2. Pentaho
เมื่อก่อนก็ใช้แต่ Jasper ในการทำ Business Intelligent แต่พอมารู้จักกับ Pentaho แล้ว อะไรมันก็สบายขึ้นโขเลยฮะ ส่วนตัวแล้วค่อนข้างประทับใจกับ Tools ตัวนี้มาก เนื่องจากสามารถใช้สร้าง Report ได้แล้ว Data Transformation ยังเป็นอีก Function ที่ได้ใช้ประโยชน์อยู่บ่อยครั้ง และที่สำคัญการมี Tools นี้ยังเป็นการบอกใช้ว่าเราควร Transform Data ให้เรียบร้อยก่อนนะจ๊ะ ถึงจะดึง Report Data ได้อย่างมีประสิทธิภาพ 4 ดาวโลด ♥ ♥ ♥ ♥
3. Process Maker
โปรเจกนี้เกิดจากความขี้เกียจเขียน Work Flow Application เลยลอง Tools ที่ชื่อว่า Process Maker นี้ซึ่งมีดีกรีดังมาจากผู้ผลิต CRM Software เจ้าดังอย่าง SugarCRM เลยนะเออ แต่เนื่องจาก Reference หายากเหี้ยๆ เลยทำให้ Effort ที่ทุ่มเทลงไปไม่เต็มที่เท่าที่ควร บวกกับควาามขี้เกียจที่เกิดขึ้นกระทันหัน Project นี้ก็เลย Fail ไปตามระเบียบ แต่ก็ถือเป็นอีกหนึ่งเครื่องมือที่น่าสนใจมาก ถ้าคราวหน้ามีโอกาสก็อยากจะลองให้เป็นให้ได้จ่ะ ♥ ♥ ♥
4. Android
อันนี้แนะนำมากฮะ เนื่องจากกำลังเป็นกระแสของโลก และเชื่อว่าถ้าศึกษาไว้ ไม่อดตายแน่นอน โดยจากประสปการณ์ส่วนตัวก็ลองเล่นไปลึกพอสมควร แต่ไม่ถึงกับต้องเขียน Native นะ ก็พบปัญหาของตัว Android นี้อยู่จำนวนไม่เยอะเท่าไหร่ ที่เห็นจะเป็นเรื่องใหญ่ก็น่าจะเป็นเรื่อง Fragmentation นี่แหละ ส่วนเรื่องโครงสร้างของภาษาก็ไม่มีอะไรมาก Java + XML ซะส่วนใหญ่ ซึ่งหากลองวิเคราะห์แล้วก็ไม่ค่อยจะเหมาะกับการเอามาเขียนบน Smart Phone Devices เท่า Object-C เท่าไหร่ แต่ไม่เป็นไรเพราะ ข้อดีมันก็เยอะเช่นกัน หากใครพอจะมีเวลาแล้วอยากหาอะไรที่สนุกและท้าทาย ลอง Android ซะหน่อยก็ไม่เสียหายนะ 5 ดาวฮะ ♥ ♥ ♥ ♥ ♥
5. Grails
ตัวนี้มีโอกาสได้ลองช่วงท้ายปี เนื่องจากมีโปรเจกที่ต้องใช้พอดี ตอนแรกก็รู้สึกตื่นเต้นมว๊ากกกกก!! เนื่องจากรู้สึกเบื่อกับ Configuration Files ทั้งหลายแหล่ อีกทั้งตัวภาษา (Groovy) ที่ใช้ในการเขียนเนี่ย ยังไม่ค่อยจะชินเท่าไหร่ แต่ก็ถือเป็นภาษาที่น่าสนใจมาก อ้อ เกือบลืมข้อที่ประทับใจในตัว Grails ก็คือ แก้ Code ปุ๊ป Run ต่อได้เลย (อย่างเจ๋ง) พอกันทีกับการ Redeploy แล้วต้องมานั่งรอ อุโฮะ สำหรับตัวนี้ยังศึกษาได้ไม่ค่อยลึกเท่าไหร่ แต่ก็ถือเป็นการเริ่มต้นที่ดีคิดว่าปี 2012 นี้คงจะรู้อะไรมากขึ้น 4 ดาวโลด ♥ ♥ ♥ ♥
Showing posts with label convention over configuration. Show all posts
Showing posts with label convention over configuration. Show all posts
Thursday, December 29, 2011
Thursday, September 29, 2011
Grails คืออะไรหรา
สวัสดีทุกท่านอีกครั้งครับ เนื่องจากโลกปัจจุบันมีการเปลี่ยนแปลงอยู่ตลอดเวลา ซึ่งเราในฐานะผู้ที่ใช้บางส่วนของเทคโนโลยีนี้ในการประกอบอาชีพ ก็ควรจะต้องหาความรู้ใส่ตัวบ้างเพื่อเป็นการลับอาวุธของเราให้คมอยู่ตลอดเวลา
มาวันนี้ครับพ่อแม่พี่น้อง ผมขอนำเสนอ Grails ซึ่งสำหรับผม เคยได้ยินแต่ชื่อเสียงเรียงนาม ไม่เคยได้สัมผัสสักครั้ง (ฮ่าฮ่า) แต่หลังจากที่ลอง Hello World มานิดหน่อยก็จะมาขอแชร์ให้พ่อแม่พี่น้องได้อ่านกันนะครับ
ข้อดีของ Grails ที่สัมผัสได้
สำหรับบางคนการพัฒนา Web Application ซักตัวหนึ่งถือเป็นเรื่องค่อนข้างซับซ้อน แม้ว่า Project ที่เราต้องการจะพัฒนานั้นจะเป็นระบบที่ง่ายขนาดไหน ยกตัวอย่างเช่น
ซึ่งในการแสดงข้อมูลก็จะต้องทำหลายกระบวนการอีกเช่นกัน ซึ่งขั้นตอนเหล่านี้เกิดขึ้นซ้ำแล้วซ้ำเล่าอย่างหลีกเลี่ยงไม่ได้ (นี่ขนาดพูดถึงแค่ฝั่ง Server นะเนี่ย ยังไม่รวมถึง พวก AJAX หรือ RIA) โดยตลอดหลายปีที่ผ่านมาก็มี Framework มากมายหลายหลากผุดขึ้นมายังกะดอกเห็ด เพื่อช่วยให้เราลดขึ้นตอนที่ยุ่งยากในการพัฒนา Web Application ที่กล่าวมาข้างต้น แต่ก็ต้องแลกกับการมี Configuration Files เพิ่มขึ้นมาอยู่ใน Project เช่น Struts, Spring, Hibernate (เพราะนี่คือพื้นฐานของการสร้าง Framework) และแน่นอนไม่มี Framework ไหนจะสามารถตอบโจทย์ของนักพัฒนาทั้งน้อยใหญ่ได้ทั้งหมด บางงานอาจจะต้องใช้ Framework หลายตัวมาใช้งานร่วมกัน (Integrate) แต่การทำเช่นนั้นก็จะทำให้เกิด Configuration Files มากมาย ตัวอย่างนึงที่ดีในการทำให้เห็นภาพปัญหานี้ก็คือ สมมุติว่าเราจะเพิ่มหน้าจอหนึ่ง เราจำเป็นจะต้องเข้าไป Config ในไฟล์หลายตัว (อย่างน้อยก็ struts-config.xml) แล้วถ้าใน Project นี้ใช้ Hibernate ด้วยล่ะ (Config กระจาย)
จากปัญหาเหล่านี้ Grails ช่วยท่านได้ครับ ลองดูประโยชน์ของ Grails ดังนี้
1. ลดจำนวน Configuration Files
เอาละเว้ย แค่อันแรกก็โดนใจกระผมอย่างแรงครับ เนื่องจาก Grails ใช้แนวคิด Convention Based ทำให้ลดจำนวน Configuration ไปได้มากโข แม้หลายคนจะบอกว่า "เมิงก็ให้ IDE Generate ให้สิ เดี๋ยวนี้มีเป็น Wizard เลยนะเออ" แต่ความจริงแล้ว IDE มันก็แค่พรางปัญหาเหล่านี้ให้เท่านั้นแหละ เพราะความซับซ้อนของมันก็ยังคงเดิม
ซึ่งสำหรับ Grails แล้วมองว่าหากสร้าง Class นึงขึ้นมา (ตามแบบแผนนะ) Class อื่นที่เกี่ยวข้อจะถูก Generate ขึ้นมาโดยมีชื่อ File, Path ที่เป็นระบบขึ้นมาอัตโนมัติ (โอ้โห) ยกตัวอย่าง
หากเราสร้าง User.groovy ขึ้นมามันก็จะ Generated Configuration File (ซึ่งมีไม่กี่ FIles) แล้วก็ Controller ให้เองภายใต้ Package ที่เหมือนกันเป๊ะ (จอร์จมาก) แต่ทั้งนี้ทั้งนั้น หากไม่ชอบที่ Grails มัน Generate มาให้ก็สามารถเข้าไปเปลี่ยนแปลงได้ตลอดเวลา
2. ไม่ต้อง Redeployed แถมเขียนไม่กี่บรรทัดด้วยนะเออ
อันนี้ก็แจ่มแมวอีก Feature เนื่องจากการพัฒนาด้วย Java ในการ Run แต่ละครั้งอาจจะต้อง Redeploy และ Restart Server ซึ่งบางทีค่อนข้างเสียเวลา แต่เนื่องจาก Grails สามารถ Dynamic Language ได้ซึ่งจะทำให้เราพัฒนา Java ร่วมกับ Groovy ซึ่งมีลักษณะเป็นภาษา Script (ไม่ต้อง Redeploy) ได้ แถมข้อดีของ Groovy ยังมีอีกก็คือ เขียนนิดเดียว ได้ผลเท่า Java (นี่แหละที่เจ็บปวด T^T)
หลังจากการเล่นมาครึ่งวันเจอแค่นี้ คิดว่าอีกไม่นานก็คงจะเจออะไรมากมายที่เป็นประโยชน์ต่อการทำงาน เอาไว้มาแชร์ใหม่นะจ๊ะ ฟริ๊ววววววว!!
มาวันนี้ครับพ่อแม่พี่น้อง ผมขอนำเสนอ Grails ซึ่งสำหรับผม เคยได้ยินแต่ชื่อเสียงเรียงนาม ไม่เคยได้สัมผัสสักครั้ง (ฮ่าฮ่า) แต่หลังจากที่ลอง Hello World มานิดหน่อยก็จะมาขอแชร์ให้พ่อแม่พี่น้องได้อ่านกันนะครับ
ข้อดีของ Grails ที่สัมผัสได้
สำหรับบางคนการพัฒนา Web Application ซักตัวหนึ่งถือเป็นเรื่องค่อนข้างซับซ้อน แม้ว่า Project ที่เราต้องการจะพัฒนานั้นจะเป็นระบบที่ง่ายขนาดไหน ยกตัวอย่างเช่น
- รับ HTTPRequest
- แปลงเป็นชนิดข้อมูลไม่ว่าจะเป็น Object หรือ Primitive
- ตรวจสอบข้อมูลทั้งในเชิง Value Validation และ Type Validation
- ทำการบันทึกค่าลง Database
ซึ่งในการแสดงข้อมูลก็จะต้องทำหลายกระบวนการอีกเช่นกัน ซึ่งขั้นตอนเหล่านี้เกิดขึ้นซ้ำแล้วซ้ำเล่าอย่างหลีกเลี่ยงไม่ได้ (นี่ขนาดพูดถึงแค่ฝั่ง Server นะเนี่ย ยังไม่รวมถึง พวก AJAX หรือ RIA) โดยตลอดหลายปีที่ผ่านมาก็มี Framework มากมายหลายหลากผุดขึ้นมายังกะดอกเห็ด เพื่อช่วยให้เราลดขึ้นตอนที่ยุ่งยากในการพัฒนา Web Application ที่กล่าวมาข้างต้น แต่ก็ต้องแลกกับการมี Configuration Files เพิ่มขึ้นมาอยู่ใน Project เช่น Struts, Spring, Hibernate (เพราะนี่คือพื้นฐานของการสร้าง Framework) และแน่นอนไม่มี Framework ไหนจะสามารถตอบโจทย์ของนักพัฒนาทั้งน้อยใหญ่ได้ทั้งหมด บางงานอาจจะต้องใช้ Framework หลายตัวมาใช้งานร่วมกัน (Integrate) แต่การทำเช่นนั้นก็จะทำให้เกิด Configuration Files มากมาย ตัวอย่างนึงที่ดีในการทำให้เห็นภาพปัญหานี้ก็คือ สมมุติว่าเราจะเพิ่มหน้าจอหนึ่ง เราจำเป็นจะต้องเข้าไป Config ในไฟล์หลายตัว (อย่างน้อยก็ struts-config.xml) แล้วถ้าใน Project นี้ใช้ Hibernate ด้วยล่ะ (Config กระจาย)
จากปัญหาเหล่านี้ Grails ช่วยท่านได้ครับ ลองดูประโยชน์ของ Grails ดังนี้
1. ลดจำนวน Configuration Files
เอาละเว้ย แค่อันแรกก็โดนใจกระผมอย่างแรงครับ เนื่องจาก Grails ใช้แนวคิด Convention Based ทำให้ลดจำนวน Configuration ไปได้มากโข แม้หลายคนจะบอกว่า "เมิงก็ให้ IDE Generate ให้สิ เดี๋ยวนี้มีเป็น Wizard เลยนะเออ" แต่ความจริงแล้ว IDE มันก็แค่พรางปัญหาเหล่านี้ให้เท่านั้นแหละ เพราะความซับซ้อนของมันก็ยังคงเดิม
ซึ่งสำหรับ Grails แล้วมองว่าหากสร้าง Class นึงขึ้นมา (ตามแบบแผนนะ) Class อื่นที่เกี่ยวข้อจะถูก Generate ขึ้นมาโดยมีชื่อ File, Path ที่เป็นระบบขึ้นมาอัตโนมัติ (โอ้โห) ยกตัวอย่าง
หากเราสร้าง User.groovy ขึ้นมามันก็จะ Generated Configuration File (ซึ่งมีไม่กี่ FIles) แล้วก็ Controller ให้เองภายใต้ Package ที่เหมือนกันเป๊ะ (จอร์จมาก) แต่ทั้งนี้ทั้งนั้น หากไม่ชอบที่ Grails มัน Generate มาให้ก็สามารถเข้าไปเปลี่ยนแปลงได้ตลอดเวลา
2. ไม่ต้อง Redeployed แถมเขียนไม่กี่บรรทัดด้วยนะเออ
อันนี้ก็แจ่มแมวอีก Feature เนื่องจากการพัฒนาด้วย Java ในการ Run แต่ละครั้งอาจจะต้อง Redeploy และ Restart Server ซึ่งบางทีค่อนข้างเสียเวลา แต่เนื่องจาก Grails สามารถ Dynamic Language ได้ซึ่งจะทำให้เราพัฒนา Java ร่วมกับ Groovy ซึ่งมีลักษณะเป็นภาษา Script (ไม่ต้อง Redeploy) ได้ แถมข้อดีของ Groovy ยังมีอีกก็คือ เขียนนิดเดียว ได้ผลเท่า Java (นี่แหละที่เจ็บปวด T^T)
หลังจากการเล่นมาครึ่งวันเจอแค่นี้ คิดว่าอีกไม่นานก็คงจะเจออะไรมากมายที่เป็นประโยชน์ต่อการทำงาน เอาไว้มาแชร์ใหม่นะจ๊ะ ฟริ๊ววววววว!!
ป้ายกำกับ:
convention over configuration,
domain,
framework,
grails,
groovy,
java,
redeployed,
thanawut
Subscribe to:
Posts (Atom)