توی این درسنامه به ویژگی های کلی اصول نرم افزار می پردازیم
اصل Sepration of concerns برنامه رو باید به طوری به قسمت های مجزا تقسیم کرد که هر بخش مسئولیت قابل فهم خودش رو داشته باشه مشخصه اگه اینطوری کد بنویسیم درک و توسعه برنامه خیلی راحت تره
اصل DRY (Don't Repeat Yourself) سعی کن کد ها رو طوری بنویسی بجای اینکه کد جدید وارد برنامه کنی از کد های قبلی استفاده کنی البته برای رعایت کردن این اصل باید تابع ها و کلاس ها رو طوری بنویسی که قابلیت Reusability داشته باشه (قابلیت استفاده مجدد) البته حواستون باشه Reusability بیش از حد هم باعث گنگ شدن برنامه می شه باید این اصل رو تا جایی رعایت کنیم که کارایی یک عضو مشخص و قابل فهم باشه
یه مثال ساده از پایتون بزنیم:
تابع add یک عدد به نام x را میگیرد و یک تابع داخلی به نام add_y را برمیگرداند. تابع add_y عدد دوم y را میگیرد و مجموع x و y را برمیگرداند. وقتی add(5) را صدا میزنیم، تابع add_y را با x برابر با 5 برمیگرداند. وقتی add_5(10) را صدا میزنیم، تابع add_y با y برابر با 10 فراخوانی میشود و نتیجهی مجموع 5 و 10 که برابر با 15 است را برمیگرداند.
یه مثال بهتر بزنیم :
توضیحات این مثال رو خوب بخونید برای درک کد های آینده :
ابتدا تابعی به نام curry تعریف میکنیم که یک تابع را به عنوان ورودی میگیرد و آن را به صورت curried بازمیگرداند. سپس یک تابع ساده add داریم که دو عدد را با هم جمع میکند. این تابع add را با استفاده از curry به تابعی curried تبدیل میکنیم. حالا میتوانیم از تابع curried استفاده کنیم. به عنوان مثال، curried_add(5) یک تابع جدید بازمیگرداند که یک عدد را به 5 اضافه میکند.
اصل YAGIN (you ain't gonna need it) خلاصه اینکه چیزی که الان بهش نیازی نداری رو انجام نده یهو یه تابع به ذهنت رسید ننویس تو برنام که "شاید یه زمانی بدردم خورد" اقا بدرد نمی خوره اگه قرار شد بدرد بخوره بعدا دوباره می نویسی اصل ایده رو یادت نگه دار الکی برنامه رو شلوغ نکن بعدا که برگشتی توسعش بدی مجبور شی همه رو از اول بنویسی
اصل KISS (Keep It Simple, Stupid) بله این اصل هم که مشخصه -_- سعی کن سادگی رو پیش بگیری و به پیچیدگی ترجیح بدی اینطوری کد همیشه سادگی و تاثیرگذاری خودشو داره مشخصا سادگی باعث خوانایی و خوانایی باعث توسعه پذیرتر بودن کدت می شه
اگه به برنامه های توسعه پذیر علاقه مندی می تونی این مقاله رو هم بخونی
خوب فکر کنم برای این پست کافی باشه
اگه خودت نکته ای رو میشناسی که من اشاره نکردم توی کامنت بگو امیدوارم این پست به دردتون خورده باشه موفق و پیروز باشید ...
ان شاء الله راهی که میریم ختم بشه به ظهور سریعتر آقا امام زمان ...