نکته طراحی سیستم - مسئولیت تصمیم‌های مهم رو خودتون بر عهده بگیرید

به نام خدای حسین (ع) :black_heart:

برای اینکه بهتر در جریان این مطلب قرار بگیرید، می‌تونید لینکی که اینجا قرار می‌دم رو مطالعه کنید.
یه نکته در مورد دیتابیس mysql/mariadb روی scale

اولا اینکه هدف من از به اشتراک گذاشتن چنین نکات ریزی اینه که سه چهارتا کلمه جدید رو گوشه ذهنتون بندازه، که اگه یوقت حین انجام یه پروژه و حل یه چالش بهش احتیاج داشتید بتونه بهتون ایده بده. :bulb:

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

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

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

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

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

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

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

2 پسندیده