Copyright © 2003-2009
By Suthep Sangvirotjanaphat
  Mobile: 089-967-2200, 081-915-7816
Phone: 0-2992-4877   Fax: 0-2992-4878
Fast Contact Us

GreatFriends.Biz Community

Custom Search
 MESSAGE #117737 (อ่าน 1,148 ครั้ง)

การพัฒนาซอฟต์แวร์ด้วย Software Factory Toolkits ตอนที่ 8: แนะนำตัว Web Client Software Factory

Tags: Web, C#, .NET 3.5, VS 2008, OOAD/UML, Article

 หลังจากผ่านไปเจ็ดตอน ก็มาถึงกำหนดคลอดเจ้า Web Client Software Factory มาแล้วครับซึ่งเป็นการรวบรวมวิทยายุทธ ในเรื่องต่างๆ มาผสมผสามเข้าด้วยกัน ผ่านทาง Standard Pattern โดยใช้ Object Builder ที่เป็น Core ของ Enterprise Library Block มาใช้เป็นกลไกพื้นฐานเพื่อทำ Dependency Injection อ็อบเจ็กต์ ออกมาในระหว่างรันโปรแกรม (Run Time นะครับ ไม่ใช่ Compile time) ซึ่งตอนนี้ถือว่าเป็นวิทยายุทธสุดยากตัวหนึ่งในขณะนี้ (แต่ต่อไปอาจเป็นเรื่องธรรมดา ใครไม่รู้ก็จะ เชย...) สำหรับ Dependency Injection นั้นเป็นการอิมพลีเม้นต์ Inversion of Control (IoC) แต่รายละเอียดของมันเป็นอย่างไรติดตามกันต่อไปนะครับ ก็ต่อไปก็ขอแนะตำตัว Web Client Software Factory เป็นทางการเสียที

 

แนะนำตัว Web Client Software Factory

หลังจากที่เราได้แนะนำเจ้า Smart Client Software Factory กันมาพอหอมปากหอมคอแล้ว เราก็คงได้คงเห็นรูปร่างหน้าจอของมันพอสมควร ซึ่งมันจะมีความเท่และคลาสสิกพอตัว (ไม่ใช่เก่านะครับ) ส่วนเจ้า Web Client Software Factory นี่ก็คลอดตามเจ้า Smart Client Software Factory มาติด ๆ ก็ไม่กี่เดือน บังเอิญผมไม่ได้จำวันเกิดและเวลาตกฝากไว้ด้วยครับ ก็ต้องขออภัยจริง ๆ ถ้าเปรียบ Smart Client Software Factory เหมือนชายมีความดุดันพอสมควร สำหรับ Web Client Software Factory ก็เหมือนสาว มีความอ่อนหวานปนห้าว ๆ บ้างบางครั้ง แต่ความสวยไม่เบาเลยนะครับ เป็นอย่างไรแค่เกริ่นก็เริ่มสนใจหรือยังครับ

 

สภาพแวดล้อมการทำงานของ Web Client Software Factory

ก็มาเริ่มกันครับ เอ… ในรูปถัดไปนี้คุ้นหน้าคุ้นตาหรือเปล่าครับ ถ้าใครผ่านเจ้า Smart Client Software Factory ก็คงต้องคุ้นหน้าคุ้นตากันบ้างละครับ สำหรับภาพดังในรูปที่ 3 นี้เป็นเฟรมเวิร์ค ผู้ที่เป็น Architect ก็จะใช้ Web Client Software Factory สร้างโครงสร้างสถาปัตยกรรมพื้นฐาน (Baseline Architecture) สำหรับให้นักพัฒนาใช้งาน ซึ่งนักพัฒนาก็จะนำโครงสร้างพื้นฐานหรือเฟรมเวิร์คดังกล่าวนี้ไปสร้างเว็บแอพพลิเคชันตามลักษณะงานของตนเอง

 

รูปที่ 1: สภาพแวดล้อมของ Web Client Software Factory

 

จากรูปนี้จะเห็นว่าโรงงานซอฟต์แวร์นั้น จะมี Patterns & Practices ของ Web Client Software Factory ซึ่งจะมีคำแนะนำที่ใช้ช่วยพัฒนางานอยู่หลายๆ ส่วนด้วยกันคือ

1.  รูปแบบการพัฒนางานมาตรฐานและคำแนะนำเชิงปฏิบัติ (Recommendation practices and proven patterns)

2.  ตัวอย่างโค้ดที่ใช้งานจริง  (Code Guidance)

3.  คำแนะนำทางด้านสถาปัตยกรรมซอฟต์แวร์ (Architecture Guidance)

4.  ส่วนที่ช่วยสร้างโค้ดโดยอัตโนมัติ (Automation)

 ซึ่งทีมพัฒนาก็สามารถใช้ส่วนช่วยงานและคำแนะนำต่างๆ ดังกล่าวไปพัฒนาโครงสร้างพื้นฐานซึ่งในรูปนี้ก็จะเป็น Global Bank Client Baseline หรือโครงสร้างพื้นฐานของระบบ สำหรับให้นักพัฒนานำไปใช้พัฒนาแอพพลิเคชันของตนเองต่อไป

 

สำหรับส่วนที่อยู่ทางขวามือนั้นก็จะเป็นแอพพลิเคชัน Retail e-Banking และ Mortgage System ซึ่งทั้งสองระบบจะใช้โครงสร้างพื้นฐานของ Global Bank Web Client Baseline ร่วมกัน ซึ่งจะเห็นได้จากมีลูกศรวกกลับมาที่ตรงกลาง ซึ่งก็หมายถึงส่วนต่างๆ ที่เราสร้างขึ้นมา และสามารถนำกลับมาปรับปรุง เพิ่มเติม และแก้ไขได้โดยไม่กระทบกับการพัฒนาแอพพลิเคชัน (ถ้าเราออกแบบดีแล้วนะครับ ตรงนี้ก็จะเป็นประสบการณ์รวมกับ Guidance ที่เขาให้มา) เป็นอย่างไรบ้างครับมาถึงตรงนี้เห็นหรือยังว่าเราสามารถพัฒนาเฟรมเวิร์คอย่างมืออาชีพได้โดยไม่ต้องพึ่ง Architects จากเมืองนอก เราจะอาศัย Guidance ของ Web Client Software Factory เป็นเครื่องนำทาง ซึ่งต่อไปนี้เราจะศึกษา Guidance ดังกล่าวในแบบเจาะลึกนั่นเอง

สำหรับสิ่งที่ให้มาพร้อมกับ Patterns & Practices ของ Web Client Software Factory นั้นสามารถแสดงให้เห็นดังในรูปที่ 4 ดังนี้

 

 

รูปที่ 2: Web Client Software Factory Asset

 

จากรูปที่ 2 นี้เป็นสิ่งที่ให้มาพร้อมกับ Web Client Software Factory ซึ่งจะประกอบด้วยชุดเครื่องมือต่างๆ และเปรียบเสมือนกับเป็น “สินทรัพย์ชิ้นส่วนซอฟต์แวร์ (Software Assets)” ที่ได้ถูกออกแบบมาเพื่อพัฒนาเว็บแอพพลิเคชัน ดังนั้นสินทรัพย์ชิ้นส่วนซอฟต์แวร์ตรงนี้ สามารถพูดได้เต็มปากเต็มคอว่ามันมีมูลค่า เนื่องจากมีการยอมรับในกลุ่มนักพัฒนาทั่วโลก และถูกพัฒนามาจากรูปแบบมาตรฐานที่ได้รับการยอมรับ สำหรับชุดของสินทรัพย์ชิ้นส่วนซอฟต์แวร์ดังกล่าวจะมีดังนี้คือ

 

  • Application Block & Library เป็นมาตราฐานการพัฒนาแอพพลิเคชันในด้านต่างๆ ซึ่งจะเรียกว่า Application Block ซึ่งมันจะมาพร้อมกับไฟล์ไลบรารี และซอร์สโค้ด ซึ่งเราสามารถนำไปใช้งานได้เลยโดยเข้าไปศึกษาวิธีการใช้งานของไลบรารีดังกล่าวได้  ซึ่งใน Web Client Application Block นั้นจะมี Composite Application Block ที่จะเป็นมาตรฐานการพัฒนาหน้าจอเว็บแอพพลิเคชันให้สามารถแบ่งออกเป็นส่วนๆ และสามารถนำมาประกอบให้เป็นหน้าจอสำเร็จได้ และใช้ ObjectContainerDataSourceControl ซึ่งเป็นคอนโทรลที่มีคุณสมบัติเป็นที่เก็บรวบรวมอ็อบเจ็กต์ต่างๆ ซึ่งถูกสร้างขึ้นมาเป็นพิเศษใน Software Factory ชุดนี้เพื่อให้สามารถทำงานร่วมกับรูปแบบของ Model-View-Presenter (MVP) ได้อย่างมีประสิทธิภาพมากขึ้น นอกจากนั้นก็ยังมี Application Block ที่มาจาก Enterprise Library เช่น Exception Handling Application Block ที่ใช้ตรวจจับความผิดพลาดของโปรแกรม หรือ Logging Application Block ที่ใช้สำหรับจัดการกับการบันทึกข้อมูลลงล็อกไฟล์เป็นต้น
  • Designer ซึ่งถือว่าเป็นเครื่องมือต่าง ๆ ที่ให้มาพร้อมกับ Software Factory ซึ่งช่วยในการออกแบบและ Deploy ระบบงาน
  • Patters นั้นก็เป็นรูปแบบมาตรฐานในการพัฒนาระบบงานต่างๆ เช่น Application Controller, Model-View-Presenter, Service Locator เป็นต้น

·        

  • QuickStart & HowTo’s เป็นตัวอย่างเล็กๆ ในเรื่องต่างๆ เช่นในเรื่อง Modularity หรือ Model-View-Presenter เพื่อใช้เป็นตัวอย่างการเขียนโปรแกรมในเรื่องนั้นๆ รวมถึงรายละเอียดขั้นตอนการปฎิบัติในเรื่องต่าง ๆ (How-to topics) ซึ่งจะบอกขั้นตอนการทำงานอย่างละเอียดเป็นขั้นเป็นตอนเพื่อใช้ในการพัฒนาแอพพลิเคชันให้เป็นตามข้อแนะนำเชิงปฎิบัติที่ได้วางไว้

 

  • Architecture Documentation เป็นคำแนะนำทางด้านสถาปัตยกรรมซอฟต์แวร์ ซึ่งทาง Software Factory สร้างมาให้เพื่อเป็นข้อแนะนำ อธิบายวิธีการออกแบบแอพพลิเคชัน เพื่อช่วยให้มีความเข้าใจการออกแบบสถาปัตยกรรมซอฟต์แวร์ให้เป็นมาตรฐาน

 

  • Visual Studio Template & Recipe เป็นข้อแนะนำการพัฒนา (Guidance) และชุดคำสั่งอัตโนมัติ (Recipe) ซึ่งก็เหมือนกับโปรแกรม Smart Client Software Factory เพราะว่าใช้ Guidance Automation Toolkits ตัวเดียวกัน และชุดคำสั่งอัตโนมัติดังกล่าวนั้นก็มีอยู่หลายตัวด้วยกัน ซึ่งแต่ละตัวจะเรียกว่า Recipe นั้นจะถูกสร้างจากเทมเพลต (Template) ต่างๆ ที่เราเตรียมไว้และเอ็กซีคิวต์คำสั่งอัตโนมัติ ซึ่งจะทำตามขั้นตอนของ How-to topics นั่นเอง นั่นก็คือเอา How-to topic มาทำตามขั้นตอนโดยอัตโนมัติ ซึ่งชุดคำสั่งอัตโนมัตินั้นจะทำงานได้รวดเร็วมากและไม่เกิดข้อผิดพลาดเพราะผ่านการตรวจสอบความถูกต้องแล้วถึงจะประกาศใช้งาน สำหรับเทมเพลตนั้นก็เหมือนกับการเตรียมเสื้อผ้าสำเร็จรูปเอาไว้ และสามารถที่จะนำมาตัดต่อและปรับแต่งแก้ไขเล็กน้อยก็นำไปใช้งานได้เลย

 

  • Reference Implementation นั้นเป็นตัวอย่างแอพพลิเคชันจริงที่ใช้สำหรับอ้างอิงที่มาพร้อมกับ Software Factory  เป็นตัวอย่างของธนาคารที่เรียกว่า Global Bank มีระบบ e-Banking และ Order Management ซึ่งเป็นตัวอย่างที่ใช้งานจริงที่ถูกสร้างโดย Software Factory ซึ่งตัวอย่างนี้จะถูกนำมาทำเป็น Workshop ให้พวกเราได้ทำกันครับ

 

นอกจากนั้นก็ยังมีเอกสารที่เป็น แนวคิดทางเทคนิค (Technical Concept) จัดได้ว่าเป็นที่มาที่ไปของการสร้างคำแนะนำมาตรฐานดังกล่าว โดยอิงอยู่บนความรู้ทางวิชาการด้านการพัฒนาสถาปัตยกรรมซอฟต์แวร์ ซึ่งก็จะมีเรื่องการออกแบบระบบงานให้เป็นโมดูล (Modularity) การตรวจสอบข้อมูลให้ถูกต้อง (Validation) วิธีการค้นหาข้อมูล (Search) การทำ AutoCompletion และความสามารถในการทดสอบงานโดยแบ่งแยกหน้าจอและส่วนโลจิกออกจากกัน (Views Testability)

 

 เป็นอย่างไรบ้างครับ พอได้ยินส่วนต่างๆ ที่มาพร้องกับชุดของ Web Client Software Factory แล้ว สิ่งเหล่านี้นี่แหละที่เขาเรียกว่า “สินทรัพย์ชิ้นส่วนซอฟต์แวร์ (Software Asset) ก็คอยติดตามตอนต่อไปครับ

 

 



Joausal วันที่ส่ง: 20 ธ.ค. 52 21:38 GMT+7
วันที่ปรับล่าสุด: 6 ม.ค. 53 14:17 GMT+7
REPLY #1 (117778)
เยี่ยม ขอบคุณครับ


nano วันที่ส่ง: 22 ธ.ค. 52 20:29 GMT+7
วันที่ปรับล่าสุด: 22 ธ.ค. 52 20:29 GMT+7
REPLY #2 (117779)
สุดยอดจริงๆๆ คับ  
(มีหลายตอนมากคับ ยังกะหนัง "บุณชู" เลย อิ อิ ตอนนที่ 8 ล่ะ)
 
จะติดตามบทความต่อๆๆ ไปคับ
ขอบคุณคับ


giffy2499 วันที่ส่ง: 22 ธ.ค. 52 21:39 GMT+7
วันที่ปรับล่าสุด: 22 ธ.ค. 52 21:39 GMT+7
REPLY #3 (117873)
 
ขอบคุณมากครับ
 
 
เฝ้ารอตอนต่อไป


apidesh วันที่ส่ง: 25 ธ.ค. 52 14:58 GMT+7
วันที่ปรับล่าสุด: 25 ธ.ค. 52 14:58 GMT+7
REPLY #4 (118131)
สุดๆๆจริงๆๆครับ


jaonums วันที่ส่ง: 6 ม.ค. 53 14:17 GMT+7
วันที่ปรับล่าสุด: 6 ม.ค. 53 14:17 GMT+7

ตอบข้อความ/ร่วมแสดงความคิดเห็น

กรุณา Sign In / เข้าสู่ระบบ เพื่อโพสต์หรืออ่านข้อความ
ยังไม่ได้สมัครสมาชิก? Sign Up / สมัครสมาชิกใหม่
10 ก.ย. 08:34
Online: 272