วันอังคารที่ 25 มีนาคม พ.ศ. 2557

Framework & Design Pattern

Framework คือ อะไร ?
   ถ้าพูดกัน เป็นภาษาชาวบ้านๆ Framework ก็คือกรอบ ในการเขียนโปรแกรม เพื่อให้ ทิศทางการเขียนโปรแกรม เป็นไปทางเดียวกัน ซึ่งรูปแบบ อะไรทำซ้ำๆ ก็ทำเป็น Framework เอาไว้ให้คนใช้กัน แบบนี้ก็ เป็น Framework ได้แล้ว

ถ้าจะเปรียบเทียบ กับการสร้างอาคาร Framework คือ พิมพ์เขียว
ส่วน Pattern  คือ แปลนบ้าน นั่นเอง

  ทางด้าน Progrmming เช่น  MVC Framework, Dot Net Framwork, Spring MVC Framework
  มีอีกเยอะแยะมากมาย

  ทำไมต้อง ใช้ Framework ?
      Design Pattern คือ อะไร ?    Design Pattern จะมอง เหมือน Template ก็ได้ แต่ก็ไม่ถูกซะทีเดียว
  
     Desing Pattern เป็นหมือนข้อบังคับ ว่าถ้าคุณจะทำสิ่งนี้ ก็ต้องใช้สิ่งนี้ทำ และ ทำแบบนี้เท่านั้น
     เช่น เด็กไทย ครบอายุ 15 ต้องทำบัตรประชาชน ทำน้องนี้
   ในทาง Programming ก็เช่นกัน เช่น การประกาศตัวแปร ชื่อของ Function ให้ตั้งชื่อ ตาม Standard
   Naming ของ Camel หรือ Pascal (ลองหาอ่านดู นะ ว่า Camel กับ Pascal มีข้อกับหนดกันอย่างไร) 
   ดังนี้เป็นต้น

    จากที่ยกตัวอย่าง การสร้างอาคาร Framework  คือพิมพ์เขียว และ Design Pattern แปลนบ้านครับ

  ทำไมต้องใช้ Design Pattern ?
   เพราะ เป็นข้อกำหนดที่ชัดเจน ไม่คลุมเครือ ง่ายต่อการเข้าใจ เพื่อนำไปปฎิบัติ

ทำไมใช้ Framwork ยังไม่พอหรือไง ถึงต้องใช้ Design Pattern ด้วย ?
  ไม่พอ ครับ เพราะ Framework เป็นแค่กรอบกว้างๆ ยังไม่ได้ Control ไปถึง Detail ในการลงมือ
  ปฏิบัติจริงๆ เพราะ Design Pattern จะบอกถึงรายละเอียด ที่ชัดเจนครับ

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


ยกตัวอย่าง ตึกใหญ่ๆ ครับ มันก็คือ ชินส่วนเล็กของ อิฐ แต่ละก่อน มาต่อกัน ครับ
ดังนั้น Framework และ Design Pattern จึงหนีไม่พ้น แนวคิด ของ OOP และ Framework ของ ภาษาโปรแกรมนั้นๆ ครับ เพราะถ้าขาดหัวใจหลัก สองตัวนี้ ก็จะไม่มี Framework และ Design Pattern ขึ้นมา

ข้อดีของการใช้ Framework  และ Design Pattern   

    - ทำให้ทีมพัฒนาโปรแกรม เขียน Code ไปในทิศทางเดียวกัน
    - ทำให้ Maintain Code ภายหลังได้ง่ายขึ้น แล้ว ใช้เวลาส้้นลง ปวดหัวน้อยลง  ค่าใช้จ่ายลดลง
    - Progrmmer มือใหม่ สามารถทำงาน ตามรุ่นพี่ ได้อย่างรวดเร็ว เพราะ ทุกๆ Application
      ถูกพัฒนา ด้วย Framework เดียวกัน
    - Framework เป็นสากล ที่ทั่วโลกใช้ กัน ไม่ได้ เป็นแบบ มวยวัดอีกต่อไป
    - ป้องกันความเสี่ยง ของ Project ล่ม เพราะคนเก่า ลาออก
      มีข้อดีอีกเยอะ ครับ

** อ่านแล้ว มีความคิดเห็น แลกเปลี่ยน เขียนกันเข้ามาได้ครับ **

เปิดสอน ASP.NET MVC Framework
ขั้น Advance

หลักสูตร  ระดับกลางระดับสูง (เรียน 4 วัน)
ค่าเรียน 6,000 บาท
(เรียน วันเสาร์-อาทิตย์)

Advance ASP.NET MVC ด้วย C# แบบ Multi UI และ Multi Database
   -  HTML
   -  Razor
   - Javascript
   - Ajax Jquery
   - Ajax Extjs
   - Json Format
   - MVC Framework 3, 4
   - Design Pattern แยกจากกัน ระหว่าง ฝั่ง Client กับ ฝั่ง Server
   - แนวคิด แบบ OOP
ในการเขียนโปรแกรม  
  
- มี Class ที่ทำงานได้กับ Database หลายตัว ใน Module
เดียวกัน
      ให้เอาไปใช้แบบง่ายๆได้เลย 

   
- มี Class แบบ Interface Class / Abtract Class ร่วมกับ Expression
      ให้เอาไปใช้แบบง่ายๆได้เลย
   - มีรูปแบบ การเขียน Code เพื่อทำงานกับ Database และ Mapping
      ข้อมูลระหว่าง Database มายัง View ด้วย Json Format
      โดยไม่ยึดติดอยู่กับ Database ค่ายใดค่ายหนึ่ง

   - ปูพื้นฐาน ของ SOA(Service Oriented Achitecture) ให้ตอนท้าย ของการสอน


 หลักสูตรนี้เหมาะกับใคร?
   - เหมาะกับนักศึกษาที่กำลัง ทำ Project จบ
   - เหมาะกับ Programmer มือใหม่ ที่ต้องการพัฒนาศักยภาพตัวเอง
      ในการพัฒนาโปรแกรมให้เพิ่มขึ้น
   - เหมาะกับ Developer ทุกๆคน ที่ต้องการลดปัญหางานเสร็จช้า แก้ไขCodeภายหลังได้ยาก
     ตามแก้ไขงานของคนอื่นที่ทำอะไรไว้ก็ไม่รู้
   - เหมาะกับ Software Achiture , Sernior Programmer หรือ SA
     สามาถเอาไปวางแผนการทำงานให้  กับ Progrmmer เพื่อให้ทำงานได้เสร็จ ในเวลาสั้นๆ
     ด้วยวิธีการทำงาน ตามหลักสูตรนี้ สามารถ ช่วยให้ปัญหาเหล่านี้ลดลงได้

  ผู้เรียน สามารถ เอาไปต่อยอดในการเขียนโปรแกรม ในที่ทำงาน
  โดยใช้เวลาในการเขียนสั้นลง และ
Maintain ง่าย และ รวดเร็ว ยิ่งขึ้น
  และ ระว่างการทำ
Work Shop จะใช้ Design Pattern ในการเขียนโปรแกรม
  ซึ่งมีทุกอย่างครบถ้วน สมบูรณ์อยู่แล้ว สามาถนำไปใช้ได้ทันที

  ข้อดี ของการเขียนโปรแกรมแบนี้คือ
   1. งานเสร็จเร็ว ตอบสนองต่อความต้องการของ ธุรกิจได้เร็ว (Productivity)
   2. ความน่าเชื่อถือ(Reliability) ของโปรแกรมมีมากขึ้น (ไม่มี Bug)
   3. ความคงทน (Robust)
   4. ยืดหยุ่นสูง (Flexibility)
   5. ต้นทุนต่ำ (Low Cost)
   เป็นต้น  

  ***
     ชีวิตการเขียน Program / Manage Project จะง่ายขึ้นหลายเท่า ถ้าคุณได้เรียนรู้เทคนิคต่างๆเหล่านี้
     ไม่ว่าจะ เริ่มต้นเขียนเองคนเดียว หรือ ทำงานกันเป็นทีม หรือ ในการ Maintain Code ภายหลัง
     หรือ Programmer จะมือใหม่ หรือ จะลาออกสักกี่คน ก็ไม่กระทบกับ Project ที่ทำอยู่
 
  ***


   เชื่อหรือไม่ ? :
      Model ที่นำมาสอนนี้ สามารถช่วยให้เขียนโปรแกรม 1 Page สำหรับ Page ของ Profile
      ในการทำ  Insert , Update , Delete , Search
      เสร็จภายในเวลา 1 - 1.30 ชั่วโมง ถ้าเร็วหน่อย ก็ 45 นาที

    ***  สามารถพิสูจน์ด้วยตัวผู้เรียนเอง ***

 หากสนใจ ติดต่อที่ E-Mail  tt.look.forword@gmail.com, Mobile 09-09243584

ข้อมูลเกี่ยวกับผู้สอน (พอสังเขป)
การศึกษา
1. วิศวกรรมศาสตร์ สาขา วิศวกรรมแมคคาทรอนิกส์
2. วิทยาศาสตร์ สาขา วิทยาการคอมพิวเตอร์
การทำงาน
1. Freelance ระบบ งานเกี่ยวกับ Database ตอนเรียน คอมพิวเตอร์
    เช่น CRM, ERP เป็นต้น
2. Robot Control & Automation , Interface Machine กับ ระบบ 
     Database ผ่าน Protocal ต่างเช่น RS232 , RJ-45,
     RS485, TCP/IP เป็นต้น
3. Senior Programmer ทำระบบ GPS ของบริษัท จาก Netherland
4. Sernoir Programmer ทำระบบ ระบบ Call Center , Soft Phone  
    PABX, VOIP ให้กับ บริษัท Call Center
5. Programmer Analysis & Software Architecture ในการวางระบบ  
    Network VPN ระหว่าง Site ต่าง,
    ออกแบบระบบ Software สำหรับ ASP.MVC Famework 1.0, 2.0 
    ให้กับ บริษัท อสังหาริมทรัพย์
6. Programmer Analysis & Software Achitecture
     - ออกแบบ Framework and Design Pattern
        ด้วย ASP.NET MVC 3 และ 4
     - สอน Framework and Design Pattern ด้วย ASP.NET MVC 
        ให้กับ Developer ภายในบริษัท และ บริษัท ข้างนอก
     - Implement SOA, Single Sign On ,
        ระบบ Controll Application ผ่าน ศูนย์กลาง,  
        Bus System สำหรับ Web Service
     - Implement การทำงาน แบบ Agile ด้วย Scrum Process
  ให้ กับ บริษัท ผลิตตัว IC