sorkhemiri | سرخه میری
sorkhemiri | سرخه میری
خواندن ۲ دقیقه·۳ سال پیش

راهنمای تنبل بودن در مهندسی نرم‌ افزار!

توضیح کوتاهی در‌مورد interface segregation principle و این که چه کمی به ما میکنه؟

درخت ها نمونه ای از ساختار درختی!
درخت ها نمونه ای از ساختار درختی!

اگر با دنیای مهندسی نرم‌افزار آشنا هستید احتمالا اسم اصول SOLID به گوش‌تون آشناست. SOLID مخفف پنج قانون پایه‌ی مهندسی نرم‌افزار در پارادایم Object-Oriented است. که رعایت اونها کد شما رو توسعه پذیرتر و خوانا تر می‌کنه. در این مطلب توضیح کوتاهی در مورد I یا همون Interface Segregation Principle میدهم و امیدوارم مورد توجه‌تون قرار بگیره.

تنبل بودن بهتره!

در راستای تنبل بودن :)
در راستای تنبل بودن :)

دنیای نرم افزار همیشه در حال پیشرفت و توسعه است. پروژه ای که شما روش کار میکنید هم همین طور پس لطفا اشتباه برداشت. تنبل بودن یا Lazy بودن در مهندسی نرم افزار یعنی تا چیزی رو لازم نداریم بیانش نکنیم. اگر چیزی رو هنوز لازم نداری صداش نزن. پیاده سازیش نکن. حالا چرا؟

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

چطوری تو توسعه تنبل باشیم؟

تنبلی در جنگل توسعه نرم افزار!
تنبلی در جنگل توسعه نرم افزار!

بهترین راه برای تنبل بودن در مهندسی نرم‌افزار استفاده از Interface هاست. Interface ها به ما اجازه میدن کلاسی رو بسازیم براش متد تعریف بکنیم و همه جا معرفیش کنیم بدون این که پیاده سازیش کنیم. این عالیه! توسعه بدون توسعه. بیان کلی اون چیزی که توی ذهن‌مونه بدون این که مجبور به پیاده سازیش باشیم این اجازه رو بهمون میده که تا زمانی که مجبور نشدیم پیاده سازیش نکنیم.

حالا interface segregation principle چی میگه؟

این اصل خیلی ساده بیان میکنه هر وقت خواستی کلاسی تعریف کنی اول interface تعریف کن. و بعد که خواستی بیشتر توضیح بدی از اون interface اولیه ارث ببر و یک interface دیگه تعریف کن با جزییات بیشتر! اونقدر این کار رو انجام بده تا بالاخره مجبور به پیاده سازی اون کلاس بشی. کلاس های بعدی که تعریف میکنی یا زیر مجوعه یکی از این interface ها هستن یا باید براشون یک interface دیگه تعریف کنی. اگه به این شکل دقت کنی یک ساختار درختی تو پروژه به وجود میاره که خیلی در توسعه نرم افزار در آینده بهت کمک میکنه.

خوشحال می‌شم نظرتون رو راجع به این مطلب و مطالب گذشته بدونم و نقص های موجود در متنم رو با نظر شما اصلاح کنم.

مهندسی نرم افزارsolidکدcodeنرم افزار
اینجا قراره در مورد چیز هایی حرف بزنیم که یه برنامه نویس درست و حسابی باید بدونه (پیش فرضمون اینه سینتکس و روش های معمول رو همه جا میشه پیدا کرد) و گاهی هم چیز های با حال بسازیم یا معرفی کنیم
شاید از این پست‌ها خوشتان بیاید