آموزش متنی متدولوژی های برنامه نویسی (Programming Methodologies)

در این قسمت از وب سایت پرووید یک آموزش متنی دیگر با عنوان آموزش متنی متدولوژی های برنامه نویسی (Programming Methodologies) را به شما تقدیم می کنیم. زمانی که نرم افزارها توسعه داده می شوند که بتوانند مشکلات دنیای واقعی افراد؛ شبیه مدیریت انبار یا سیستم های صدور حقوق، ثبت نام دانشجویان، نتایج آزمون ها و موارد دیگر را ذخیره و یا پردازش کنند نیاز است که با داده های پیچیده و کدهای بسیار گسترده ای کار کنند.متدولوژی برنامه نویسی و یا همان programming methodologies روشی برای تجزیه و تحلیل کردن این مشکلات و مسائل پیچیده با برنامه ریزی کردن روند توسعه نرم افزار و کنترل کردن فرآیند توسعه آن می باشد. در این رابطه توصیه می‌کنیم از آموزش متنی SDLC یا فرآیند توسعه نرم افزار دیدن کنید. در این دوره آموزشی ما در رابطه با روش های بالا به پایین و یا اصطلاحاً top down در برنامه نویسی که تحت عنوان modular programming یا برنامه نویسی ماژولار نیز شناخته می‌شوند صحبت خواهیم کرد. علاوه بر این در رابطه با جمع آوری نیازمندی ها، تعریف مسئله و تشخیص یک راهکار یکتا برای مسئله مطرح شده صحبت خواهیم کرد. بعد از تمامی این مباحث در رابطه با best practiceها یا همان بهترین روش های مربوط به بهینه سازی کد که تحت عنوان code optimization نیز شناخته می‌شوند صحبت خواهیم کرد.انواع متدولوژی های برنامه نویسیمی توان برای متدولوژی های برنامه نویسی انواع بسیار بیشماری را مطرح کرد که در روند توسعه نرم افزار مورد استفاده قرار می‌گیرند اما در این قسمت در رابطه با مهمترین آنها صحبت خواهیم کرد.متدولوژی برنامه نویسی proceduralدر این متدولوژی یک مسئله به پروسیجرهای مختلف شکسته می شود. منظور از پروسیجر روند انجام دادن کاری است. به عبارت دیگر یک پروسیجر یک تکه کد است که یک وظیفه تک را انجام می دهد. پس از آن تمامی پروسیجرها در کنار یکدیگر قرار می گیرند تا برنامه نهایی تشکیل بشود.این متدولوژی برای نوشتن برنامه های کوچک که سطح کمی از پیچیدگی در آنها وجود دارد مناسب می باشد. مثالی از یک کاربرد خوب و کاربرد مناسب از این متدولوژی نوشتن یک ماشین حساب است که عملیات جمع، تفریق، تقسیم و ضرب را انجام می دهد. دیگر عملیات از قبیل جذر گرفتن، مقایسه کردن و به توان رساندن نیز می‌توانند برخی از کاربردهای این ماشین حساب باشند. تمامی این operationها و یا عملیات می‌توانند به عنوان یک پروسیجر جداگانه توسعه داده شوند و سپس در برنامه اصلی، هر پروسیجر بر اساس انتخاب کاربر مورد استفاده قرار می‌گیرد.متدولوژی برنامه نویسی شی گرا (object oriented programming)یکی دیگر از متدولوژی های بسیار محبوب و معروف و البته پر کاربرد، برنامه نویسی شی گرا است. در ابتدا توصیه می‌کنیم از بسته ی آموزش ویدئویی شی گرایی در سی شارپ و بسته ی آموزش ویدئویی شی گرایی پیشرفته در سی شارپ استفاده کنید.بر اساس این متدولوژی، راه‌حل ارائه شده بر اساس entity ها که به فارسی موجودیت ترجمه می‌شوند بنا نهاده می شود. البته به جای واژه entity از واژه object به معنی شیء نیز استفاده می گردد. این object ها و یا entity ها بخشی از مسئله پیش روی ما هستند. در رابطه با نحوه ذخیره کردن داده های مربوط به entity ها و اینکه این entity ها چگونه با یکدیگر رفتار و یا ارتباط برقرار می کنند تا نهایتاً برنامه ایجاد گردد، راه حل‌هایی ارائه شده است. به عنوان یک مثال می توانید توسعه یک نرم افزار صدور فیش حقوقی را در نظر بگیرید که در آن entityهایی از قبیل کارفرمایان، کارمندان، ساختار حقوقی و قوانین مرخصی وجود دارد. این قوانین و objectها و entityها در کنار یکدیگر سیستم نهایی را تولید می‌کنند.متدولوژی برنامه نویسی تابع گرا (sub programming)یکی دیگر از متدولوژی های برنامه نویسی، برنامه نویسی تابع گرا است. در همین ابتدای کار توصیه می‌کنیم از آموزش متنی Functional Programming و بسته ی آموزش ویدئویی برنامه نویسی تابعی در سی شارپ استفاده کنید.بر اساس این متدولوژی، برای یک مسئله مطرح شده، راه حل با شکستن برنامه به قسمت های کوچک تر که function و یا تابع نام میگیرند ایجاد می‌شود. هر واحد یک وظیفه را انجام می‌دهد و اصطلاحاً self sufficient است. منظور از self sufficient و یا خود کامل بودن به این معناست که تمامی موارد مورد نیاز تابع در خود آن قرار گرفته است. پس از آن این واحدهای کوچکتر با یکدیگر تعامل برقرار می کنند تا نهایتا نرم افزار نهایی تولید بگردد. یک مثال از این متدولوژی توسعه نرم افزار سیستم پردازش فیش حقوقی است که می‌تواند توابع متعدد و متنوعی را برای نگهداری اطلاعات کارمندان، محاسبه حقوق ها، محاسبه مالیات، محاسبه کسری مرخصی ها و بسیاری موارد دیگر در قالب function داشته باشندمتدولوژی برنامه‌نویسی منطقی (logical programming)بر اساس این متدولوژی، مسئله پیش رو به واحدهای منطقی و نه تابعی شکسته می شود. برای مثال در سیستم مدیریت دانشگاه کاربران، نقشه های تعریف شده ازقبیل؛ مدرس، مسئول آزمایشگاه، هماهنگ کننده و موارد دیگر دارند. بنابراین نرم افزار می تواند به واحدهای کوچکتر بر اساس نقش کاربران و یا همان user rules شکسته شود. هر کدام از کاربران نیز می توانند سطوح دسترسی و مجوزهای مختلفی داشته باشند.توسعه دهندگان نرم افزار می تواند برای توسعه یک سیستم نرم‌افزاری از یک و یا ترکیبی از چند مورد از این متدولوژی ها استفاده کنند تا بتوانند نرم افزار نهایی را به بهترین شکل ممکن توسعه دهند. دقت کنید که در هر کدام از این متدولوژی های مطرح شده، مسئله به قسمت های کوچک تر شکسته می‌شود. برای انجام این کار برنامه نویس می تواند از دو روش بالا به پایین و یا اصطلاحاً top down و پایین به بالا و یا اصطلاحاً bottom up استفاده کنند.مخاطب این دوره آموزشیاین دوره آموزشی برای تمامی برنامه نویسانی که می خواهند از متدولوژی های مختلف برنامه نویسی و نحوه طراحی کردن سولوشن های کاربردی برای یک مسئله اطلاعات مفیدی را کسب کنند بسیار مناسب می باشد. دانش شما در یک زبان برنامه نویسی از قبیل سی شارپ می تواند در این دوره آموزشی بسیار پرکاربرد باشد. به این منظور توصیه می‌کنیم که از دیدن کنید.پیش نیازهای این دوره آموزشیبرای این دوره آموزشی پیش نیاز خاصی تعریف نکرده‌ایم. ذوق و شوق شما به یادگیری و نوشتن برنامه های مناسب و صحیح یکی از پیش نیازهای اصلی این دوره آموزشی است. این دوره آموزشی می تواند تمامی برنامه نویسان را یاری کند تا بتوانند در زبان برنامه نویسی مورد نظر خود کدهای بهتر و بهینه تری را بنویسند.از شما دعوت می کنیم که در این دوره آموزشی نیز یک بار دیگر با وب سایت پرووید همراه باشید تا بتوانید متدولوژی های برنامه نویسی و یا همان Programming Methodologies را فرا بگیرید