Pages

Monday, November 21, 2011

Model-View-Controller (MVC) ក្នុង​ការ​បង្កើត Web Application

អ្វីទៅជា MVC?
MVC (មកពីពាក្យពេញថា Model-View-Controller) គឺជា​គំរូ​សម្រាប់​ការ​បង្កើត application ដែល​ចែកជាបី​ផ្នែក​ធំៗ​គឺ៖
1. Model ៖ ជាអ្នក​ធ្វើការ​ជាមួយ data ។
2. View ៖ ជាអ្នក​បង្ហាញ​លទ្ធផល ដែល​បានមកពី data របស់ model ។
3. Controller ៖ ជាអ្នកទទួលខុសត្រូវលើការ request របស់អ្នក​ប្រើ ហើយ​បញ្ចូន​ការ request ទាំងនោះ​ទៅ View និង Model ដែល request ត្រូវការ​ប្រើ ។ 
​ដំណើរ​ការនៃការ​ធ្វើការ request របស់ Application ​ដែល​ប្រើ​ MVC
ខាងលើនេះជា​ដំណើរ​ការរបស់ MVC ដែល​បង្ហាញ​ជាគោលធំៗ ។
ឥឡូវខ្ញុំសូមនិយាយ​លម្អិត​ពី​ដំណើរ​ការរបស់ MVC ជាមួយនឹង​ឧទាហរណ៍ជាក់ស្តែង ។ មុននឹងនិយាយពីឧទាហរណ៍​នេះ​សូមមើលរូប​ខាងក្រោម​
​ដំណើរ​ការនៃការ request របស់ MVC
ឧទាហរណ៍៖
• អ្នក​ប្រើ​បើក browser រួចវាយ URL http://mysite.com/video/show/15 (នេះជាការ request របស់អ្នក​ប្រើ​)
• Web server (ដួចជា Apache, IIS, WEBrick ។ ល ។) ជាអ្នកទទួល request របស់អ្នក​ប្រើ រួច​បញ្ចូន (routes) ទៅ controller ដែល​ត្រូវនឹងការ request (default route pattern គឺ “/controller/action/id”) ដែល​ក្នុង​ករណី URL ខាងលើនេះគឺ controller = video, method = show, id = 15 ។ បន្ទាប់មក web server ប្រើ dispatcher ដើម្បី​បញ្ចូលទៅ controller “video” រួចហៅ method “show” ដោយបោះ​តម្លៃ “15” ទៅ​ឱ្យ parameters id ។
• Controllers ជាអ្នក​ដំណើរ​ការ parsing user requests, data submissions, cookies, sessions និង “browser stuff” ។ ក្នុង​ករណីរបស់យើង method “show” ក្នុង controller “video” ដឹងពីការងាយ​ដែល​ត្រូវ​ស្វែងរក video ដោយវាទៅសួរ model ដើម្បី​រក video ដែល​មាន id = 15 សម្រាប់​ផ្ដល់​ឱ្យ​អ្នក​ប្រើ ។
• Models គឺជាកូដ classes ដែល​ទាក់ទងទៅ database ដែល​ធ្វើការ​ដូចជា store and validate data, perform the business logic និង​ការងារ​ផ្សេងទៀត​ទាក់ទងនឹង data ។ ក្នុង​ករណីនេះ model នឹង​ទាញយក video ដែល​មាន id = 15 ពី database ។
• Views គឺជាអ្វី​ដែល​អ្នក​ប្រើ​នឹងឃើញ (​ប្រើ HTML, CSS, XML, Javascript, JSON) ។ ក្នុង​ឧទាហរណ៍នេះ controller នឹង​ឱ្យ video id = 15 ទៅ view ដែល​មាន​ឈ្មោះ “show” ដើម្បី​បង្ហាញ ។
• Controller បញ្ចូន​មកវិញ​នូវ body (HTML, XML, etc.) និង metadata (caching headers, redirects) ទៅ server ។ Server បញ្ចូល data ខាងលើចូលគ្នារួច​បញ្ចូន​ទៅអ្នក​ប្រើ ។
និយាយសង្ខេបមក MVC គឺជារបៀប​ក្នុង​ការ​បង្កើត application មួយ​ប្រភេទ ដែល​បែងចែកការសរសេរកូដ ជាបី​ផ្នែក​ធំៗ​គឺ Model, View និង Controller ។
នាពេល​បច្ចុប្បន្ន​នេះ MVC ត្រូវបាន​ប្រើ​យ៉ាង​ច្រើន ក្នុង​ការ​បង្កើត Web Application ជាពិសេស​ប្រើ​ក្នុង Web Framework ដែល​លោកអ្នក​នឹងឃើញ Web Framework ទាំងនោះ​នៅ​ខាងក្រោម​នេះ ។
ហេតុអ្វីត្រូវ​ប្រើ MVC?
​ដោយសារ​តែ MVC គឺជា design pattern ដែល​ធ្វើ​ឱ្យ application ងាយស្រួល​ក្នុង​ការថែទាំ, បែកចែកកូដ និង ពន្លឿន​ក្នុង​ការ​បង្កើត តាមរយៈ​ការកាត់​បន្ថយ​ការសរសេរកូដដ​ដែល​ៗ ។ MVC បំបែក application ទៅជា ៣ ផ្នែក​គឺ models, views, និង controllers ដែល​អាច​ឱ្យ developers និង designers ធ្វើការ​នៅលើ application តែមួយបាន​យ៉ាង​ល្អ ដោយការកែរបស់ developers និង មិនប៉ះពាល់ដល់ designer នោះទេ ។
លើសពីនេះ MVC ជួយ​លោកអ្នក​ងាយស្រួល​ក្នុង​ការ debug ដោយភាគ​ច្រើន​នៃ error គឺ​ទាក់ទងនឹង database ដូចនេះ developer គ្រាន់តែ​មើល​ក្នុង model របស់ URL ដែល request ដោយមិនបាច់ស្មុគស្មាញនឹងកូដនៃការ design នោះទេ ។
ផលវិបាក​ក្នុង​ការ​បង្កើត Web Application ជាមួយ MVC
​តាមរយៈ​អត្ថបទខាងលើ​លោកអ្នក​បានឃើញពីភាពល្អ និង ងាយស្រួល​របស់ MVC រួចហើយ ។ សម្រាប់​លោកអ្នក​ដែល​មិន​ដែល​ជួប MVC ប្រាកដជាពិបាកយល់​ដំណើរ​ការ និង ការសរសេររបស់វាជាក់ជាមិនខាននោះទេ ។ ប៉ុន្តែ​ប្រសិនបើ​លោកអ្នក​អាច​បង្កើត application ជាមួយ MVC ដោយខ្លួនឯងបានម្តង នោះ​លោកអ្នក​ប្រាកដជាមិនចង់សរសេរកូដតាមរបៀបចាស់ ដែល​អ្នកធ្លាប់សរសេរជាយូរមកហើយនោះទេ ។
កូដ Structure របស់ MVC
​ខាងក្រោម​នេះជា structure របស់ MVC តាម​បច្ចេកវិទ្យា​នីមួយ​ៗ​
Structure របស់ CakePHP ដែល​ប្រើ MVC
 
Structure របស់ RubyOnRails ​ដែល​ប្រើ MVC
Web Framework ដែល​ប្រើ​ប្រាស់ MVC
នាពេល​បច្ចុប្បន្ន​នេះ Web Frameworks ស៊េរីថ្មីៗ​ស្ទើរតែ​ទាំងអស់​បាន​ប្រើ​ប្រាស់ MVC ជា architecture pattern សម្រាប់ application ផ្សេងៗ​លើ framework ទាំងនោះ ។
Web Frameworks ដែល​ប្រើ MVC មាន​ដូចជា​៖
• CakePHP (PHP) ៖ http://cakephp.org 
• Zend Framework (PHP) ៖ http://framework.zend.com 
• Yii (PHP) ៖ http://www.yiiframework.com 
• CodeIgniter (PHP) ៖ http://codeigniter.com 
• Symfony (PHP) ៖ http://www.symfony-project.org 
• ASP.NET MVC ៖ http://www.asp.net/mvc 
• Spring Framework (Java) ៖ http://www.springsource.org 
• RubyOnRails (Ruby) ៖ http://rubyonrails.org 
• Django (Python) ៖ http://www.djangoproject.com 
• Catalyst (Perl) ៖ http://www.catalystframework.org 
• និង Frameworks ជា​ច្រើន​ទៀត
ក្រៅពី Web Frameworks ខាងលើ ក៏​មាន​នូវ​ប្រព័ន្ធ​របស់ Web ជា​ច្រើន​ទៀត ដែល​មាន​ជម្រើស​ក្នុង​ការ​បង្កើត​ដោយ​ប្រើ MVC ដូចជា​៖ Facebook Application Development, Drupal និង WordPress ជំនាន់​ចុងក្រោយ ។
​ចំណែក​ឯ Joomla វិញ នៅ​ជំនាន់ 1.6 នេះគឺ​តម្រូវ​ឱ្យ​អ្នក​បង្កើត Component ប្រើ MVC តែម្តង ៕

0 comments:

Post a Comment

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Laundry Detergent Coupons