Candid: یک زبان رایج برای رابط های کاربردی در رایانه اینترنتی

Candid: یک زبان رایج برای رابط های کاربردی در رایانه اینترنتی

معرفی Candid ، یک زبان توصیف رابط کاربری جدید برای رایانه اینترنتی ، که کد میزبان را قادر می سازد تا یکپارچه ادغام شود

ما ابزارهایی را برای ایجاد خودکار UI و انجام آزمایش تصادفی بر اساس فایل شرح خدمات ایجاد کردیم. < p> همانطور که بنیاد DFINITY برای راه اندازی اینترنت به ریشه های آزاد و باز خود با راه اندازی رایانه اینترنتی فعالیت می کند ، اولین شبکه بلاک چین با سرعت وب با ظرفیت محاسباتی نامحدود ، افزایش تجربه توسعه دهندگان و ارائه گزینه های بیشتر ، یک تمرکز ثابت است. رایانه اینترنتی میزبان قوطی های نرم افزاری است ، تکامل قراردادهای هوشمند سنتی که می توانند مقیاس پذیر شوند ، که شامل کد بایتی WebAssembly با صفحاتی از حافظه است که کد در آنها اجرا می شود. اینها توسعه دهندگان را قادر می سازد تا برنامه های کاربردی ، سیستم ها و سرویس های اینترنتی سازگار با امنیت ، غیرقابل توقف و استفاده از ویژگی های بلاک چین مانند توکن سازی را ایجاد کنند که به طور مستقیم در اینترنت و نه در زیرساخت های اختصاصی مستقر می شوند.

برای حمایت از رشد جهان نرم افزارهای تصویری مجدد در یک بلاک چین عمومی که در آن برنامه های مختلف می توانند مستقیماً با یکدیگر ادغام شوند و خدمات را می توان به راحتی ترکیب و گسترش داد ، تیم زبانهای ما زبان توصیف واسط کاندید (IDL) را توسعه داد ، که به طور مشترک به آنها امکان می دهد ساختن اکوسیستم رایانه اینترنتی برای اتصال کاملاً یکپارچه کد آنها ، حتی اگر به زبانهای مختلف نوشته شده باشد ، که ما مشتاق هستیم امروز با جزئیات بیشتر آن را شرح دهیم.

Candid چیست؟

Candid یک IDL است که به طور خاص برای رایانه اینترنتی ساخته شده است و یک زبان مشترک برای رابط های برنامه برای تسهیل ارتباط بین سرویس های نوشتاری ارائه می دهد. n در زبانهای برنامه نویسی مختلف.

یکی از مزایای کلیدی Candid این است که زبان را می شناسد و قابلیت همکاری بین سرویس ها و قسمت های جلویی را که به زبان های مختلف برنامه نویسی مانند Motoko ، Rust و جاوا اسکریپت ، و سایر موارد. این به توسعه دهندگان اجازه می دهد بدون نگرانی در مورد ارتقاء رابط در سرویس های خارجی ، سرویس هایی را که به یکدیگر متکی هستند ، با خیال راحت و بدون دردسر بسازند. توسعه دهندگان با استفاده از Candid توانایی توصیف رابط عمومی یک سرویس را دارند ، معمولاً در قالب برنامه ای که به عنوان قوطی استفاده می شود. به عنوان یک توسعه دهنده ، می توانید سرویسهای خارجی که در رایانه اینترنتی در حال اجرا هستند را به عنوان فراخوانی تابع ناهمزمان فراخوانی کنید. بدون شکستن کلاینت های موجود-به عنوان مثال ، به این معنی که می توانید با خیال راحت پارامترهای اختیاری جدید را بدون از دست دادن سازگاری برای مشتریان فعلی به سرویس اضافه کنید. پشتیبانی از ویژگی های رایانه اینترنتی: Candid به ویژه برای توسعه برنامه های کاربردی مناسب است رایانه اینترنتی.

کاندید تا حدودی از IDL های مشابه و زبانهای تعریف داده (DDL) مانند Protobuf ، Thrift و JSON الهام گرفته شده است. اما Candid ترکیبی منحصر به فرد از ویژگی هایی را ارائه می دهد که در این فناوری های دیگر یافت نمی شود:

Candid یک زبان توصیف رابط کامل است ، نه فقط یک زبان توصیف داده. یک مقدار Candid را مستقیماً به انواع و مقادیر زبان میزبان ترسیم کنید. Candid ذاتاً یک زبان مرتبه بالاتر است که به استدلال های پیام اجازه می دهد تا به خدمات و روش های دیگر ارجاع دهند. Candid داردپشتیبانی داخلی از ویژگی های رایانه اینترنتی خاص ، مانند حاشیه نویسی پرس و جو. Candid قوانین را برای نحوه ارتقاء خدمات و رابط آنها به شیوه صوتی و ترکیبی ، از جمله موارد مرتبه بالاتر ، تعیین می کند.

چگونه از Candid استفاده کنم؟

هدف اصلی Candid اتصال برنامه هایی است که به زبان میزبان نوشته شده اند - به عنوان مثال Motoko ، Rust یا JavaScript - با رایانه اینترنتی. در بیشتر موارد ، مجبور نیستید با داده های برنامه خود به عنوان مقادیر Candid برخورد کنید. در عوض ، شما با یک زبان میزبان مانند جاوا اسکریپت با استفاده از مقادیر آشنا جاوا اسکریپت کار می کنید ، و سپس بر Candid تکیه می کنید تا این مقادیر را به صورت شفاف به قوطی نوشته شده در Rust یا Motoko منتقل کند. قوطی مقادیر را دریافت می کند و آنها را به عنوان مقادیر اصلی Rust یا Motoko در نظر می گیرد.

مواردی وجود دارد که مشاهده مقادیر Candid به طور مستقیم در شکل قابل خواندن برای انسان مفید است-به عنوان مثال ، هنگام ورود به سیستم ، اشکال زدایی ، یا تعامل با یک سرویس در خط فرمان. در این سناریوها ، می توانید از ارائه متنی برای مقادیر Candid استفاده کنید.

Candid یک سیستم قوی تایپ شده با مجموعه ای از انواع است که به طور متعارف بیشتر موارد استفاده را پوشش می دهد (برای مشاهده لیست ، به صفحه SDK ما مراجعه کنید). فلسفه این مجموعه انواع این است که آنها برای توصیف ساختار داده ها کافی هستند تا بتوان اطلاعات را رمزگذاری ، منتقل و رمزگشایی کرد ، اما سعی نمی کنند محدودیت های معنایی فراتر از آن را توصیف کنند. Candid این مجموعه از انواع را پشتیبانی می کند تا امکان ترسیم طبیعی انواع داده ها بر اساس انتخاب های منطقی و متعارف مناسب هر زبان میزبان را فراهم کند ، خواه کد خود را به Motoko ، Rust ، JavaScript یا برخی زبان های دیگر بنویسید.

از انواع کاندید می توان برای توصیف یک سرویس از طریق یک فایل توصیف سرویس Candid (فایل .did) استفاده کرد که می تواند به صورت دستی نوشته شده یا از پیاده سازی سرویس ایجاد شود. به عنوان مثال اگر در Motoko قوطی بنویسید ، کامپایلر هنگام کامپایل برنامه به طور خودکار یک توضیح Candid تولید می کند. در زبان های دیگر ، مانند Rust ، باید توضیحات رابط Candid را به صورت دستی بنویسید. با کمک انواع ، ما ابزارهایی را برای ایجاد خودکار UI و انجام آزمایش تصادفی بر اساس فایل توضیحات سرویس توسعه دادیم.

Candid همچنین برای ارتقاء خدمات مفید است. خدمات در طول زمان تکامل می یابند ؛ آنها روشهای جدیدی به دست می آورند و روشهای موجود داده های بیشتری را برمی گردانند یا انتظار استدلال های اضافی را دارند. معمولاً نویسندگان سرویس می خواهند این کار را بدون شکستن مشتریان موجود انجام دهند. Candid کمک می کند تا خدمات با ایمن سازی قوانین دقیق زیرنوع (در Coq رسمی شده است) تکامل یابد که نشان می دهد نوع سرویس جدید همچنان قادر به برقراری ارتباط با سایر طرف هایی است که از توصیف رابط قبلی استفاده می کنند.

علاقه مند به یادگیری بیشتر؟ در اینجا برخی از مطالب مرتبط با Candid برای شروع…

آموزش ها و منابع کاندیدا

ویدیوی توضیح دهنده کاندیدا: شما می توانید یک آموزش تصویری در مورد نحوه استفاده از Candid را در اینجا پیدا کنید. اسناد و مدارک آموزشی: می توانید به اسناد ما در Candid در سایت SDK ما در اینجا مراجعه کنید. Candid Crate: جعبه Candid یک کتابخانه سریال سازی/ضد آب زدایی است که می تواند برای ایجاد خدمات Candid مورد استفاده قرار گیرد. یا مشتریان در Rust. کتابخانه عامل رایانه اینترنتی برای جاوا اسکریپت: این نماینده شامل پشتیبانی از Candid. پشتیبانی شده توسط انجمنکتابخانه ها برای Candid: کتابخانه هایی در حال حاضر برای Haskell ، Elm ، AssemblyScript و Kotlin وجود دارند. UI Candid: این قوطی یک رابط کاربری اصلی برای هر قوطی که روی رایانه اینترنتی اجرا می شود ایجاد می کند و توسعه دهندگان را قادر می سازد تا با قوطی ها تعامل داشته باشند در وب (برخلاف ترمینال) ، و همچنین ارائه قابلیت اشکال زدایی.