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