از آنجایی که برنامههای رایانهای توسط یه زبان برنامه نویسی نوشته میشوند، قراردادهای اتریوم هم توسط یک زبان برنامه نویسی نوشته میشوند که این زبان سالیدیتی (Solidity) نام دارد. لازم است بگوییم که زبانهای برنامه نویسی دیگری هم وجود دارند که میتوان از آنها برای ایجاد قراردادهای هوشمند در شبکه بلاکچین اتریوم، استفاده کرد، اما این روزها انتخاب اکثر برنامهنویسان این حوزه سالیدیتی است. در مقاله ” صفر تا صد برنامه نویسی سالیدیتی” قصد داریم با شما در مورد این زبان برنامه نویسی صحبت کنیم و بگوییم سالیدیتی چیست و چطور میتوانید برنامه نویسی با زبان سالیدیتی را هرچه بهتر و سریعتر یاد بگیرید.
فهرست مطالب
پیش نیازها برای یادگیری زبان برنامه نویسی سالیدیتی
زبان برنامه نویسی سالیدیتی و قراردادهای هوشمند
ماشین مجازی اتریوم (EVM) چیست؟
دورهها و آموزشهای خوب زبان برنامه نویسی سالیدیتی
دورههای غیر رایگان برنامه نویسی سالیدیتی و کسب گواهینامههای آنلاین
سالیدتی برای یادگیری خوب است؟
پیش نیازها برای یادگیری زبان برنامه نویسی سالیدیتی
- دانش اولیه و اصلی بلاکچین
- دانش درمورد کارکرد پلتفرم اتریوم
- تجربه کاری با هر زبان برنامه نویسی مانند پایتون (Python)، سی پلاس پلاس (++C)، سی شارپ (#C) و جاوااسکریپت (Javascript)
- دانش پایهای مفهوم برنامه نویسی و شیگرایی (OOP)
- یک مسیر راه خوب و استفاده از دوره های ویدیویی، کتاب و … که در این مقاله به معرفی آنها میپردازیم.
زبان برنامه نویسی سالیدیتی و قراردادهای هوشمند
قرارداد هوشمند یا smart contract، یک کد برنامه نویسی است که بر روی شبکه بلاکچین پیادهسازی میشود تا در صورت اتفاق افتادن دادن یک سری شرایط، دستورات خاصی را که برنامه نویس به آن داده است، اجرا شود. قراردادهای هوشمند یکی از ویژگیهای بسیار مهم و انقلابی شبکه بلاکچین اتریوم است که باعث توجهها به این رمزارز شد. قرارداد هوشمند امکان برنامه نویسی و ایجاد پروژههای خصوصی و عمومی بر روی شبکه بلاکچین اتریوم را فراهم کرده است. همانند تمام پلتفرمهای برنامه نویسی، برای کدنویسی در شبکه بلاکچین اتریوم باید از یک زبان برنامه نویسی استفاده نماییم. سالیدتی نام زبان برنامه نویسی در پلتفرم اتریوم است.
سالیدتی تقریبا شبیه به زبان برنامه نویسی جاوااسکریپت است که یکی از مناسبترین زبانهای برنامه نویسی در نوشتن قراردهای هوشمند به حساب میآید. سالیدیتی را میتوان شبیه زبان برنامه نویسی جاوااسکریپت در نظر گرفت؛ یعنی اگر با جاوااسکریپت کار کرده باشید، درک سالیدیتی هم برای شما بسیار راحتر خواهد شد. زبانهای برنامه نویسی همچون ++C و پایتون نیز شباهت زیادی به زبان سالیدیتی دارند.
زبان برنامه نویسی سالیدیتی یک زبان سطح بالا و از نوع استاتیک است و از وراثت، کتابخانه و دادههای پیچیده تعریف شده توسط کاربر پشتیبانی میکند. طریقهی اجرا شدن یک برنامه به این صورت است که ابتدا برنامهنویس کد میزند، و پس از آن کد نوشته شده به کدی قابل درک برای ماشین تبدیل میشود و نهایتا توسط ماشین اجرا میگردد. اعتبارسنجیهایی در زمان کامپایل یا زمان اجرای برنامه (Run Time) بوده که دقیقا تفاوت زبانهای پویا و استاتیک است. برخلاف زبانهای پویا که در زمان Run میتوان کدها را بازبینی کرد، در سالیدیتی بازبینی کدها در زمان کامپایل امکانپذیر است. برای مثال، پایتون و جاوااسکریپت یک زبان برنامه نویسی پویا هستند، در حالی که ++C یک زبان استاتیک است. سالیدیتی از این حیث مشابه ++C است.
از آنجایی که سالیدیتی یک زبان استاتیک است، متغیرها اکثرا توسط کاربر ایجاد و مقداردهی میشوند. وجود انواع مختلفی از دادهها باعث میشود که کامپایلر، متغیر مناسب را تشخیص دهد. دادههای سالیدیتی نیز مثل بعضی از زبانها معمولا به دو گروه: مقداری (Value type) و ارجاعی (Reference type) دستهبندی میشوند. اصلی ترین تفاوت دادههای مقداری با دادههای ارجاعی در نحوه تخصیص آنها به یک متغیر و ذخیره آنها در ماشین مجازی اتریوم (EVM) است. در انواع مقداری، تغییر در مقدار یک متغیر اثری بر متغیر دیگر ندارد و یکتاست، اما در انواع ارجاعی با تغییر مقادیر، آن مقدار در متغیرهای دیگر نیز اعمال میشود.
زبان برنامه نویسی سالیدیتی، از قابلیت وراثت (Inheritance) بهرهمند است. یعنی تابعها، متغیرها و ویژگیهای دیگری که در یک قرارداد هوشمند وجود دارد را میتوان در قرارداد هوشمند دیگری به کار برد و از کد نویسی مجدد جلوگیری کرد. سالیدیتی یک زبان برنامه نویسی متن باز (open source) است که جامعه توسعهدهندگان این زبان به شدت در حال افزایش است. همچنین روزانه پروژههای بسیاری با استفاده از این زبان برنامه نویسی تولید میشود که میتوانید این پروژهها را در این صفحه از گیتهاب مشاهده کنید.
ماشین مجازی اتریوم (EVM) چیست؟
قراردادهای هوشمندی که با استفاده از زبان سالیدیتی ایجاد میشوند توسط ماشین مجازی اتریوم یا Ethereum Virtual Machine که یک پردازشگر در شبکه بلاکچین اتریوم است اجرا میشود. این پردازشگر تنها به قراردادهای هوشمندی که بر روی آن اجرا میشوند دسترسی دارد و غیر از این به هیچ اطلاعات دیگری در شبکه اتریوم دسترسی ندارد. در این بخش از محتوا قصد معرفی کامل EVM را نداریم، فقط به یاد داشته باشید که قراردادهای هوشمندی که با استفاده از زبان برنامه نویسی سالیدیتی نوشته شده، بر روی پردازشگر مجازی اتریوم راه اندازی و اجرا میشود.
سالیدیتی یکی از محبوبترین و پراستفادهترین زبان برنامه نویسی موجود برای توسعه اپلیکیشنهای غیرمتمرکز (dapp) روی پردازشگر مجازی اتریوم است. کلاسها و کتابخانههای بسیاری در سالیدیتی وجود دارند که میتوانند به توسعه یک قرارداد هوشمند، کمک کنند. بهترین محیطهای توسعه نرم افزار (IDE) برای برنامه نویسی به زبان سالیدیتی که میتوان به آنها اشاره کرد:
- ریمیکس Remix
- ویژوال استدیو Visual Studio (با استفاده از پلاگین)
- اتر اتم Ether atom (با استفاده از پلاگین)
دورهها و آموزشهای خوب زبان برنامه نویسی سالیدیتی
برای آن عده از کسانی که تجربه برنامهنویسی دارند، یکی از بهترین گزینههای موجود برای یادگیری زبان سالیدیتی استفاده از وبسایت کریپتو زامبی (Crypto Zombies) است. این وبسایت بسیار شبیه با پلتفرمهای آموزشی codecademy و freecodecamp است، و تکالیف بسیاری را در اختیارتان میگذارد که میتوانید به صورت مستقیم در مرورگرتان آنها را انجام دهید و پس از موفقیت به انجام هر تکلیف، تکلیف بعدی برایتان در دسترس قرار میگیرد. همچنین درست یا غلط بودن و اشکالات شما نیز به صورت آنی برای شما نمایش داده میشود. این وبسایت به شما کمک میکند که با استفاده از زبان برنامه نویسی سالیدیتی یک بازی زامبی بسازید که این امر جذاب بودن این آموزش را برایتان دو چندان میکند.
برای انجام فصل اول آموزش این وبسایت چیزی حدود دو ساعت زمان لازم است و اندکی نیز سخت است (البته بستگی دارد تجربه برنامه نویسی داشته باشید یا خیر) اما با کمی صبر و دقت میتوانید از پس چالشها بر بیایید. توسعه دهندگان این وبسایت هر چند هفته یک بار تکالیف جدیدی را برای کاربران مهیا میکنند تا همیشه محتواها تازه باشند. با به اتمام رساندن تمامی تکالیف، میتوانید یک بازی کامل زامبی بر پایه سالیدیتی داشته باشید.
باید اشاره کرد که ساخت چنین بازیای هرگز نمیتواند شما را به یک برنامهنویس حرفهای سالیدیتی تبدیل کند، ولی برای شروع کار و ایجاد یک پیشزمینه ذهنی خوب در ارتباط با این زبان، میتواند عالی باشد چرا که بسیاری از نکات پایهای کلیدی و حیاتی که برای کار با سالیدیتی نیاز است بدانید را به شما آموزش میدهد.
سرفصل های آموزش وبسایت کریپتو زامبی به این صورت است:
- سالیدیتی: آموزش قراردادهای هوشمند مبتدی تا متوسط این دوره به شما یاد می دهد که چگونه یک بازی بر روی اتریوم بسازید.
این بخش برای مبتدیان طراحی شده است، اما فرض میکند که شما تجربه برنامه نویسی به زبان دیگری (مثلاً جاوااسکریپت) دارید.
- چینلینک: اوراکلهای غیرمتمرکز
این بخش به شما آموزش میدهد تا تمام اطلاعات دنیای واقعی و همه تغییرات آن را با زامبیهای بازی ترکیب کنید.
- سالیدیتی پیشرفته: دانش عمیق کسب کنید
آزمایش قراردادهای هوشمند با Truffle به شما آموزش می دهد:
- قراردادهای هوشمند خود را با Truffle در برابر Ganache آزمایش کنید
- از Chai برای نوشتن استفاده کنید
- تست در برابر Loom
برای استقرار اپلیکیشن های غیرمتمرکز خود در اتریوم با Truffle شما را راهنمایی می کند.
- فراتر از اتریوم: اکوسیستم بلاکچین ها را کاوش کنید
- ترون (TRON): وب را غیرمتمرکز کنید
شروع به کار با ترون، یکی از سریع ترین بلاکچینهای عمومی در حال رشد.
در صورتی که تجربهای در کد زدن ندارید میتوانید در دورههای رایگان سایت CodeAcademy، شرکت کنید. به خاطر داشته باشید که در صورت تسلط بر پایتون یا جاوااسکریپت، میتوانید به راحتی از کریپتو زامبی استفاده کنید.
اگر به دورههای پیشرفتهتری در خصوص برنامه نویسی سالیدیتی نیاز داشته باشید، میتوانید از وبسایت بلاک گیکس (Block Geeks) استفاده کنید.
دورههای غیر رایگان برنامه نویسی سالیدیتی و کسب گواهینامههای آنلاین
در چند سال گذشته تا به امروز، وبسایتهای زیادی دورههای غیر رایگان زیادی در خصوص آموزش زبان برنامه نویسی سالیدیتی برگزار میکنند. بیت دگری (BitDegree) ازجملهی این وبسایت است، که با تمرکز بر بالا بردن اطلاعات عمومی و آموزشهای حوزه بلاکچین، فعالیت خود را آغاز نموده است. بهوسیله این وبسایت دانشجویان میتوانند در دورههای آنلاین شرکت و در نهایت با به اتمام رساندن این دورهها، مدرکی آنلاین دریافت کنند که بر روی بلاکچین اتریوم ثبت میشود. باید ذکر کنیم که دورههای بیتدگری در زمینهی سالیدتی بین ۱۰ تا ۸۰ دلار قیمت دارند. البته شاید دورههای رایگان یا با تخفیف قابلتوجه نیز در آن پیدا کنید.
از دیگر وبسایت ها در این زمینه میتوان به وبسایت معروف یودمی (udemy) اشاره کرد که دورههای ویدیوئی زیادی در زمینههای مختلف ارائه میکند. هزینه دوره سالیدیتی در این وبسایت ۱۳۰ دلار است که میتوانید در جشنوارههای مختلف این دوره را با تخفیف قابل توجهای خریداری کنید. این دوره تا به اینجا ۱۳۲ هزار نفر دانشجو داشته و امتیاز آن نیز از ۵ نمره، نمره بسیار خوب ۴.۶ است.
از گزینههای دیگری که میتوان به آن پرداخت که با قیمت بسیار بالاتری دورههای سالیدیتی برگزار میکند B9LAB است. دورههای توسعه اتریوم این وبسایت طی ۹ هفته و هفتهای ۶ تا ۱۰ ساعت طول میکشد و هزینهای بالغ بر ۱۴۵۰ یورو یا ۱۷۵۰ دلار است. همچنین یک دوره رایگان کار با اتریوم با عنوان 101Ethereum نیز در این وبسایت موجود است که میتوانید با گذراندن آن بیشتر با روشهای تدریس و شیوهی آموزشی آنها آشنا شوید.
سالیدتی برای یادگیری خوب است؟
اگر برنامه نویسی با سالیدیتی را به عنوان شغلی برای خود در نظر دارید، پیش از یادگیری آن باید بدانید به چه مهارتهای دیگری نیاز است. با وجود اینکه یاد گرفتن مهارتهای مربوط به بلاکچین بسیار مفید است، احتمالا لازم باشد کسی که میخواهد به این حوزه وارد شود به یکی از زبانهای برنامه نویسی تسلط کامل داشته باشد. مثلا در یک آگهی شغلی در این زمینه عنوان شده است کسی را میخواهند که نه تنها با سالیدتی، بلکه به زبانهای ترافل، نودجیاس و گولنگ هم کار کرده باشد.
اگر حاضرید سالها زمان خود را صرف آموختن زبان برنامه نویسی سالیدیتی کنید، میتوانید امیدوار باشید که در سالهای آینده به شغلی مناسب نیز دست یابید.
در کنار زبان سالیدیتی زبان برنامه نویسی دیگری با عنوان سرپنت (Serpent) نیز وجود دارد که بر پایه زبان پایتون ساخته شده است. از آنجایی که پایتون زبانی ساده برای یادگیری است، اگر به دنبال چنین زبانی برای ایجاد قراردادهای هوشمند هستید میتوانید از زبان برنامه نویسی سرپنت استفاده کنید. این مسئله را نیز به خاطر داشته باشید که کدهای نگارش شده به وسیله سالیدیتی و سرپنت را میتوانید به راحتی برای اتریوم کلاسیک و RSK و دیگر پلتفرمهای قراردادهای هوشمند نیز ترجمه کنید.
در حال حاضر سالیدیتی جایگاه اول را در زبانهای برنامه نویسی مرتبط با قراردادهای هوشمند دارد و یادگیری این زبان میتواند به یادگیری دیگر زبانهای قراردادهای هوشمند نیز کمک کند.
سخن پایانی
سالیدیتی نام زبان برنامه نویسی بلاکچین در شبکه اتریوم است. با استفاده از زبان برنامه نویسی سالیدیتی میتوان قراردادهای هوشمند در شبکه اتریوم نوشت و بر روی ماشین مجازی اتریوم راه اندازی کرد. همه اپلیکیشنهای غیرمتمرکز که بر روی شبکه اتریوم نوشته میشوند، از زبان سالیدیتی استفاده کردهاند. این زبان شباهت بسیار زیادی با زبان جاوااسکریپت داشته از این رو کار برای توسعه دهندگان جاوااسکریپت آسان است همچنین یادگیری جاوااسکریپت میتواند کمک زیادی به آموزش زبان سالیدیتی کند. ممنون از اینکه تا پایان ” صفر تا صد برنامه نویسی سالیدیتی” همراه با ما بودید.
.