متین تلخابی
متین تلخابی
خواندن ۳ دقیقه·۴ ماه پیش

اصول مهم برنامه نویسی نرم افزار

توی این درسنامه به ویژگی های کلی اصول نرم افزار می پردازیم

  • اصل 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 اضافه می‌کند.

خب برگردیم به ادامه اصول

  • اصل SOLID
    1. اصل تک مسئولیتی (Single Responsibility Principle)
    2. اصل باز - بسته (Open/Closed Principle)
    3. اصل جایگزینی لیسکوف (Liskov Substitution Principle)
    4. اصل جداسازی اینترفیس‌ها (Interface Segregation Principle)
    5. اصل وارونگی وابستگی (Dependency Inversion Principle)
    اگه خواستید کل اصول SOLID رو مطالعه کنید:
https://virgool.io/@KMmatin/%D8%A7%D8%B5%D9%88%D9%84-solid-kilmqrbhi29u
  • اصل YAGIN (you ain't gonna need it)
    خلاصه اینکه چیزی که الان بهش نیازی نداری رو انجام نده
    یهو یه تابع به ذهنت رسید ننویس تو برنام که "شاید یه زمانی بدردم خورد"
    اقا بدرد نمی خوره اگه قرار شد بدرد بخوره بعدا دوباره می نویسی اصل ایده رو یادت نگه دار الکی برنامه رو شلوغ نکن بعدا که برگشتی توسعش بدی مجبور شی همه رو از اول بنویسی
  • اصل KISS (Keep It Simple, Stupid)
    بله این اصل هم که مشخصه -_-
    سعی کن سادگی رو پیش بگیری و به پیچیدگی ترجیح بدی
    اینطوری کد همیشه سادگی و تاثیرگذاری خودشو داره
    مشخصا سادگی باعث خوانایی و خوانایی باعث توسعه پذیرتر بودن کدت می شه

اگه به برنامه های توسعه پذیر علاقه مندی می تونی این مقاله رو هم بخونی

https://virgool.io/@KMmatin/%D8%A7%D8%B5%D9%88%D9%84-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-maintainable-%D9%87%D8%B3%D8%AA%D9%86-%DA%86%DB%8C%D9%87-pedowvehetyn

خوب فکر کنم برای این پست کافی باشه

اگه خودت نکته ای رو میشناسی که من اشاره نکردم توی کامنت بگو
امیدوارم این پست به دردتون خورده باشه
موفق و پیروز باشید ...

ان شاء الله راهی که میریم ختم بشه به ظهور سریعتر آقا امام زمان ...

منبع : ditty

software engineeringاصول برنامه نویسینرم افزار
برنامه‌نویس Back End مسلط به زبان‌های TailwindCSS، JavaScript، Python و فریم‌ورک Django. مشتاق یادگیری و پیشرفت
شاید از این پست‌ها خوشتان بیاید