درک کتابخانه ها، رابط ها، و قراردادهای انتزاعی در Solidity

کتابخانه ها، رابط ها و قراردادهای انتزاعی سه مفهوم مهم در Solidity هستند که به توسعه دهندگان کمک می کنند تا کد کارآمد و قابل استفاده مجدد بنویسند.
Solidity یک زبان برنامه نویسی است که برای نوشتن قراردادهای هوشمند در بلاک چین اتریوم استفاده می شود. در Solidity سه مفهوم مهم وجود دارد: کتابخانه ها، رابط ها و قراردادهای انتزاعی. در حالی که ممکن است شبیه به نظر به نظر برسند، اما تفاوت های مشخصی دارند که درک آنها مهم است. کتابخانه ها، رابط ها و قراردادهای انتزاعی همگی اجزای مهم Solidity هستند، زبان برنامه نویسی که برای ایجاد قراردادهای هوشمند در بلاک چین اتریوم استفاده می شود. در حالی که این سه عنصر از نظر استفاده در کد Solidity شباهتهایی دارند، اما تفاوتهای مشخصی نیز دارند که باید هنگام نوشتن برنامههای قرارداد هوشمند درک شوند.
کتابخانه مجموعه ای از توابع یا قطعه کد است که می تواند در چندین برنامه یا پروژه در Solidity مورد استفاده مجدد قرار گیرد. کتابخانهها به توسعهدهندگان اجازه میدهند تا با عدم نوشتن کدهای طولانی هر بار که میخواهند عملکردهای مشابهی را برای بخشهای مختلف پروژه خود داشته باشند، در زمان صرفهجویی کنند. در عوض، کتابخانهها بلوکهای قابل استفاده مجدد را فراهم میکنند که به راحتی میتوان در طول توسعه در صورت نیاز از آنها استفاده کرد. کتابخانهها عموماً با اهداف خاصی مانند عملیات رمزگذاری یا انتقال رمز نوشته میشوند و بنابراین معمولاً نمیتوان آنها را بدون شکستن سازگاری با سایر بخشهای متکی بر آنها اصلاح کرد. Libraries in Solidity برای گروه بندی توابع مرتبط با هم استفاده می شوند که می توانند در چندین قرارداد مورد استفاده مجدد قرار گیرند. آنها مشابه توابع کمکی در سایر زبان های برنامه نویسی هستند. کتابخانه ها یک بار مستقر می شوند و می توانند با قراردادهای متعدد مورد استفاده قرار گیرند. آنها با استفاده از نحو () libraryName.functionName فراخوانی می شوند.
رابط ها نحوه تعامل دو موجودیت مجزا در یک برنامه را با استفاده از امضاهای تابع (نام و پارامترهای مرتبط با آن) تعریف می کنند. این به توسعه دهندگان اجازه می دهد تا تعاملات پیچیده تری بین اشیاء ایجاد کنند و در عین حال جدایی بین آنها را حفظ کنند، بنابراین اگر لازم باشد تغییرات در مراحل بعدی در طول چرخه های توسعه رخ دهد، هر قطعه از یکدیگر مستقل باقی بماند. اینترفیس ها حاوی هیچ منطق پیاده سازی واقعی نیستند، بلکه فقط مانند الگوهایی عمل می کنند که بعداً می توانند توسط پیاده سازی های مشخص در جاهای دیگر فایل های کد منبع برنامه مورد استفاده قرار گیرند. رابط ها در Solidity شبیه قراردادهای انتزاعی هستند، اما نمی توانند هیچ عملکردی را اجرا کنند. اینترفیس ها برای تعریف مجموعه ای از توابع که یک قرارداد باید اجرا کند استفاده می شود. آنها برای ایجاد قراردادهایی مفید هستند که می توانند با قراردادهای دیگر به روشی استاندارد تعامل داشته باشند. رابطها نمیتوانند به فضای ذخیرهسازی دسترسی داشته باشند یا از رابطهای دیگر ارث ببرند، که در برخی موارد قراردادهای انتزاعی را کاربردیتر میکند
در نهایت، قراردادهای انتزاعی به عنوان کلاسهای والد برای همه انواع دیگر که الزامات واسط آن را پیادهسازی میکنند، عمل میکنند. این بدان معناست که هر کلاس جدید ایجاد شده به طور خودکار تمام ویژگی های تعریف شده در تعریف قرارداد انتزاعی از جمله متغیرها، توابع و غیره را به ارث می برد. قراردادهای انتزاعی اغلب شامل روش های همه منظوره مانند بررسی های کنترل دسترسی هستند که در غیر این صورت نیاز به تکرار در چندین کلاس فرزند دارند و بنابراین کار را آسان تر می کند. حفظ ثبات در جنبه های مختلف مربوط به برنامه های کاربردی مبتنی بر جامد. قراردادهای انتزاعی در Solidity قراردادهایی هستند که به تنهایی قابل اجرا نیستند. آنها به عنوان قراردادهای پایه برای سایر قراردادها برای به ارث بردن استفاده می شوند. قراردادهای انتزاعی می توانند کارکردهای اجرا نشده ای داشته باشند که باید توسط قراردادهایی که از آنها به ارث رسیده است اجرا شوند. قراردادهای انتزاعی همچنین می توانند عملکردهای پیاده سازی شده ای داشته باشند که می توانند توسط قراردادهای ارثی مورد استفاده قرار گیرند. قراردادهای انتزاعی با کلمه کلیدی انتزاعی مشخص می شوند.
به طور خلاصه، کتابخانهها برای گروهبندی توابع مرتبط با هم استفاده میشوند که میتوانند در چندین قرارداد مورد استفاده مجدد قرار گیرند، واسطها برای تعریف مجموعهای از توابع که یک قرارداد باید پیادهسازی کند، و قراردادهای انتزاعی به عنوان قراردادهای پایه برای قراردادهای دیگر استفاده میشوند. اگرچه ممکن است مشابه به نظر برسند، اما تفاوتهای مشخصی دارند که درک آنها هنگام نوشتن قراردادهای هوشمند در Solidity مهم است.
برای مطالب بیشتر، مرا در – https://linktr.ee/shlokkumar2303 دنبال کنید