• تهران -خیابان شریعتی - بالاتر از سه راه ملک - روبروی آتش نشانی - آرتارسانه
  • تلفن تماس: 02191303424

جلسه سوم : قواعد برنامه نویسی سالیدیتی

جلسه سوم : قواعد برنامه نویسی سالیدیتی

در جلسه قبل در مورد چگونگی یادگیری سالیدیتی صحبت کردیم حال میخواهیم بدانید که نحو Solidity ساده است.

اغلب به آن stripped down می گویند، زیرا شامل هیچ ویژگی غیر ضروری نیست. در این آموزش نحوه استفاده از پراگما و نظرات در Solidity و همچنین سایر نکات مربوط به سبک کد را توضیح خواهیم داد.

بسیاری از توصیه‌های نحو Solidity از راهنمای سبک pep8 پایتون به عاریت گرفته شده‌اند. بنابراین، در صورت داشتن پیشینه کدنویسی، درک آنها بسیار آسان خواهد بود.

 

نکات اصلی

  • در بالای هر فایل، باید نسخه pragma را برای اطمینان از سازگاری کامپایلر قرار دهید. استفاده از دستورالعمل‌های استایل به توسعه‌دهندگان کمک می‌کند تا قوانین کد را حفظ کنند.
  • دو نوع کامنت Solidity وجود دارد: ساده و NatSpec.
  • قراردادهای نامگذاری اجباری نیستند، اما به ارائه اطلاعات اضافی درباره اشیا کمک می کنند.

 توضیح pragma

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

 

pragma solidity ^0.4.7;

فایلی که با خطی که در مثال بالا می بینیم شروع می شود، روی کامپایلر نسخه 0.4.6 یا قبل از آن کار نمی کند.

استفاده از ^ همچنین مشخص می کند که با 0.5.0 یا نسخه جدیدتر کامپایل نخواهد شد.

بنابراین کد در تمامی نسخه های 0.4.7 تا 0.4.25 با موفقیت کامپایل می شود.

این محدودیت‌ها بسیار مهم هستند زیرا نسخه‌هایی که نام x.0.0 یا 0.x.0 دارند، تغییرات عمده‌ای را در برنامه ایجاد می‌کنند.

درک این نکته مهم است که وقتی نسخه پراگما را اضافه می کنید، کامپایلر Solidity نسخه ها را تغییر نمی دهد، هیچ ویژگی را فعال یا غیرفعال نمی کند.

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

راهنمای سالیدیتی

طبق توصیه‌های pep8، باید از رمزگذاری UTF-8 یا ASCII استفاده کنید و خطوط کد خود را کمتر از 79 کاراکتر نگه دارید.

همچنین باید از فضاها برای تورفتگی استفاده کنید و از مخلوط کردن آنها با زبانه ها خودداری کنید.

چهار فاصله نشان دهنده یک سطح تورفتگی است.

دو خط خالی باید همه اعلان های سطح بالا را احاطه کند. یک خط خالی برای اعلام عملکرد در قرارداد کافی است. اگر مجموعه ای از دستورات یک خطی دارید، ممکن است اصلا آنها را جدا نکنید.

آموزش سالیدیتی

توجه: شما فقط می توانید از دابل کوتیشن برای رشته های داده استفاده کنید.

 

شما باید فقط از یک تورفتگی برای خطوط تو در تو  استفاده کنید و هر آرگومان را در یک متغیر جداگانه نگه دارید.

 فضای خالی غیر ضروری نباید گنجانده شود:

داخل براکت ها، براکت ها یا پرانتز قبل از نقطه ویرگول یا کاما در تابع بازگشتی با این حال، شما باید از یک فضای واحد استفاده کنید:

 برای جداسازی ساختارهای کنترلی (if، while، و for) از بلوک شرطی

برای جدا کردن بلوک شرطی از آکولاد استفاده کنید

هنگام فهرست کردن توابع، باید آنها را بر اساس نوع view   سازماندهی کنید تا به خوانندگان کمک کنید آنها را به درستی شناسایی کنند.

حالت های مختلف توابع را در زیر ملاحظه میکنید:

  • Constructor
  • Fallback function (if available)
  • External
  • Public
  • Internal
  • Private

نحوه کامنت گذاری در  Solidity

در Solidity می توانید نظرات ساده و NatSpec را بگذارید.

یک تفاوت عمده بین آنها وجود دارد. کامپایلرهای Solidity قالب NatSpec را درک می کنند و این نظرات را برای ماشین قابل خواندن می کند.

توصیه می کنیم از NatSpec برای همه یادداشت ها در رابط های عمومی استفاده کنید.

نوشتن نظرات ساده در Solidity آسان است که به طول کامنت شما بستگی دارد:

خط را با // شروع کنید تا یک نظر تک خطی اضافه شود.

با /* شروع کنید و با */ پایان دهید تا یک نظر چند خطی درج شود.

NatSpec

همچنین می توانید نظرات Solidity خود را در فرمت مشخصات زبان طبیعی اتریوم (NatSpec) بنویسید. که شکل خاصی از نظرات را در قراردادهای Solidity تعریف می کند.

توسعه دهندگان از آن برای مستندسازی متغیرهای بازگشتی، توابع و غیره استفاده می کنند. شما باید تمام مستندات را قبل از کلمات کلیدی کلاس، رابط و تابع وارد کنید.

می توانید در Solidity نظرات تک خطی یا چند خطی بنویسید و از دو نوع نحو استفاده کنید: خط را با /// شروع کنید تا یک نظر تک خطی اضافه شود.

با /** شروع کنید و با /* پایان دهید تا یک نظر چند خطی درج شود.

natspec

نظرات Solidity نوشته شده در NatSpec می توانند دو نوع باشند:

  • توسعه‌دهنده متمرکز (Developer-focused)
  • مواجهه با کاربر نهایی(End-user-facing)

توصیه هایی برای نامگذاری

هیچ قانون سختگیرانه ای در نحو Solidity برای انتخاب نام وجود ندارد.

با این حال، برخی از دستورالعمل ها وجود دارد که به خوانایی کمک می کند و همچنین به نام اجازه می دهد اطلاعات بیشتری را ارائه دهد. هر زمان که نیاز به نامگذاری یک کتابخانه Solidity، قرارداد، متغیر یا هر چیز دیگری دارید، باید این توصیه‌ها را عمل کنید.

نام گذاری آبجکت ها توصیه نامگذاری
نام کتابخانه یا قرارداد Solidity هر کلمه با حروف بزرگ نوشته شده است (به عنوان مثال BasicToken)
ساختار هر کلمه با حروف بزرگ (مثل MyToken)
رویداد هر کلمه با حروف بزرگ ( BeforeTransfer)
تابع تابع حروف بزرگ هر کلمه به جز کلمه اول (مثل addNewMember)
آرگومان تابع هر کلمه با حروف بزرگ به جز کلمه اول (یعنی targetAdress)
متغیر محلی با حروف بزرگ به جز اولین کلمه (یعنی currentTokenSupply)
const ثابت همه حروف بزرگ با خط زیر بین کلمات (به عنوان مثال، TOKEN_NAME)
اصلاح کننده Modifier هر کلمه با حروف بزرگ به جز اولین کلمه (یعنی فقط بعد از)
Enum هر کلمه با حروف بزرگ (یعنی CharacterLocation)

اگر نامی که می‌خواهید استفاده کنید محفوظ است، برای جلوگیری از برخورد با نام های رزرو شده ، از خط زیر خط آخر استفاده کنید.

توجه: هنگام نامگذاری، از استفاده از حروف کوچک L، O بزرگ و I خودداری کنید. آنها اغلب باعث سردرگمی می شوند زیرا بسیار شبیه به اعداد 1 و 0 در کد هستند

خلاصه

  • گنجاندن pragma و ورژن زبان سالیدیتی در ابتدای فایل به شما کمک می کند از ناسازگاری کامپایلر جلوگیری کنید.
  • ورژن ها قراردادهایی را برای کد Solidity ارائه می‌کنند. آنها بر اساس راهنمای pep8 پایتون هستند.
  • می توانید نظرات ساده یا NatSpec را در Solidity قرار دهید. این بستگی به این دارد که آیا می خواهید آنها را توسط سیستم قابل خواندن  باشند یا خیر.
  • در حالی که قوانین دقیقی برای نام گذاری اشیا وجود ندارد، به شما توصیه می شود دستورالعمل های پذیرفته شده را دنبال کنید.

جلسه بعدی

ضبط پیام صوتی

زمان هر پیام صوتی 5 دقیقه است