Patterns of Application Architecture [Review]

เรียกว่า Review ได้หรือเปล่าก็ไม่รู้
    เริ่มอ่านหนังสือเล่มนี้เมื่อ มกราคม 2556 ใช้เวลา 4 เดือนในการอ่านให้จ เป็นหนังสืออีกเล่มที่อ่านจบแล้วประทับใจมาก เข้าใจกระบวนการในการนำมาใช้งานจริงๆของการนำ Enterprise Architecture มาใช้งานจริงๆ ถือเป็นหนังสือเล่มหนึ่งที่โปรแกรมเมอร์ทุกควรอ่าน

     Patterns ที่อยู่ในนี้ถูกนำมาใช้งานอย่างแพร่หลาย ทั้ง Hibernate, Active Record, Entity Framework, Strut, Spring MVC และอีกมากมายนับไม่ถ้วน สำหรับคนหรือองค์กรที่ต้องการพัฒนาระบบขนาดใหญ่ หนังสือเล่มนี้ถือเป็นReferenceชั้นดีในการออกแบบArchitectureของระบบใหญ่ๆ แม้ว่าPatternsต่างๆจะถูกนำมาสร้างเป็นเครื่องมือต่างๆที่เราใช้กันอยู่ในปัจจุบันก็ตาม แต่การได้อ่านหนังสือเล่มนี้จะทำให้เราทราบถึงที่มาและวิธีการใช้งานของPatternsในแต่ละแบบได้ถูกต้องและเข้าใจมากขึ้น

     ทั้งสองส่วนของหนังสือจะถูกแบ่งไว้อย่างชัดเจนเพื่อให้ทำความเข้าใจได้ง่ายขึ้น ส่วนแรกเกริ่นนำ (The Narratives) เป็นการเล่าเรื่องราวและที่มาที่ไปของ Patterns ต่างๆรวมถึงวิธีการนำมาใช้งาน ส่วนที่สอง รายละเอียดของแต่ละ Patterns ตอนอ่านจริงๆผมอ่านใน iPad เลยกด Link ข้ามไปมาระหว่างส่วนแรกกับส่วนสองเพื่อให้ไม่งง ว่าPatternsที่ผู้เขียนกล่าวถึงคือ อะไร ทำงานอย่างไง และมีรายละเอียดอย่างไง

    เมื่อผู้เขียนจะตั้งใจบอกถึงลำดับในการสร้าง Enterprise Application Architecture ว่าต้องทำอย่างไรบ้างจึงได้ทำการเรียงลำดับของการอ่านมาอย่างดีโดยแบ่งได้ตาม Category ดังนี้
 
   Domain Logic Patterns คือ Patterns สำหรับรูปแบบการจัดการเกี่ยวกับ Business Logic ของ Application ซึ่งในกลุ่มนี้รวมถึง Service Layer ด้วย

    Data Source Architectural Patterns ป็นกระบวนการในการเชื่อมต่อกับ DataSource ประเภทต่าง ด้วยวิธีที่ใช้ได้กับ Domain Logic Patterns แบบต่างๆ

    Object-Relational Behavioral Patterns เป็น pattern ที่อธิบายถึงคุณลักษณะแบบพิเศษที่ใช้ในการเชื่อมต่อกับ DataSource ทั้ง Transaction Control, In memory mapping, Lazy Load

    Object-Relational Structural Patterns อธิบายถึงรูปแบบหรือโครงสร้างของการเก็บ Object ต่างๆใน Memory ลงใน DataSource อาทิ จะเก็บ Inherit Object ใน database ได้แบบไหนบ้าง หรือเก็บของมูลที่ไม่ได้ต้องการ Search ลง DataSource แบบ LOB

  Object-Relational Metada Mapping Patterns  ว่าด้วยเรื่องกระบวนการในการเปลี่ยนจาก RecordSet DataSet DataTable ให้กลายมาเป็น Object ใน Memory อาทิเช่น Metadata(น่าจะคล้ายๆของ Hibernate หรือ JPA)

    Web Presentation Patterns พูดถึงเรื่อง View และ Controller ล้วนๆ มีกี่แบบ แต่ละแบบมีกระบวนการคิดและทำงานอย่างไง

    Distribution Patterns ตามชื่อ ผมว่าหนังสือเล่มนี้พูดถึงเรื่องนี้ค่อนข้างน้อย อาจต้องไปอ่านใน Patterns of Enterprise Integration แทน

    Office Concurrency Patterns ใครว่า Transaction ต้องทำให้ Database อย่างเดียว ถ้าเป็นต่อกับพวก None-Transaction support เอา Patterns พวกนี้ไปช่วยได้

    Session State Patterns อันนี้ไม่ได้พูดถึงเรื่อง Transaction นะครับ เขาพูดถึงหรือการเก็บ Session Application ว่าเก็บที่ไหนอย่างไรได้บ้าง

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

ความคิดเห็น

Unknown กล่าวว่า
กำลังศึกษาเรื่อง การออกแบบโครงสร้างของระบบ เลยครับ ผมว่าอุตสาหกรรมซอฟร์ไทยยังไม่ได้เห็นความสำคัญเกียวการสถาปัตยกรรมซอฟแวร์เท่าไร ซึ่งในโลกนี้ผมเชื่อว่าบางอย่างก็ได้มีการออกแบบมาแล้ว และสามารถใช้งานได้เลย โดยที่ไม่ต้องไปนั่งหาแนวทางการแก้ไขปัญหานั้น ๆ ให้ปวดหัวอีก และระบบที่ดีก็ต้องมีการออกที่มึความยืดหยุ่น ความปลอดภัย ของข้อมูลเป็นสำคัญ ผมก็ขอบคุณหนังสือเล่มนี้มากครับ ที่ทำให้จุดประกายอะไรหลาย ๆ อย่างได้กระจ่างขึ้น

บทความที่ได้รับความนิยม