Sunday, September 2, 2007

สร้างระบบ ERP ด้วย Grails

นึกครึ้มมานานแล้วครับที่จะลองสร้างอะไรใหญ่ ๆ ด้วย Grails ดู

ได้แรงบันดาลใจมาจากโปรเจ็ค OFBiz ที่คุณ Sand ใน board narisa.com มาโพสต์เล่าไว้บ่อย ๆ รวมทั้งได้เวลาเหมาะเอาก็ตอน Grails จะเป็น 1.0 เพราะสนับสนุน feature หลาย ๆ อย่างที่จะใช้ทำระบบขนาดใหญ่ได้ เช่นวาง domain class ใน package ได้ มี REST และ remoting plugin เป็นต้น และแน่นอนว่าผมไม่ได้จะทำ Web Application นะครับ ผมจะสร้าง Enterprise Application

ก็เลยจะลองเขียน ERP ขึ้นมาใหม่จาก diagram ของโปรเจ็ค Neogia (ที่สร้างจาก OFBiz อีกที) โดยจะค่อย ๆ แกะจาก UML ไปเป็น Grails domain class ที่ละ class และด้วย scaffolding ของ Grails ทำให้อะไร ๆ ก็เริ่มได้ง่ายไปหมด
ผมแกะไปแล้ว 2-3 class การ map ทำได้ค่อนข้างตรงไปตรงมา

มีปัญหาก็ตรง class แบบ Enumeration ซึ่งก็ต้องดูกันต่อไปว่า Grails จะ support ในรูปแบบไหน ถ้าไม่ไหวจริง ๆ ก็คงต้อง patch เอาเอง แต่ไม่รีบร้อนละครับ Groovy optimiser ที่ทำอยู่สำคัญกว่า

จุดประสงค์ของโปรเจ็คนี้คือสร้าง ERP ที่สามารถเข้าใจได้ด้วยสมองคนเพียงคนเดียวครับ และให้สามารถ customise ได้ด้วยคนเพียงคนเดียวเช่นกัน ภาระทาง engineering ก็ยกไปให้ Grails ซะ ประมาณนั้นครับ

โปรเจ็คอยู่ที่ Google Code ครับ ชื่อ Geogia (แค่เปลี่ยน N ใน neogia เป็น G)
แค่ลง Grails 0.6, fetch ตัวโปรเจ็คจาก SVN แล้วก็เรียก "grails run-app" ก็จะพอลองเล่นได้ครับ

6 comments:

Dean said...

น่าสนุกนะพี่ เดี๋ยวผมลุ้นอยู่ห่างๆ หุหุ

chanwit said...

หุหุ ไม่ต้องห่วง ทำแบบลาก ๆ ถู ๆ ไปหน่ะ คงไม่เสร็จในเร็ววัน

OrangeGears Project said...

เอาใจช่วยครับ และก้เอาใจช่วยผมด้วย ส่วน OrangeGears ของผมก็คงอีกไกลเหมือนกันช่วงนี้ทำ R&D อยู่ครับและก็กำลังศึกษาระบบ Accounting ของไทยไปด้วย

OrangeGears Project said...

อ๋อลืมไป ที่จริง OFBiz ก้ใช้ Groovy เป็น scripting language ได้ครับเปลี่ยนจาก Beanshell เป็น Groovy ได้แต่ผมยังไม่เคยลองครับ

chanwit said...

อ่ะขอบคุณครับคุณ sand

ตอนแรกกะว่าจะแกะ OFBiz กับคุณ sand แล้วละครับ ไปเจอ xml config ของ rmi ที่คุณกับคุณ pok discuss กัน เลยคิดอีกรอบ เพราะ plugin ที่ผมและอีกคนเขียนให้ Grails แค่เปลี่ยน ['xfire'] เป็น ['rmi'] ตัว transportation layer ก็เปลี่ยนแล้วครับ

รวมทั้งเรื่อง license ด้วย แม้ว่า ofbiz จะเป็น Apache license แต่ผมไปเจอว่าตัวระบบ account ที่ทำเพิ่มเติมเป็น GPL ก็แปลว่าถ้าจะใช้กันจริง ๆ ก็ต้องเขียนกันใหม่อยู่ดีครับ

ผมเลยสรุปในเบื้องต้นว่าออกมาตั้งหลักกับ Grails ก่อนดีกว่า

ผมเอาใจช่วยแน่นอนครับ แล้วก็ยังต้องรบกวนขอแลกเปลี่ยนความรู้เรื่อย ๆ นะครับ เพราะทาง business ผมอ่อนด้อยมาก

up1 said...

น่าสนใจมากครับ

ส่วนผมก้ใช้เวลาว่างมานั่งศึกษา Grails อยู่ครับ ยังไม่คืบหน้าเท่าไร แต่ก้ยังพยายามอยู่ครับ