در این دوره آموزشی که به صورت رایگان از وبسایت پرووید منتشر می شود در رابطه با مهمترین اصول و نکات کلیدی توسعه و طراحی نرم افزارهای موفق صحبت خواهیم کرد. حقیقت تلخ این است که دلیل شکست بسیاری از پروژه های نرم افزاری عدم پیاده سازی اصولی است که در حوزه مهندسی نرم افزار مطرح شده اند. دلیل عدم پیاده سازی چنین اصولی اغلب عدم دانش کافی توسعه دهندگان و یا صرفه جویی در هزینه و زمان می باشد. کتاب های بسیار زیادی در این باره نوشته شده اند که شاید مطالعه کردن همه ی آنها برای تمامی دوستان امکان پذیر نباشد. از همین رو در این سری آموزشی چکیده ای از مطالب ارزشمند موجود در این کتاب ها را به زبان فارسی به شما ارائه می کنیم.
اصول و نکات طراحی در توسعه نرم افزارهای موفق
یکی از ویژگی های مهم یک نرم افزار موفق قابلیت تغییر آن می باشد. به عبارت دیگر نرم افزاری که نتواند بر اساس تغییرات معمول در نیازمندیها خود را تغییر بدهد و با نیازمندی های جدید وفق پیدا کند محکوم به شکست است. برای اینکه یک نرم افزار به صورت نرم پیاده سازی بشوند میبایست قابلیتهای متعددی داشته باشد و نکاتی در طراحی آن لحاظ به گردد. در غیر اینصورت امکان تبدیل شدن نرمافزار به تودهای از کدها که قابلیت نگهداری ندارند بسیار زیاد است. ایجاد تغییر در چنین توده ای از کد کاملاً از بین میرود و برنامه نویسان نهایتا مجبور به کنار گذاشتن چنین نرمافزاری خواهند بود.
اصول SOLID و Inversion of Control در توسعه نرم افزارهای موفق
الگوهای طراحی در توسعه نرم افزارهای موفق
اهمیت کدنویسی تمیز در توسعه نرم افزارهای موفق
اهمیت نوشتن تست در در توسعه نرم افزارهای موفق
یکی دیگر از موضوعات بسیار مهم که در رابطه به نرم افزارهای نرم مطرح می شود قابلیت تست پذیری و پوشش دادن کدهای نوشته شده با تست های مناسب می باشد. استفاده کردن از فریم ورک هایی از قبیل xUnit.NET و نوشتن Data Driven Test ها و بررسی Test Driven Development ها در این دوره آموزشی در دستور کار قرار گرفته اند. استفاده کردن از تکنیکهایی برای Mock کردن و مواردی از قبیل Mock ها و Stub ها و Fake ها و Dummy ها و Test Double ها در آموزش پیشرو لحاظ گردیده اند. برای یادگیری مفاهیم مربوط به Testing به صورت کاملاً عمیق تر توصیه میکنیم که از آموزش های مختلف وب سایت پرووید در این رابطه استفاده کنید. یک نقطه شروع مناسب میتواند آموزش توسعه تست محور Test Driven Development TDD پروژه محور برای برنامه نویسان سی شارپ باشد.
مخاطبین این دوره آموزشی
این دوره آموزشی برای تمامی مهندسین نرم افزاری تنظیم شده است که میخواهند مهمترین اصول و نکات طراحی و توسعه نرمافزار را فرا بگیرند. تمامی دانشجویان رشته مهندسی نرم افزار و افرادی که در حوزههای تجاری فعالیت میکنند میتوانند از مخاطبین این دوره آموزشی بسیار ارزشمند به حساب بیآیند. علاوه بر این اگر شما در حوزه برنامه نویسی فعالیت اندکی داشته اید و میخواهید مطالب تخصصی را فرا بگیرید می توانید از مطالب این دوره آموزشی استفاده کنید.
پیش نیازها
به منظور استفاده هر چه بهتر از مطالب مطرح شده در این دوره آموزشی می بایست دانش اندکی در رابطه با توسعه نرمافزار و یک زبان برنامه نویسی از قبیل سی شارپ داشته باشید. مفاهیمی که در این دوره آموزشی مطرح میشوند برای افرادی مناسب است که در سطح نسبتا پیشرفته برنامه نویسی قرار دارند و میخواهند با تکنیک های مناسب توسعه نرمافزارهای موفق آشنا بشود. تمامی افرادی که می بایست نرمافزارهای موفقی را تولید کرده و یا به عنوان مدیران پروژه فعالیت کنند میتوانند جز مخاطبین این دوره آموزشی به حساب بیایند. علاوه بر این، افرادی که اندکی با زبان برنامه نویسی سی شارپ آشنا هستند و میخواهند موارد اصلی مربوط به توسعه نرمافزارهای موفق را فرا بگیرند میتوانند از مطالب مطرح شده در این آموزش نهایت استفاده را ببرند. در پایان توصیه میکنیم از آموزش سی شارپ دات نت در ویژوال استادیو و آموزش شی گرایی OOP در سی شارپ استفاده کنید.