توسعه با طعم شی‌ گرایی - مقدمه

تسلط به زبان برنامه‌نویسی جاوا باعث باز شدن درب‌های جدیدی در حرفه و مهارت برنامه نویسان و مهندسی نرم‌افزار می‌شود. بشخصه تا ده سال پیش هرگز در رؤیا و خواب هم نمی‌دیدم بتونم در خصوص برنامه‌های تلفن همراه، حوزه IOT حتی هوش مصنوعی و .... به‌عنوان برنامه‌نویس و مشاور وارد شوم. اگر بخواهم تاریخچه‌ای از خودم بگم بعد از حدود 4-5 سال کار با php، تقریباً از 8 سال پیش جاوا رو شروع کردم تقریباً پنج سال طول کشید تا درک درستی از آن پیدا کنم. چیزهایی که معمولاً در کتاب‌ها می‌خواندم و از اساتید دانشگاه و دوره‌ها می‌شنیدم، هیچ کمکی نمی‌کرد. وقتی اولین توسعه‌ام را شروع کردم ، احساس می‌کردم به قول مرد هزارچهره یک فرد اشتباهی درجایی اشتباه هستم. هرروز گیج‌ترمی شدم، من واقعاً نمی‌دانستم چه‌کار می‌کنم از اینکه که خیلی از همکارانم می‌فهمند و من نمی‌فهمیدم...تا این‌که فهمیدم مشکل ریشه دانش برنامه‌نویسم هست، ابتدای باید خوب مفاهیم شیءگرایی رو می‌فهمیدم.


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

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

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

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

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

پس اگر آماده‌اید شروع کنیم...

مقاله بعدی : متوسعه با طعم شی‌ گرایی (1) - شی گرایی یا رویه ای (1)