الگوي طراحي MVC

 

طراحي معماري نرم‌افزار يكي از مهم‌ترين مراحل توسعه اين بخش بوده و اهميت آن به اندازه معماري ساختمان است، طوري كه وجود اشتباه هر قدر كوچك در معماري ساختمان مي‌تواند عواقب خطرناكي داشته باشد، از اين رو انتخاب الگو‌هاي طراحي مناسب براي معماري يك پروژه از اهميت ويژه‌اي برخوردار است.خوشبختانه در دنياي نرم‌افزار ، معماري‌ و الگوهاي متفاوتي براي توسعه نرم‌افزارt به وجود آمده‌ است، اين كه از چه الگويي و كجا و چگونه استفاده شود به بررسي و استفاده از تجربه شخصي و تجربه ديگران نياز دارد.شاخصه‌هاي زيادي براي طراحي اين الگوها در نظر گرفته مي‌شود كه چند مورد از آنها را تيتروار بيان مي‌كنيم:

۱ ـ نگهداري از سيستم: سيستم بايد طوري طراحي شود تا گروه توسعه‌دهنده يا تيم‌هاي ديگر بتوانند خطاها و باگ‌هاي آن را براحتي در كمترين زمان ممكن رفع كنند.

۲ ـ قابليت استفاده مجدد: يك طراحي خوب بايد بتواند در درازمدت هم قابليت توسعه داشته باشد و قابليت‌هاي جديد براحتي و بدون كمترين خللي در بقيه اجزا به سيستم اضافه شود.

۳ ـ بازد‌هي سيستم: بخشي از بازدهي سيستم مربوط به چارچوب كاري و پلتفرم مورد استفاده است؛ اما يك الگوي مناسب با تقسيم اجزا و ايجاد رابطه منطقي بين آنها مي‌تواند در بازدهي سيستم تاثير بسزايي داشته باشد.

۴ ـR apid Application Developmen) tRAD) : يك معماري خوب مي‌تواند سرعت توسعه را به طرز قابل ملاحضه‌اي افزايش دهد. حذف عمليات تكراري و ساده باعث مي‌شود تمركز تيم توسعه‌دهنده به بخش‌هاي اساسي سيستم و تامين امنيت برنامه معطوف شود.

يكي از اين الگوهاي طراحي نرم‌افزار MVC نام دارد. MVC روشي مدرن و به‌روز براي معماري نرم‌افزار است. درابتدا توضيح مختصري درباره الگوي معماري نرم‌افزار به روش MVC توضيح داده و در ادامه اشاره‌اي به ASP.net MVC خواهيم داشت.طراحان نرم‌افزار هنگام طراحي معماري سيستم‌هاي نرم‌افزاري، الگوهاي مختلفي را براي پياده‌سازي ساختار نرم‌افزار در پيش مي‌گيرند. يكي از اين الگوهاي معماري نرم افزار MVC يا Model View Controller نام دارد.MVC نرم‌افزار را به سه قسمت Model ، View و Controller تقسيم مي‌كند كه هريك از آنها وظيفه خاصي را در چرخه حيات نرم‌افزار بازي مي‌كنند.

Model (مدل)

مفاهيم استفاده‌شده در نرم‌افزار تحت عنوان مدل‌ها ايجاد مي‌شود. در MVC هريك از كلاس‌هاي ما يك مدل به شمار مي‌رود كه البته در منطق برنامه نقشي را ايفا نمي‌كند. ارتباط با پايگاه‌داده هم در مدل صورت مي‌گيرد و درواقع مي‌توان گفت اين مدل‌ها پل ارتباطي بين نرم‌افزار و پايگاه‌داده نيز است.

View (نما)

نما درواقع رابط كاربري نرم‌افزار است و مي‌توان گفت فرم‌هاي نرم‌افزار و تمام چيزهايي كه كاربر با آنها در ارتباط است، تحت عنوان نما در نرم‌افزار قرار مي‌گيرد. نما نيز همانند مدل هيچ نقشي در منطق كلي نرم‌افزار ندارد و تنها به‌عنوان يك پل ارتباطي بين كاربر و ساير بخش‌هاي نرم‌افزار عمل مي‌كند. درواقع، نما هيچ‌گونه تصميم‌گيري انجام نمي‌دهد و فقط شماي بيروني نرم‌افزار است.

Controller (كنترل‌كننده)

كنترل‌كننده‌ها، قلب تپنده نرم‌افزارهاي MVC محسوب مي‌شوند. تمام تصميم‌گيري‌ها و منطق نرم‌افزار در كنترل‌كننده قرار مي‌گيرد و درواقع پل ارتباطي مدل و نماست. با بياني ساده مي‌توان گفت كنترل‌كننده تصميم مي‌گيرد چه داده‌اي از كدام مدل دريافت و به كدام نما براي نمايش ارسال شود.

اما چرا اين ساختار براي طراحي توسعه برنامه‌هاي وب مناسب بوده و چه مشكلاتي را حل مي‌كند؟

در پاسخ به اين سوال مي‌توان به چند دليل زير اشاره كرد:

MVC توسعه نرم‌افزار را به يك فرآيند بسيار ساده تبديل مي‌كند.

MVC فرآيند آزمون واحدها را بسيار راحت مي‌كند. MVC كار گروهي همزمان را براي تيم طراح و برنامه‌نويس هموار مي‌سازد.

MVC با جدا سازي منطق برنامه از نما و قرار دادن آن در كنترل‌كننده، خوانايي كدها را بسيار بالا مي‌برد.

مهم‌تر از همه اين‌كه MVC به شكل شگفت‌انگيزي حجم كد را كاهش مي‌دهد.

MVC در هر زبان برنامه‌نويسي قابل پياده‌سازي است؛ حتي در جاوااسكريپت. اما هم‌اكنون از اين روش بيشتر براي زبان‌هاي سمت سرور مثل PHP و ASP.net و Ruby استفاده مي‌شود و در كل، MVC روشي بسيار كارا براي تيم‌هاي بزرگ‌تر است. هرچه تيم بزرگ‌تري داشته باشيد مزاياي اين الگو براي شما ملموس‌تر خواهد بود. براساس تجربه، MVC براي پياده‌سازي پروژه‌هاي كوچك توصيه نمي‌شود و استفاده از آن در پروژه‌هاي كوچك به استفاده از پتك براي كشتن پشه تشبيه مي‌شود!





تاريخ : چهار شنبه 13 دی 1391برچسب:, | | نویسنده : مقدم |