چهارشنبه ۲۸ آذر ۰۳

برنامه نویسی ماژولار

ایزی پای لرن یه وبلاگ تخصصی در مورد زبان قدرتمند پایتون هستش

برنامه نویسی ماژولار

۱۶۲ بازديد



شاید برایتان پیش آمده باشد که هنگام کدنویسی در زمینه‌‌ی موضوع‌های مختلف، متوجه شده‌اید که برخی از کدها در اکثر موضوعات، مشترک هستند و فقط برخی از پارامترهای آن‌ها با هم متفاوت می‌باشند. به عنوان مثال فرض کنید برنامه‌ای در زمینه‌ی دریافت مشخصات، نمره‌ها، رشته و رتبه‌‌ی دانشجویان و محاسبه‌ی معدل و طبقه‌بندی آن‌ها براساس معدل، رتبه و رشته می‌خواهید بنویسید. مشاهده می‌کنید که برنامه برای دریافت و محاسبه‌ی پارامترهای مشخص شده برای همه‌ی دانشجویان مشابه است، روش ساده‌ی برنامه‌نوسی به این صورت است که برای هر دانشجو برنامه‌ی جداگانه‌ای نوشته شود که اصلا ایده‌ی جالبی نخواهد بود در این حالت اگر تعداد دانشجویان بسیار زیاد باشد تعداد دفعات کدنویسی تکراری امری بیهوده بوده و باعث خستگی و هدر رفتن وقت خواهد شد.

به عنوان مثال ساده‌ی دیگر فرض کنید که مدیر یک وب‌سایت فروشگاهی از شما خواسته است که برنامه‌ای بنویسید که آمار بازدید روزانه‌ی سایتش را مشخص کنید و براساس جنسیت تفکیک نمایید. همچنین از شما خواسته است که مشخص کنید چه تعداد از این افراد خرید انجام می‌دهدند. مدیر یک بیمارستان نیز از شما خواسته است برنامه‌ای بنویسید که اسامی افراد مراجعه کننده به اورژانس براساس جنسیت و نوع بیماری در برنامه وارد شود و برنامه بتواند تعداد افراد را مشخص نماید و آن‌ها را براساس جنسیت و نوع بیماری تفکیک نماید. یک برنامه‌نویس آماتور این دو برنامه را جدا از هم میبیند و برای هرکدام برنامه‌ای جدا می‌نویسد. این کار باعث کند شدن روند برنامه‌نویسی شده و باعث می‌شود در بازار رقابت برنامه‌نویسی این برنامه‌نویس نمی‌تواند با دیگر رقیبان، رقابت نماید. اگر به دقت به این دو برنامه‌ی به ظاهر متفاوت توجه نمایید متوجه خواهید شد که وجه مشترک دارند. شمارش تعداد افراد و تفکیک براساس یک سری پارامتر (در اولین برنامه تفکیک فقط براساس جنسیت می‌باشد؛ در برنامه‌ی دوم تفکیک براساس جنسیت و نوع بیماری است). این دو قسمت، وجه مشترک این دو برنامه هستند. در ادامه خواهیم آموخت که با استفاده از برنامه‌نویسی ماژولار چگونه می‌توان برنامه‌ی بهتری نوشت.



ماژول چیست؟


ماژول به انگلیسی ( module ) یا قطعه کد به مجموعه کدهایی گفته می‌شود که برای یک منظور و هدف خاص نوشته می‌شود و در یک ساختار پیچیده مورد استفاده قرار می‌گیرد.
ماژول نرم‌افزاری (software module) قطعه‌کد نسبتا کاملی است که توسط یک برنامه‌نویس، برنامه‌نویسی شده است و در پروژه‌های مختلفی مورد استفاده قرار می‌گیرد.
ماژول را می‌توان با استفاده از دستورات پایه‌ای نوشت یا از یک یا چند تابع ( Function ) نیز در داخل آن استفاده کرد. به خود تابع نیز مفهوم ماژول اطلاق می‌شود. به بیان ساده‌تر ماژول قسمت کوچکی از یک برنامه‌ی بزرگ و پیچیده است که برای هدف خاصی ایجاد شده‌است و با دریافت یکسری پارامتر به عنوان ورودی (ماژول می‌تواند حتی پارامتر ورودی هم نداشته باشد) به صورت مستقل کار می‌کند و به هدف خاصی که طراحی شده‌است منجر می‌شود.

اگر بخواهیم در حالت سخت‌افزاری (hardware) ماژول را تعریف کنیم، یک قطعه‌ی سخت‌افزاری جدا می‌باشد که در بیشتر سخت‌افزارها می‌تواند مورد استفاده قرار گیرد. به عنوان مثال کارت حافظه یک قطعه‌ی سخت‌افزاری ماژولاری می‌باشد که در سخت‌افزارهای مختلفی مانند کامپیوتر، گوشی موبایل و ... قابل استفاده است.




مفهوم برنامه‌نویسی ماژولار



مفهوم برنامه‌نویسی ماژولار این است که یک برنامه بنویسیم که از اتصال تعداد زیادی از اجزای کوچک تشکیل شده باشد. این اجزای کوچک همان قطعه کد می‌باشند که به این قطعه کدها، ماژول یا تابع (Function) گفته می‌شود و به این نوع کدنویسی، کدنویسی ماژولار (Modular) یا فانکشنال (Functional) گفته می‌شود.

برای پرهیز از تکرار و افزایش سرعت و بازدهی برنامه‌نویسی یک کد سنگین، پیچیده و طولانی بهتر است از برنامه‌نویسی ماژولار استفاده کنیم. در این نوع برنامه‌نویسی، ده‌ها، صدها یا هزاران ماژول کوچک در کنار یکدیگر کارهایی را انجام می‌دهند تا یک برنامه‌ی اصلی یا اپلیکیشن به فعالیت خود ادامه دهد.

به عنوان مثال برای کامل کردن تصویر یک پازل 1000 عددی، از 1000 تیکه‌ی کوچک استفاده می‌کنیم. این تیکه‌های کوچک هرکدام قسمتی از تصویر را تشکیل می‌دهند و مستقل از دیگر تکه‌ها هستند و با در کنار هم قرار دادن آن‌ها یک تصویر کامل می‌شود.



چگونه ماژولار برنامه‌نویسی کنیم؟



برنامه‌نویسی ماژولار یعنی تقسیم اپلیکیشن به چند قسمت کوچک و مستقل. برای این تقسیم کردن ابتدا باید با اپلیکیشنی که می‌خواهید بسازید و ویژگی‌های آن آشنایی کامل داشته باشید. بعد از اینکه قابلیت‌ها و ویژگی‌های اپلیکیشن خود را شناختید، باید آنها را یادداشت و دسته بندی کنید. حالا می‌توانید ببینید که یک اپلیکیشن بزرگ و کلی، دارای قسمت های ریز و درشت بسیاری است.
این قسمت‌های ریز و درشت همه‌ی ماژول هایی هستند که باید برای این اپلیکیشن تهیه شوند. اگر شما از قبل برنامه‌هایی را با روش ماژولار تولید کرده باشید، ممکن است بسیاری از ماژول‌های برنامه‌ی جدید، از قبل روی کامپیوترتان موجود باشد. آنهایی که موجود هستند را از لیست خط بزنید. ساخت برنامه‌ی جدید یعنی درست کردن ماژول‌های باقی مانده. تا جایی که می‌توانید آن‌ها را هم به قسمت‌های کوچک تبدیل کنید. یعنی نباید ماژولی وجود داشته باشد که خودش از چند ماژول کوچکتر تشکیل شده باشد.
این روش باعث می‌شود که مسئله‌ها و مشکلات بزرگ به چندین مشکل کوچک تبدیل شوند. سپس می‌توانید با راحتی بیشتر این مشکلات کوچک را حل کنید. در انتها هم همه ی بخش‌های کوچک را در کنار هم قرار می‌دهید و اپلیکیشن شما آماده ی تست، بررسی و در نهایت انتشار می‌باشد. البته یادتان باشد ماژول‌هایی که تولید می‌کنید را نگه دارید. ممکن است برای برنامه های بعدی به کارتان بیایند.

اکنون برگردیم به دو مثال ابتدایی. در مثال مربوط به محاسبه‌ی معدل دانشجویان و طبقه‌بندی آن‌ها براساس معدل، رتبه و رشته مشاهده می‌کنیم که این فرایند برای همه‌ی دانشجویان یکسان می‌باشد. پس می‌توان کد مورد نظر را یک بار به صورت یک ماژول نوشت و به تعداد دانشجویان آن را فراخوانی و تکرار نمود. البته در این مثال ساده فقط یک ماژول خواهیم داشت. در مثال دوم می‌توانیم یک ماژول بنویسیم که تعداد افراد را بشمارد (counter)، براساس جنسیت تفکیک نماید. این ماژول با تغییر اندکی در مثال سوم نیز می‌توانیم استفاده کنیم و از کدنویسی دوباره پرهیز نماییم.



انواع ماژول


ماژول‌ها را در دو نوع کلی می‌توان دسته‌بندی کرد:
  1. ماژول‌هایی که به صورت پیش‌فرض به همراه پایتون نصب شده‌اند. مانند توابع ریاضی sin، cos و ... .
  2. ماژول‌هایی که خود برنامه‌نویس برای هدف خاصی آن را کدنویسی کرده و شخصی سازی کرده‌است.


مزایای برنامه‌نویسی ماژولار چیست؟
 

سرعت زیاد

ماژولار بودن برنامه‌نویسی به بالا رفتن سرعت ساخت اپلیکیشن کمک زیادی می‌کند. بعد از ساختن اولین اپلیکیشن خود به این روش، ماژول‌های نوشته شده را نگه داری می‌کنید. برای ساختن برنامه‌های بعدی، دیگر لازم نیست همه‌ی قسمت‌ها را از صفر کدنویسی کنید و بسازید. این روند سریعتر از ساختن دوباره‌ی همه چیز است. هرچه برنامه‌های بیشتری بسازید، ماژول‌های بیشتری در اختیار دارید و ساخت موارد بعدی سریعتر اتفاق می افتد.

 

آسان تر کردن و خطایابی بهتر

ماژول‌ها یک اپلیکیشن بزرگ و مشکل را به قسمت‌های کوچک و آسان تبدیل می‌کند. ممکن است در هنگام ساختن برنامه به مشکلات پیچیده‌ای برخورد کنید. راه حل نجات از مشکلات پیچیده و حل کردن آنها این است که به بخش‌های کوچک و ساده تقسیم بشوند. ماژولار بودن هم دقیقا همین کار را در تولید اپلیکیشن‌های سخت و پیچیده انجام می‌دهد. بنابراین می‌تواند فرآیند ساخت اپلیکیشن و خطایابی را ساده‌تر کند.

 

آپدیت و تغییر راحت‌تر

ماژول‌ها می‌توانند به راحتی به روز شوند. گاهی ممکن است قوانین برنامه‌نویسی تغییر کنند، ویژگی‌های جدید ساخته شوند یا به هر دلیلی بخواهید یک قسمت را تغییر بدهید. فقط کافیست ماژول‌های خودتان را به روز رسانی کنید. از آن به بعد همه ی اپلیکیشن‌های بعدی با تغییراتی که اعمال کرده‌اید ساخته خواهند شد. همچنین می‌توانید آنها را جایگزین ماژول‌های قدیمی، در اپلیکیشن‌های گذشته بکنید.

 

تست آسان تر

ماژولار بودن زمان تست اپلیکیشن را کاهش می‌دهد. به هرحال شما با قسمت‌هایی رو به رو هستید که قبلا یک یا چند بار در اپلیکیشن‌های مختلف تست شده‌اند. عملکرد آنها کاملا قابل اعتماد است و نیازی نیست که دوباره مورد آزمایش قرار بگیرند. یعنی فقط کافیست ماژول‌های جدید اپلیکیشن را آزمایش و اشکال یابی کنیم تا مراحل تست تمام بشوند.



-------------------------------------------------------------
برای مشاهده‌ی مطالب بیشتر در کانال تگرام ایزی پای لرن عضو شوید.

زبان برنامه نویسی سطح پایین و بالا چیست؟

در توصیف یک زبان برنامه نویسی، اصطلاحاتی مانند سطح پایین و بالا را خواهید شنید.

این اصطلاحات به طور کلی نشان دهنده میزان استفاده از زبان مورد نظر در نرم افزار هستند.

ارسال نظر آزاد است، اما اگر قبلا در فارسی بلاگ ثبت نام کرده اید می توانید ابتدا وارد شوید.