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 #113676 (อ่าน 2,274 ครั้ง)

การพัฒนาซอฟต์แวร์ด้วย Software Factory Toolkits ตอนที่ 4: ได้ผู้สนับสนุนสร้างโรงงานซอฟต์แวร์

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

ได้ผู้สนับสนุนสร้างโรงงานซอฟต์แวร์แล้วครับท่าน

 

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

 

คุณ สมภพ จบจากมหาวิทยาลัยชื่อดังแห่งหนึ่ง เมื่อยี่สิบกว่าปีก่อน และไม่ได้ตั้งใจว่าจะทำงานในอาชีพนักคอมพิวเตอร์เท่าใดนัก แต่เนื่องจากอาชีพคอมพิวเตอร์กำลังเป็นที่นิยมจึงหลีกเลี่ยงไม่ได้ คุณสมภพเริ่มทำงานครั้งแรกบนระบบเมนเฟร์มคอมพิวเตอร์ จากนั้นก็ไปทำระบบจัดการฐานข้อมูล Oracle เริ่มใช้งานเวอร์ชัน 5 ตั้งแต่สมัยออราคอลประเทศไทยยังไม่เกิด จากนั้นก็ไปทำงานในด้าน PC ตั้งแต่ DOS  Windows 3.11 รวมถึงได้รับการอบรมด้าน Object Oriented Analysis และ Design เมื่อปี 2537 เมื่อสิบห้าปีที่ผ่านมา ซึ่งตอนนั้นคุณสมภพ บอกว่า “หลังจากเรียนจบ ไม่เข้าใจเลย” และตอนนั้นนับเป็นการเปลี่ยนยุคสมัยแรกจากระบบ Procedural Language มาเป็นระบบ Object Oriented เพื่อนๆ ของคุณสมภพในสมัยนั้น ล้มหายตายจากไปกันหมด เนื่องจากไม่ได้ติดตามเรียนรู้เทคโนโลยีใหม่ สำหรับผู้ที่อยู่ได้ก็จะต้องรู้ระบบงานของลูกค้าเป็นอย่างดี กล่าวก็คือผู้ที่ทำ System Analyst เก่งๆ หรือ Business Analysis ก็ยังไม่กระทบมากนัก ส่วนผู้ที่ทำทางด้านเทคนิค และโปรแกรมก็อยู่ในอาการโคม่า ปรับตัวไม่ได้ก็ต้องล้มหายตายจากไป แต่เนื่องจากการคุณสมภพเป็นคนที่ไม่ยอมแพ้อะไรง่าย ๆ และชอบในการเรียนรู้สิ่งใหม่ตลอดเวลา อาจจะเป็นด้วยสัญชาติญาณ หรือเหตุการณ์บังคับเพื่อความอยู่รอดก็ตาม คุณสมภพก็ซื้อหนังสือทางด้าน Object Oriented มาอ่าน ซึ่งก็อ่านเข้าใจบ้างและไม่เข้าใจบ้าง จากนั้นคุณสมภพก็ได้มีโอกาสทำงานทางด้านเทคโนโลยีของไมโครซอฟต์ตั้งแต่ Windows NT 3.51 เป็นต้นมา และเรียนรู้เทคโนโลยีของไมโครซอฟต์เพื่อนำมาปรับใช้กับงาน จนกระทั้งเมื่อไมโครซอฟต์ออกเครื่องมือพัฒนา Visual Studio .NET เมื่อปี ค.ศ. 2002 ซึ่งตอนนั้นคงจะจำได้ว่า Delphi กำลังมาแรง และก็ได้ข่าวว่าไมโครซอฟต์ได้ซื้อตัวผู้ออกแบบ Delphi ไปอยู่ไมโครซอฟต์ ซึ่งคุณสมภพก็ได้ศึกษาตัวอย่างการทำงานทางด้าน Object Oriented Programming จากตัวอย่างที่มาพร้อมกับซอฟต์แวร์ตัวนี้

 

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

 

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

 

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

 

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

 

ณ. ที่ร้านกาแฟ แห่งหนึ่ง “สวัสดีครับคุณสมภพ” คุณสมภพก็บอกว่า “สวัสดีครับคุณปฐมรัตน์ ไม่ทราบจะทานอะไรดีครับ” จากนั้นคุณปฐารัตน์ก็ถามถึงเรื่องงานที่คุณสมภพทำ คุณสมภพก็เล่าเรื่องแนวคิดโรงงานซอฟต์แวร์ให้คุณปฐมรัตน์ฟัง และบอกว่าอาจจะเลิกล้มความตั้งใจที่จะทำแล้วเพราะว่าต้องใช้เงินทุนมาก และไม่มีใครให้การสนับสนุน

 

คุณปฐมรัตน์ได้ฟังก็นิ่งคิดสักครู่หนึ่ง แล้วจึงบอกกับคุณสมภพว่า “ เอาอย่างนี้ก็แล้วกัน บังเอิญคุณพ่อผมเสียชีวิต และทิ้งมรดกไว้ให้ผม 76,000 ล้านบาท พ่อผมเป็นอดีตนักการเมืองผู้มีชื่อเสียง ก่อนท่านตายท่านได้บอกกับผมว่าให้เอาเงินส่วนนี้ไปใช้ให้เป็นประโยชน์กันสังคมและประเทศชาติ เพราะว่าตลอดเวลาที่ท่านรวยขึ้นมาได้ก็เพราะได้สัมปทานมาจากรัฐ และเงินจำนวนนี้ควรจะจ่ายภาษีให้รัฐแต่ท่านยุ่งมากจนลืม คุณปฐมรัตน์จึงบอกว่า “เอาอย่างนี้ก็แล้วกัน ผมจะสนับสนุนคุณสมภพตั้งโรงงาน ผมจะให้เงิน 1,000 ล้านบาท สำหรับใช้ทำโรงงานซอฟต์แวร์”  “แต่ถ้าผมทำไม่สำเร็จละครับ”  “ไม่เป็นไร คุณสมภพทำให้เต็มที่ก็แล้วกัน เงินที่ผมเสียไปเพื่อแลกกับความสำเร็จของประเทศ มันคุ้มค่าครับ เงินแค่นี้ขนหน้าแข้งผมไม่ร่วงหลอกครับ และถ้าผมตายไปผมก็เอาเงินทองไปไม่ได้ เอาอย่างนี้ก็แล้วกัน คุณสมภพไปทำรายละเอียดโครงการทั้งหมด รวมถึงค่าใช้จ่ายและระยะเวลาที่ดำเนินงานมาให้ผมดูเอง ถ้ามีอะไรผมรู้จักผู้ใหญ่หลายท่านจะได้ฝากให้ท่านช่วยสนับสนุนอีกแรงนึง”

 

คุณสมภพได้ยินรู้สึกดีใจมากเหมือนตายแล้วเกิดใหม่ จึงรีบกลับบ้านเพื่อไปทำรายละเอียดแผนงานทั้งหมด

 

เป็นอย่างไรครับผู้อ่าน โรงงานเราจะเริ่มสร้างแล้วนะครับ เรามีผู้ใจบุญมาช่วยเราแล้ว ต่อไปก็ไปติดตามชมแผนงานของคุณสมภพกันดีไหมครับ ว่าจะซื้อนักเตะเข้าทีมมากน้อยแต่ไหน (อ้อ ลืมไปไม่ใช้สโมสรฟุตบอล)

 

หนึ่งอาทิตย์ผ่านไป คุณสมภพก็ได้นำแผนงานให้ให้คุณ ปฐมรัตน์มาพิจารณา ซึ่งในแผนงานมีคร่าวๆ ดังนี้

วัตถุประสงค์ของโครงการ

1.  สร้างโรงงานซอฟต์แวร์ต้นแบบ รวมถึงกระบวนการทำงาน เพื่อใช้เป็นศูนย์รวมของนักพัฒนาและฝึกอบรมเทคนิคการทำซอฟต์แวร์โรงงาน

2.  เพื่อเผยแพร่ความรู้ทางด้านวิศวกรรมซอฟต์แวร์ชั้นสูงในเรื่องโรงงานซอฟต์แวร์ให้นักพัฒนาของประเทศได้เข้าใจ

3.  จัดทำโครงสร้างมาตรฐาน (Framework)  กลางเพื่อให้นักพัฒนาและผู้ที่ต้องการนำไปใช้พัฒนาต่อยอดโดยจัดทำเป็น Open Source

4.  สร้างนักพัฒนาโรงงานที่เน้นพัฒนาตามคำสั่งหรือรูปแบบมาตรฐาน โดยจัดทำเป็นหลักสูตรระยะสั้น ซึ่งจะทำให้สร้างนักพัฒนาได้เป็นจำนวนมาก และ

     ตรงกับงานจริง

5.  จัดทำระบบงานจำลอง (Software Factory Prototype) เพื่อให้สมาชิของโรงงานซอฟต์แวร์ได้ฝึกฝนการทำงานอย่างเป็นระบบ

 

แนวคิดเรื่องโรงงานซอฟต์แวร์ (Software Factory)

จากบทความตอนที่ 1-2

 

ขั้นตอนในการดำเนินงาน

สำหรับขั้นตอนในการดำเนินงานจะมีดังนี้

1.  ประชาสัมพันธ์โครงการให้นักพัฒนา เจ้าของธุรกิจ และผู้ที่มีส่วนเกี่ยวข้องได้เข้าใจโครงการ

2.  จัดตั้งทีมงานเพื่อดำเนินการและบริหารโครงการ

3.  รบสมัครผู้ที่เป็นแกนนำรุ่นแรกโดยเน้นที่ Software Architect เพื่อจัดทำโครงสร้างพื้นฐานมาตรฐาน (Framework) สำหรับเป็นต้นแบบในการพัฒนา

4.  จัดทำหลักสูตรและฝึกอบรม Software Architect ให้มีความรู้ความเข้าใจในเรื่องโรงงานซอฟต์แวร์

5.  จัดสร้างระบบงานตัวอย่างให้เห็นเป็นรูปธรรม และสามารถนำไปใช้งานได้จริง โดยจัดทำเป็น Open Source

6.  ขยายความรู้ออกไปในวงกว้าง เพื่อสร้างนักพัฒนารุ่นต่อไป และจัดตั้งกลุ่มนักพัฒนาซอฟต์แวร์โรงงานให้มีความเข้มแข็งและพึ่งพาตนเองได้

 

แผนงาน

...

 

ค่าใช้จ่าย

…

 

จุดคุ้มทุน

เนื่องจากองค์กรนี้ไม่ได้หวังกำไรเป็นตัวเงิน แต่จะใช้การฝึกอบรมนักพัฒนาซอฟต์แวร์ให้มีความรู้ทางด้านวิศวกรรมซอฟต์แวร์ชั้นในเชิงปฏิบัติได้จริงและนำชิ้นงานของซอฟต์แวร์โรงงานไปใช้ประโยชน์ต่อยอด โดยดูจากจำนวนผู้ได้รับการอบรม และจำนวนนักพัฒนาที่เป็น นักพัฒนาซอฟต์แวร์โรงงานที่เน้นการทำงานตามรูปแบบมาตรฐาน โดยเป้าหมายให้ได้ 5,000 คนในปีแรก 10,000 ในปีที่สอง 25,000 คนในปีที่สาม 50,000 ในปีที่สี่ 100,000 ในปีที่ห้าและสามารถนำแรงงานดังกล่าวไป Outsource งานจากต่างประเทศได้

 

ทีมงานและโครงสร้างของทีม (Team Organization)

อยู่ในตอนที่ 2 ของเรื่องทีมพัฒนา

 

 

เมื่อคุณปฐมรัตน์ได้เห็นแผนงานก็ได้ให้ความคิดเห็นว่า “คุณสมภพ ถ้าในปีที่ห้าได้นักพัฒนาสัก 500,000 คนจะได้ไหมครับ”

“มันก็ไม่ใช่ง่ายนักที่จะทำ ผมก็จะพยายามให้ดีที่สุด และดูผลการดำเนินงานก่อนครับ แล้วผมจะให้คำตอบอีกครั้งครับ”

“อ้อผมลืมไปอีกอย่างหนึ่ง คุณสมภพช่วยลองนำแนวคิดนี้ไปคุยกับทางบริษัทไมโครซอฟต์หน่อย และดูว่าทางไมโครซอฟต์จะช่วยสนับสนุนอะไรเราได้บ้าง”

“ได้ครับคุณปฐมรัตน์ ผมรู้จักเพื่อนๆ ที่ไมโครซอฟต์หลายท่าน และก็เคยคุยกันเรื่องนี้ และพวกเขาเห็นด้วยกับเรื่องนี้เหมือนกัน เดี๋ยวผมจะรีบติดต่อไปครับ”
 
 

(อย่าลืมนะครับว่าเป็นเรื่องสมมุติ อย่าไปคิดมากเรื่องความเป็นจริง แต่ว่าถ้าพวกเราคิดว่ามันทำได้มันก็จะเป็นความจริงได้เหมือนกันนะ เคยเห็นมดตะนอยตัวเล็กๆ รวมตัวกันล้มช้างได้เหมือนกันนะ)

 

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

 

เป็นอย่างไรบ้างครับ แผนงานของคุณสมภพที่ได้เสนอไป ต่อไปเราก็จะดูต่อไปว่าคุณสมภพจะได้ใครมาร่วมงาน และจะลองเข้าไปดูเนื้อหาการอบรม Software Architect ของคุณสมภพว่ามีอะไรบ้างดีไหมครับ

 

เจาะลึกเรื่อง Smart Client Software Factory

จากบทความตอนที่แล้วได้ทิ้งท้ายให้ลองใช้ Smart Client Software Factory สร้างโซลูชัน และส่วนที่เป็นโครงสร้างพื้นฐาน (Infrastructure) รวมทั้ง Shell โปรเจ็กต์ ซึ่งบางท่านก็ว่าดูไม่ทันจนตาลาย ลองคิดว่าถ้าไม่มี GAT มาทำหน้าที่ให้พวกเราๆ จะตกระกำลำบากอย่างไร อันนี้ฝากท่านที่เป็น Architect ช่วยดูแลหน่อยนะครับ หรือใครจะเปลี่ยนใจตอนนี้ก็ยังทัน (ถ้าใจไม่รักจริง)

ขอเพิ่มเติมจากตอนที่แล้วนิดหนึ่ง คือลืมไปว่ายังมีเครื่องมือที่อยู่ในชุดของ Software Factory ที่ยังหลงเหลืออยู่ ซึ่งแน่นอนบางคนก็จะบ่นว่า Smart Client Software Factory นั้นใช้สำหรับแอพพลิเคชันที่เป็น Windows Form แล้ว Software Factory ที่ใช้สำหรับเว็บแอพพลิเคชันละ มีหรือเปล่า ขอตอบว่า มีครับ นั่นก็คือ Web Client Software Factory ซึ่งมีเวอร์ชันล่าสุด Feb 2008 ใช้สำหรับ Visual Studio 2008 ใครสนใจไปดาวน์โหลดได้ที่  http://websf.codeplex.com/  แต่ตอนนี้ยังไม่ขอลงรายละเอียด

ต่อไปก็เป็น Web Service Software Factory สำหรับทำ Service Oriented Architecture (SOA) แอพพลิเคชัน ตัวนี้น่าสนใจมาก มันทำในระดับ Model Driven Development ได้เลย โดยการออกแบบเป็นโมเดลก่อน และ Generate ออกเป็นแอพพลิเคชันซึ่งเป็นชุดของ ASMX หรือ WCF เทคโนโลยี และเอาไปเชื่อมต่อกับ Smart Client หรือ Web Client Software Factory ได้เลยครับ (รู้สึกหรือยังว่า แอพพลิเคชันเราจะเริ่มเหมือนการต่อจิกซอว์เข้าไปทุกวัน)

 

ผลดีที่เกิดจากโรงงานซอฟต์แวร์

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

 

คำว่าเฟรมเวิร์คนั้นก็คือโครงสร้างหลักพื้นฐานของระบบงาน ถ้าจะมองให้เข้าใจง่ายๆ ลองจินตนาการถึงโครงสร้างหลักของอาคารดูครับ ซึ่งตัวอย่างโครงสร้างพื้นฐานอาคารก็คือ โครงสร้างฐานราก โครงสร้างระบบไฟฟ้า ประปา แอร์ เป็นต้น ลองคิดดูว่าถ้าเรามีการเปลี่ยนแปลงระบบฐานรากขึ้นมา จะกระทบอะไรบ้างครับ (คุณจะต้องรื้อตึกก่อนแล้วถึงจะทำฐานรากใหม่ได้) ดังนั้นสำหรับแอพพลิเคชันก็เหมือนกัน อะไรก็ตามที่เป็นสิ่งสำคัญ เช่นระบบฐานรากก็เหมือนกับ Infrastructure กลางของระบบเช่น การวางระดับชั้นของแอพพลิเคชันว่ามีกี่ระดับ เช่น Presentation Layer, Data Access Layer, Data Service Layer, Workflow Layer  เป็นต้น รวมถึงส่วนเชื่อมโยงของกันและกัน (Infrastructure กลางเป็นส่วนหนึ่งของเฟรมเวิร์คนะครับ) นอกจากนั้นยังรวมถึงโมดูลต่างๆ ของแอพพลิเคชันจะวางไว้ตรงไหน และจะเชื่อมโยงกับ Infrastructure กลางได้อย่างไรเพื่อให้ระบบงานสามารถพัฒนาต่อขยายได้โดยไม่กระทบกับ Infrastructure กลาง ตรงนี้ถ้ามีการเปลี่ยนแปลงจะกระทบกับแอพพลิเคชันทั้งหมด เราจึงต้องวางขึ้นมาก่อน รวมถึงแนวคิดของซอฟต์วแวร์โรงงาน (patterns &  practices Smart Client Software Factory) ที่เป็นเครื่องมือช่วยให้ Infrastructure กลางและโมดูลต่างๆ ของแอพพลิเคชัน ทำงานสอดประสานกันโห้มีประสิทธิภาพมากขึ้น ซึ่งเป็นสิ่งที่เราจะเรียนรู้ต่อไปครับ สิ่งดังที่กล่าวมานี้เราจะเรียกว่าเฟรมเวิร์คครับ (เพื่อให้เข้าใจตรงกันนะที่นี้ บางที่อาจใช้คำว่าเฟรมเวิร์คต่างไปจากนี้ก็ได้ มันเป็นแค่คำนิยามนะครับอย่าเอามันไปเป็นสาระสำคัญ เพียงขอให้เข้าใจว่ามันคืออะไรเท่านั้นเอง)

 

รูป Software Factory Capabilities

 

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

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

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

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

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

 

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

 

ในตอนต่อไปจะอธิบายตัวอย่างโปรแกรม Hello Software Factory ในรูปแบบของ Smart Client Software Factory ให้ดูครับ

 

ช่วยวิจารณ์ด้วยนะครับวาการดำเนินเรื่องแบบนี้รู้สึกอย่างไร เพราะว่าไม่อยากให้เป็นเรื่องหนักจนเกินไป เนื้อหาก็ยากอยู่แล้ว และเชิญท่านทั้งหลายมาร่วมเป็นตัวละครร่วมกันด้วยนะครับใครชอบบทบาทไหนก็เชิญเลยครับ

 



joausal วันที่ส่ง: 15 ก.ย. 52 06:27 GMT+7
วันที่ปรับล่าสุด: 29 เม.ย. 53 05:23 GMT+7
REPLY #1 (113677)
เป็นบทความที่เยี่ยมยอดจริงๆ ครับ


nano วันที่ส่ง: 15 ก.ย. 52 07:23 GMT+7
วันที่ปรับล่าสุด: 15 ก.ย. 52 07:23 GMT+7
REPLY #2 (113680)
ติดตามมาตลอดๆครับ สุดยอดมากๆ


mamgmo วันที่ส่ง: 15 ก.ย. 52 08:23 GMT+7
วันที่ปรับล่าสุด: 15 ก.ย. 52 08:23 GMT+7
REPLY #3 (113682)

 ยอดเยี่ยมมากเลยครับ

อ่านเรื่องคุณสมภพแล้วเหมือนเรื่องตัวเองเลยครับ หุหุหุ  เพียงแต่ว่าอายุงานผมน้อยกว่านิดส์นึง  แล้วก็หัดเรียนรู้เรื่อง OO ช้ากว่ามากกกกก เพราะเพิ่งเริ่มต้นหัดเรียนรู้อย่างจริงจังสักสองปีมานี่เอง แต่ก็หาหนังสือหนังหาเกี่ยวกับเรื่องนี้มาก่อนหน้านานเหมือนกัน อ่านจบแล้วก็ "ไม่ค่อยรู้เรื่อง" จนได้มาเรียน OOAD กับ อ.สุเทพนี่แหละ และช่วงนี้ก็เป็นช่วงที่พยายามนำเสนอแนวคิด เหมือนกับคุณสมภพเลยครับ  และก็พบกับปัญหาเดียวกันเลย คือ หัวหน้าๆ ผู้ใหญ่กว่า ไม่ค่อยรับความคิด เพราะเค้าโตมากับการ coding แบบ procedural (ทุกวันนี้เวลาออกแบบระบบยังจะให้เขียนโฟลวชาร์ตอยู่เลย) แต่ก็ไม่ท้อครับ ก็พยายามทำอยู่ ทำเอง ทะยอยทำกับงานใหม่ๆ (แต่ไม่ได้ถึงขั้น software factory นะครับ แค่ทำแบบหลาย tier แยกส่วนแสดงผลกับฐานข้อมูล กับ business ออกจากกันแค่นั้น) งานเก่าๆเดิมๆก็ดีลกับมันด้วยวิธีเดิมๆ เหนื่อยเหมือนกัน อ่านแล้วเข้าใจคุณสมภพครับ ว่าความรู้สึกตร๊อแตร๊แบบนั้นมันเป็นยังไง
 
เอาใจช่วยคุณสมภพครับ และรออ่านตอนต่อไปครับ


firefly วันที่ส่ง: 15 ก.ย. 52 09:20 GMT+7
วันที่ปรับล่าสุด: 15 ก.ย. 52 09:20 GMT+7
REPLY #4 (113685)

ขอบคุณมากครับ

 
ติดตามมาตลอดครับ ตั้งแต่บทความแรกเลยและจะติดตามต่อไปครับ
 
 
 


mrteams วันที่ส่ง: 15 ก.ย. 52 10:06 GMT+7
วันที่ปรับล่าสุด: 15 ก.ย. 52 10:06 GMT+7
REPLY #5 (113701)

ช่วงนี้ก็ไม่ค่อยได้เข้ามา ยังไงผมก็ขอเรียนรู้จากประสบการณ์ของพี่แล้วกันนะครับ :)

ส่วนตัวก็ค่อนข้างชอบ เรื่องเกี่ยวกับ Architecture อยู่เหมือนกัน แต่ก็ไม่ได้เน้นไปที่ Microsoft มากนัก
ไว้ตอนที่พี่ เขียน การ Implement จะได้เข้ามาคุยกันครับ
 


tapeza555 วันที่ส่ง: 15 ก.ย. 52 13:55 GMT+7
วันที่ปรับล่าสุด: 15 ก.ย. 52 13:55 GMT+7
REPLY #6 (113776)

ขอบคุณทุกท่านครับ ผมว่าเราได้ผู้ช่วยคุณสมภพบ้างแล้วนะครับ ผมอยากให้ทุกท่านมีส่วนร่วม จะพยายามให้ทุกท่านรู้สึกเป็นตัวละครในเรื่อง มีอะไรแนะนำเพิ่มเติมก็ได้นะครับ

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


joausal วันที่ส่ง: 15 ก.ย. 52 20:52 GMT+7
วันที่ปรับล่าสุด: 15 ก.ย. 52 20:52 GMT+7
REPLY #7 (113808)
ผมเขียน java ไม่เป็นหรอก ครับ ^^ ตอนนี้ผมใช้ C# เขียน ASP.NET ครับ
ทำก็แค่พื้นๆๆ ไม่ได้ใช้อะไรมากมายครับ
แต่ก็สนใจเรื่อง Architecture  เลย ลองอ่านพวก Pattern ต่างๆๆ แล้วกำลังเรียบเรียงอยู่อะครับ
ส่วนที่ บอกว่าไม่ค่อยได้ใช้ Microsoft ผมหมายถึง อยากลองเปรียบเทียบกับพวก Opensource อะครับ
รวมถึงหลักการออกแบบ BLL ด้วย แต่ก็ยังศึกษาภาพกว้างๆ อะครับ ยังไม่ได้เจาะ
ลงรายระเอียดการ Implement เท่าไหร่นักครับ
 
Domain Model vs 3-Tire Service Architecture(MS)
Spring.Net vs Unity(MS)
NHibernate vs Entity Framwork(MS)
OOP Progamming vs Procedural Programming
...
 
สิ่งที่อยากจะให้พี่ช่วยแนะนำก็เรื่อง
How to ต่างๆ ว่าควรจะวางไว้ตรงไหนดี หรือทำยังไงดี
แล้วทำไมเราถึงต้องใช้แบบนี้เพราะอะไร อาจจะเอา

Smart Client Software Factory เป็นแนวทางก็ได้ครับ

 

- Test-Driven Development
- Transaction Management
- Perfomance ..
- Validation Bussiness Rule..
- Security ..
- Logging..
- Exception ..
- Remote Call ...
- MVP vs MVC ??
- Tire Design
 ...
 
ผมจะได้ลองเอามาปรับให้เป็น Style ผมดูครับ ขอบคุณครับ


tapeza555 วันที่ส่ง: 16 ก.ย. 52 13:06 GMT+7
วันที่ปรับล่าสุด: 16 ก.ย. 52 13:06 GMT+7
REPLY #8 (113826)

พิมพ์ตั้งนาน หายหมดเลย = ='

 
ขอแชร์ละกันครับ
 
ผมเลือกใช้แค่  Logging เท่านั้นครับ
เพราะ PP นั้นหากจะลงลึกเพื่อ customize เพิ่มเติมนั้น ยากกว่าทำของใหม่หลายเท่าครับ
บางตัวให้มาเยอะเกินไป และในบางสิ่งก็ขาดหายไป ทั้ง ๆ ที่ควรจะมี
แม้ว่าทำตามตัวอย่างแล้ว ง่ายดาย  แต่เมื่อใช้งานกับระบบงานที่ลึกมากเข้า สุดท้ายก็ต้องรื้อมา modify เพื่อให้ตรงกับความต้องการของระบบ
 
และแนวทางการทำงานของผม ก็เหมือนของ Tapeza
อะไรที่ดีกว่าก็ย่อมเลือกใช้สิ่งนั้น
ไม่ได้หมายถึง Java แต่พูดถึง open source tool ของ MS ครับ
คนเป็น sw architect จะต้องมองภาพกว้าง ทะลุไปอีกค่ายเลย ก็ว่าได้ 
แต่บางทีกว้างมากก็ Focus ลำบากเหมือนกัน โน้นก็ดี นั่นก็เยี่ยม ประมาณนั้น
 
 


Nine (นาย) วันที่ส่ง: 16 ก.ย. 52 20:12 GMT+7
วันที่ปรับล่าสุด: 16 ก.ย. 52 20:12 GMT+7
REPLY #9 (113827)
ตกไปนิด จะใช้  PP แนะนำให้อ่านเรื่อง License ด้วยนะครับ
 
 

Microsoft Public License (Ms-PL)

[OSI Approved License]

This license governs use of the accompanying software. If you use the software, you
accept this license. If you do not accept the license, do not use the software.

1. Definitions
The terms "reproduce," "reproduction," "derivative works," and "distribution" have the
same meaning here as under U.S. copyright law.
A "contribution" is the original software, or any additions or changes to the software.
A "contributor" is any person that distributes its contribution under this license.
"Licensed patents" are a contributor''s patent claims that read directly on its contribution.

2. Grant of Rights
(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.

3. Conditions and Limitations
(A) No Trademark License- This license does not grant you rights to use any contributors'' name, logo, or trademarks.
(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
(E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.

 



Nine (นาย) วันที่ส่ง: 16 ก.ย. 52 20:17 GMT+7
วันที่ปรับล่าสุด: 16 ก.ย. 52 20:17 GMT+7
REPLY #10 (113830)

ก็ขอช่วยกันแปลหน่อยครับ แต่ที่ผมเข้าใจเบื้องต้นก็คือ ที่มาของ S/W จะต้องระบุว่ามาจากไหน จะไปแปลงและเอาชื่อเราไปใส่ไม่ได้ และเมื่อได้ S/W ที่พัฒนาแล้วควรจะ Share ใน Community บ้าง และตรงนี้ผมก็เคยถามคุณเอกราชเหมือนกัน ซึ่งก็ไม่น่ามีอะไร แต่ก็ควรดูให้ละเอียด เดี๋ยวอาจมีปัญหาภายหลัง

 
สำหรับเบื้องต้นนั้น ผมต้องการให้เรียนรู้วิธีการพัฒนาของเขา ว่าเขาทำมาได้อย่างไร และด้วยเทคนิคอะไร คือเอา Tools เขามาเป็นเครื่องมือเรียนรู้ Software Architect พูดง่ายๆ ว่าเอารถเขามาผ่าใส้ และดูว่ามีอะไร และหลังจากนั้นแล้วเราอาจจะพัฒนาขึ้นด้วยตัวเราเอง (แต่ถ้าเขียนเองก็เหนื่อยเหมือนกัน) เราจะเอามาประยุกต์กันอย่างไรก็ขอความคิดเห็นด้วย
 
ถ้าให้ชัวร์ ก็ขออนุญาติเป็นทางการกับทางไมโครซอฟต์จะได้ไหม เป็นลายลักษณ์อักษร ใครมีความคิดเห็นอย่างไรครับ


joausal วันที่ส่ง: 16 ก.ย. 52 21:02 GMT+7
วันที่ปรับล่าสุด: 16 ก.ย. 52 21:02 GMT+7
REPLY #11 (113933)

โรงงานพันล้าน

อ่านหลายๆรอบ กันนะครับ  มีหลายประเด็นมาก ที่ต้องให้ความสำคัญ อ่านรอบเดียว จับประเด็นได้ไม่หมด



mie วันที่ส่ง: 18 ก.ย. 52 12:51 GMT+7
วันที่ปรับล่าสุด: 18 ก.ย. 52 12:51 GMT+7
REPLY #12 (113938)

เข้ามารอติดตามตอนต่อไปครับผม ถึงอ่านครบ 4 ตอน ณ ขณะนี้แล้วก็ยังมึนๆอยู่ครับ แต่ปัญหาของผมที่เจออยู่ในปัจจุบันคือ อยากทำให้งานในปัจจุบันเป็นระบบระเบียบครับ ยังไม่ประสบความสำเร็จสักทีไม่ว่าจะ project เล็ก หรือ Project ใหญ่ ติดตามเรื่องนี้แล้วเหมือนเกิดแรงกระตุ้นขึ้นอีกครั้งครับ จะพยายามอ่านและทำความเข้าใจอีกหลายๆรอบครับผม อย่างน้อยต้อง 20 รอบตามที่พี่มี่เคยแนะนำไว้ครับ

 
ขอบคุณสำหรับบทความดีๆมีประโยชน์ครับ


tonkung วันที่ส่ง: 18 ก.ย. 52 14:02 GMT+7
วันที่ปรับล่าสุด: 18 ก.ย. 52 14:02 GMT+7
REPLY #13 (114024)

ผมว่าไม่น่ามีปัญหา นะครับ ถ้าพี่มาแบ่งปันประสบการณ์

ยังไงผมก็ยังคงรอบทความต่อไปครับ จะได้มาคุยกัน
 


nice-jerk วันที่ส่ง: 21 ก.ย. 52 10:28 GMT+7
วันที่ปรับล่าสุด: 21 ก.ย. 52 10:28 GMT+7
REPLY #14 (114042)
ขอบคุณครับ


kuraynai วันที่ส่ง: 21 ก.ย. 52 15:56 GMT+7
วันที่ปรับล่าสุด: 21 ก.ย. 52 15:56 GMT+7
REPLY #15 (114108)
ตั้งใจอ่านจนจบครับ เข้าใจระดับหนึ่ง แต่คงต้องอ่านอีกหลายรอบครับ ขอบคุณมากครับสำหรับบทความดีดี และผมคนหนึ่งที่คิดว่ามันเป็นไปได้ครับ


jaonums วันที่ส่ง: 22 ก.ย. 52 16:45 GMT+7
วันที่ปรับล่าสุด: 22 ก.ย. 52 16:45 GMT+7
REPLY #16 (114175)
ขอบุณครับ ตั้งตารอตอนต่อไปครับ หุหุ


thekingdom วันที่ส่ง: 23 ก.ย. 52 20:34 GMT+7
วันที่ปรับล่าสุด: 23 ก.ย. 52 20:34 GMT+7
REPLY #17 (116446)

อ่านมาสี่ตอน คิดว่าคงต้องทวนอีกหลายรอบเลยครับ

 
ทำไมยากจังเลย
 
พอดีผมก็พึ่งจะเริ่มคิดและทำแบบ OOAD ได้ไม่นานเอง
 
ยังต้องเรียนรู้อีกเยอะ
 
ขอบคุณที่แบ่งปันบทความดีๆครับ


v!nzent วันที่ส่ง: 16 พ.ย. 52 14:06 GMT+7
วันที่ปรับล่าสุด: 16 พ.ย. 52 14:06 GMT+7
REPLY #18 (116655)

ที่จริงมันไม่ยากครับ เพียงแต่เรายังไม่เคย มันก็เลยเป็นเรื่องใหม่ และยิ่งไปกว่านั้น เพราะมันทำไมใหม่เยอะจัง มันก็เลยยุ่ง แต่คุณมายุ่งตอนนี้ ดีกว่า ถอดใจยกธงขาวในอนาคต ถ้าเรื่องที่ต้องรู้มันพอกหางม้าเยอะ ๆ (หมูตัวเล็กไป)

 
ซึ่งคุณ V!nzent ยังใหม่อยู่ และมาจับเรื่องแบบนี้ ก็ถือได้ว่า อยากรวยทางลัด แหงเลย พยายามหน่อยครับ ตอนผมเรียนรู้ครั้งแรก ก็ไม่รู้เรื่องเลยครับ เพราะมันต้องใช้พื้นฐานความรู้รอบด้าน ทำให้เราต้องพัฒนาความรู้หลาย ๆ ด้าน ถ้าเป็นอาหารก็ต้มยำกุ้ง (แซ่บอย่าบอกใคร) ก็ถือว่าคุ้มครับกับความเหนื่อย แต่ได้ โซลูชั่นออกมาให้ทุกท่านได้ใช้ จะได้มีเพื่อนคุยภาษาเดียวกันเยอะ ๆ และช่วยเจาะลึกคนละด้านและมาแลกเปลี่ยนความรู้กัน เพราะผมก็ไม่ได้รู้ลึกทุกเรื่องครับ ยังไงก็ต้องพึ่งพวกท่านทั้งหลายเหมือนกัน


joausal วันที่ส่ง: 20 พ.ย. 52 20:54 GMT+7
วันที่ปรับล่าสุด: 20 พ.ย. 52 20:54 GMT+7
REPLY #19 (119438)

ขอบคุณครับ อ่านมา 9 ตอนได้ความรู้มากเลยครับ แต่ตอนนี้ฮาสุดๆ ครับ

กำลังรอ CAB 2 (Prism) อยู่ครับคุณพี่ joausal



nas วันที่ส่ง: 12 ก.พ. 53 13:28 GMT+7
วันที่ปรับล่าสุด: 12 ก.พ. 53 13:28 GMT+7
REPLY #20 (119705)

เกือบลืมไปเลยครับ

 
อาทิตย์นี้แล้วซินะ เอามาทำโรงงานซอฟต์แวร์ดีกว่า 76,000 ล้านบาท
 
 


joausal วันที่ส่ง: 22 ก.พ. 53 21:43 GMT+7
วันที่ปรับล่าสุด: 22 ก.พ. 53 21:43 GMT+7
REPLY #21 (121414)
มีอะไร ก้อบอกนะคัฟ
 
จะพยายามช่วยเต็มที่
 
ตอนนี้ผมกะลังทำตัว Silverlight4 กับ prism คัฟ หวังว่าคงช่วยได้บ้างนะคัฟ


nixar วันที่ส่ง: 11 เม.ย. 53 22:49 GMT+7
วันที่ปรับล่าสุด: 11 เม.ย. 53 22:49 GMT+7
REPLY #22 (121566)

พิมพ์ตั้งนาน หายหมดเลย = ='

 
ขอแชร์ละกันครับ
 
ผมเลือกใช้แค่  Logging เท่านั้นครับ
เพราะ PP นั้นหากจะลงลึกเพื่อ customize เพิ่มเติมนั้น ยากกว่าทำของใหม่หลายเท่าครับ
บางตัวให้มาเยอะเกินไป และในบางสิ่งก็ขาดหายไป ทั้ง ๆ ที่ควรจะมี
แม้ว่าทำตามตัวอย่างแล้ว ง่ายดาย  แต่เมื่อใช้งานกับระบบงานที่ลึกมากเข้า สุดท้ายก็ต้องรื้อมา modify เพื่อให้ตรงกับความต้องการของระบบ
 
และแนวทางการทำงานของผม ก็เหมือนของ Tapeza
อะไรที่ดีกว่าก็ย่อมเลือกใช้สิ่งนั้น
ไม่ได้หมายถึง Java แต่พูดถึง open source tool ของ MS ครับ
คนเป็น sw architect จะต้องมองภาพกว้าง ทะลุไปอีกค่ายเลย ก็ว่าได้ 
แต่บางทีกว้างมากก็ Focus ลำบากเหมือนกัน โน้นก็ดี นั่นก็เยี่ยม ประมาณนั้น
 
 
ตรงนี้ผมเห็นด้วยครับ (ของคุณ Nine)
 
 
 


witsanukam วันที่ส่ง: 19 เม.ย. 53 10:40 GMT+7
วันที่ปรับล่าสุด: 19 เม.ย. 53 10:40 GMT+7
REPLY #23 (121567)

อะไรที่ดีกว่าก็ย่อมเลือกใช้สิ่งนั้น


witsanukam วันที่ส่ง: 19 เม.ย. 53 10:41 GMT+7
วันที่ปรับล่าสุด: 19 เม.ย. 53 10:41 GMT+7
REPLY #24 (121568)

แต่บางทีกว้างมากก็ Focus ลำบากเหมือนกัน โน้นก็ดี นั่นก็เยี่ยม ประมาณนั้น


witsanukam วันที่ส่ง: 19 เม.ย. 53 10:45 GMT+7
วันที่ปรับล่าสุด: 19 เม.ย. 53 10:45 GMT+7
REPLY #25 (121928)
ถ้าเป็น Prism จะให้คุณ nixar มาช่วยอีกแรงครับเพราะ Solutiion จะมีดังนี้
 
1. Windows Form ก็จะเป็น Smart Client Software Factory
2. Web Application ก็จะเป็น Web Client Software Factory หรือ ASP.NET MVC Framework
3. WPF และ Silverlight ก็จะเป็น Prism ครับ
 
ซึ่งทั้ง 3 Solution ก็จะใช้รูปแบบการพัฒนาแตกต่างกัน แต่ในเชิง Software Factory แล้วก็จะใช้แนวคิดคล้าย ๆ กัน
 
ค่อย ๆ ซึมซับไปเรื่อย ๆ ก็แล้วกัน


joausal วันที่ส่ง: 29 เม.ย. 53 05:23 GMT+7
วันที่ปรับล่าสุด: 29 เม.ย. 53 05:23 GMT+7

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

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