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