Posted
January 06, 2009
at
Spring66
เอกสารนี้เขียนไว้ที่ thaidev.org ครับเมื่อประมาณสี่ปีที่แล้วเป็นจุดเริ่มต้นที่ผมเริ่มศึกษาสปริง เนื่องจากทุก IOC คือแก่นของสปริงดังนั้นใครจะใช้สปริงไม่รู้เรื่อง IOC เนี่ยโคตรบาป ขอเอามาแปะในนี้ต่อนะครับ Inversion of control or Dependency Injection เอกสารนี้มีต้นตอมาจาก http://martinfowler.com/articles/injection.html ครับ เนื่องจากปัจจุบันมีการกล่าวขวัญถึง Lightweight Container กันมากขึ้นในกลุ่มผู้ใช้จาวาและมีการสร้าง container แบบนี้หลายโปรเจคแต่จริงๆแล้วโปรเจคเหล่านี้ได้ทำตามแนวคิดของ Design Pattern ที่ชื่อ Dependency Injection หรือ Inversion of Control แนวคิดต่างๆนี้พรั่งพรูออกมาในกลุ่มคนชอบเปิดเผย (Open Source) เพื่อที่จะหาทางเลือกอะไรสักอย่างที่สามารถเข้ามาแทนผลิตภัณฑ์หลักที่แสนจะซับซ้อนของ J2EE แนวคิดหลักๆคือจะรวมเอาองค์ประกอบหลักๆของการทำเวบที่ต่างกันเข้าด้วยกันได้อย่างไรยกตัวอย่างเช่นจะรวมเอาเวบคอมโปเนนท์ กับเดต้าเบสคอมโปเนนท์ที่ทำมาจากเทคโนโลยีที่ต่างกันเข้าได้อย่างไร บางโปรเจคไม่สามารถแก้ไขปัญหานี้ได้แต่ในทางกลับกันบางโปรเจคสามารถแก้ไขปัญหานี้ได้ด้วยความสามารถในการรวมคอมโปเนนท์ต่างๆเข้าด้วยกันเป็นชั้นๆไปเช่น PicoContainer หรือ Spring Component และ Service ก่อนที่จะเข้าสู่เรื่องของ Inversion Of Control จะขอทำความเข้าใจความแตกต่างระหว่าง Component และ Service ในมุมมองของ Martin Fowler เสียก่อน จริงๆแล้วทั้งสองอย่างเหมือนกันตรงที่ต่างเป็นก้อนของซอฟท์แวร์ที่ทำหน้าที่ใดหน้าที่หนึ่งโดยเฉพาะและไม่สามารถหรือยากที่จะเปลี่ยนแปลง แต่สิ่งที่ทำให้สองสิ่งแตกต่างกันคือ [...]
Posted
January 07, 2009
at
Spring66
ColdSpring ก็ได้แรงบัลดาลใจมาจาก Spring นั่นเองครับ วิธีการใช้ก็แถบเรียกได้ว่าลอกมาเช่นกัน คือใช้ xml ในการ config bean เดี๋ยวผมจะเอาตัวอย่าง MovieLister ใน post นี้ Inversion Of Control และ Dependency Injection มาเขียนในแบบ coldfusion ใน coldfusion ถ้าเราจะเขียนในลักษณะ oop คือมีการสร้างคลาส มีการสร้าง object นั้น จะสร้างได้โดยไปเขียน coldfusion component ซึ่งก็ concept เดียวกันกับ class นั่นเองครับ คือมี properties มี method (หรือ function) ประกาศไว้ ให้เราไป createObject ขึ้นมาเรียกใช้งานได้ ตัวอย่าง component MovieLister (MovieLister.cfc) [...]
Posted
January 07, 2009
at
Spring66
เพิ่งอ่านข่าวนี้จาก TheServerSide ครับ ต๊กก่ะใจเคยฮ่ะว่ามีคนเอาแนวคิดเรื่อง IOC หรือ DI ไปยัดใส่ ColdFusion ตัวผมเองไม่มีความรู้เรื่อง ColdFusion นะครับแต่ที่สำคัญคือขณะนี้แคินวคิดเดรื่อง IOC ได้รุกคืบไปทุกสารทิศแล้ว รายละเอียดของเฟรมเวิร์คนี้สามารถอ่านได้ที่ ColdSpringFramework.org