زبان برنامه نویسی سالیدیتی چیست؛ چگونه یاد بگیریم قرارداد هوشمند بنویسیم؟‌

زبان برنامه نویسی سالیدیتی چیست؛ چگونه یاد بگیریم قرارداد هوشمند بنویسیم؟‌

وقتی صحبت از «اتریوم» به میان می‌آید، شاید اولین چیزی که به ذهنتان می‌رسد، قرارداد هوشمند باشد. اگر خیلی با قراردادهای هوشمند آشنا نیستید باید بدانید، قراردادهای هوشمند برنامه‌هایی هستند که روی بلاک چین اتریوم قرار دارند. به‌وسیله چنین قراردادهایی می‌توان برنامه‌هایی غیرمتمرکز ساخت که بدون هیچ واسطه، کنترل و توقفی تا ابد به کار خود ادامه می‌دهند. در این مقاله با زبان برنامه‌نویسی سالیدیتی که زبان مخصوص اتریوم برای قراردادهای هوشمند است، آشنا می‌شوید.

درست مانند برنامه‌های رایانه‌ای، قراردادهای اتریوم به یک زبان برنامه‌نویسی نوشته می‌شوند که «سالیدیتی» (Solidity) نام دارد. لازم به ذکر است که زبان‌های برنامه‌نویسی دیگری هم وجود دارند که می‌توان برای ایجاد قراردادهای هوشمند در شبکه اتریوم، از آنها استفاده کرد، اما این روزها انتخاب اکثر برنامه‌نویسان این حوزه سالیدیتی است. در ادامه قصد داریم به شما بگوییم زبان برنامه‌نویسی سالیدیتی چیست و چطور می‌توانید برنامه‌نویسی با زبان سالیدیتی را یاد بگیرید.

سالیدیتی به‌عنوان یک زبان برنامه‌نویسی

امروزه بیشتر برنامه نویسان از یک یا چند نمونه از شاخه‌های زبان‌های برنامه‌نویسی استفاده می‌کنند. مثلاً برخی از شاخه زبان‌های C که خود شامل چندین زبان C#، C++ و …است، پایتون یا جاوا و … استفاده می‌کنند. سالیدیتی به‌نوعی طراحی‌شده که یادگیری‌اش برای برنامه‌نویسانی که با یک یا چند زبان‌ برنامه‌نویسی کار کرده‌اند، آسان باشد.

اگر قبلا فقط در دوران دانشگاه با زبانی مانند «ویژوال بیسیک» کار کرده‌اید، یادگیری سالیدیتی برایتان کمی مشکل خواهد بود و اما اگر با زبان‌هایی همچون پایتون یا C کار کرده‌ باشید، سالیدیتی تا حد زیادی برای شما آشنا خواهد بود.

سالیدیتی از مفاهیم بسیاری استفاده می‌کند که در دیگر زبان‌های برنامه‌نویسی دیگر مشابه آنها را دیده‌اید. برای مثال سالیدیتی دارای متغیرها، توابع، کلاس‌ها، عملیات‌های محاسباتی، رشته‌ها و … است. در حالی‌ که در یک زبان برنامه‌نویسی مانند C، برنامه‌نویس نوعی تابع اصلی مانند {int main(arg۱, arg2) { //code ایجاد می‌کند، سالیدیتی دارای مفهومی با عنوان «قرارداد» (Contract) است که طی روندی مشابه ساخته می‌شود.

Contract

همان‌طور که در تصویر بالا مشاهده می‌کنید، کدهای سالیدیتی شباهت بسیاری به کدهای C++ یا C# و حتی جاوا اسکریپت دارند. برنامه نویسان پایتون نیز در هنگام کار با سالیدیتی متوجه می‌شوند که نوع متغیرها در این زبان باید به‌‌طور صریح تعیین شوند.

سالیدیتی جدید است با منابع آموزش محدود

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

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

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

دوره‌ها و آموزش‌های سالیدیتی

 برای آن دسته از افراد که تجربه برنامه‌نویسی دارند، یکی از گزینه‌های مناسب برای یادگیری سالیدیتی استفاده از وب‌سایت «کریپتو زامبی» (Crypto Zombies) است. این وب‌سایت که شباهت بسیاری با پلتفرم «کد آکادمی» دارد، تکالیف کوچکی را در اختیارتان می‌گذارد که می‌توانید به‌صورت مستقیم در مرورگرتان آنها را انجام دهید. درست یا غلط بودن و اشکالات شما نیز به‌صورت آنی برای شما نمایش داده خواهد شد. این وب‌سایت به شما کمک می‌کند که با استفاده از زبان سالیدیتی یک بازی زامبی بسازید.

Crypto Zombies

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

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

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

اگر به دوره‌های پیشرفته‌تری در این خصوص نیاز داشته باشید، می‌توانید از وب‌سایت «بلاک گیکس» (Block Geeks) استفاده کنید.

دوره‌های غیر رایگان سالیدیتی و گواهینامه‌های آنلاین

در سال‌های اخیر، وب‌سایت های بسیاری دوره‌های غیر رایگان خود را در خصوص یادگیری زبان برنامه‌نویسی سالیدیتی برگزار می‌کنند. «بیت دگری» (BitDegree) ازجمله این وب‌سایت‌هاست که با هدف بالا بردن اطلاعات عموم و آموزش‌های حوزه بلاک چین، فعالیت می‌کند. به‌وسیله این وب‌سایت مهارت آموزان می‌توانند در دوره‌های آنلاین شرکت کنند و در نهایت با به اتمام رساندن آنها، مدرکی آنلاین دریافت کنند که بر روی بلاک چین اتریوم ثبت می‌شود. دوره‌های بیت‌دگری در زمینه‌ی سالیدتی بین ۱۰ تا ۸۰ دلار قیمت دارند. البته شاید دوره‌های رایگان یا با تخفیف قابل‌توجه هم در آن پیدا کنید.

یودمی

از دیگر وب‌سایت ها در این زمینه می‌توان به udemy.com اشاره کرد که دوره‌های ویدیوئی زیادی در زمینه‌های مختلف ارائه می‌کند. هزینه دوره سالیدیتی در این وب‌سایت ۲۰۰ دلار است که به‌تازگی نیز با تخفیف ۹۰ درصدی عرضه می‌شود، البته همیشه این میزان تخفیف را ندارد. این دوره در سایت کورس‌مارکس بررسی شده و امتیاز ۷.۴ از ۱۰ دریافت کرده است.

گزینه دیگر که با قیمت بسیار بالاتری دوره‌های سالیدیتی برگزار می‌کند B9LAB.com است. دوره‌های توسعه اتریوم این وب‌سایت طی ۹ هفته و هفته‌ای ۶ تا ۱۰ ساعت طول می‌کشد و هزینه‌ای بالغ بر ۱۴۵۰ یورو یا ۱۷۵۰ دلار روی دستتان خواهند گذاشت. به‌علاوه یک دوره رایگان کار با اتریوم با عنوان Ethereum ۱۰۱ نیز در این وب‌سایت موجود است که می‌توانید با گذراندن آن بیشتر با روش‌های تدریس و شیوه‌ی آموزشی آنها آشنا شوید.

آیا سالیدیتی ارزش یادگیری دارد؟

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

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

در کنار سالیدیتی زبان برنامه‌نویسی دیگری با عنوان «سرپنت» (Serpent) نیز وجود دارد که بر پایه پایتون ساخته‌شده است. از آنجایی‌ که پایتون زبانی ساده برای یادگیری است، اگر به دنبال چنین زبانی برای ایجاد قراردادهای هوشمند دارید می‌توانید از سرپنت استفاده کنید. این مسئله را نیز به یاد داشته باشید که کدهای نگارش شده به‌وسیله سالیدیتی و سرپنت را می‌توانید به‌راحتی برای اتریوم کلاسیک و RSK و دیگر پلتفرم‌های قراردادهای هوشمند نیز ترجمه کنید.

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

guest

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

نقض قوانین ممکن است منجر به عدم تأیید دیدگاه‌ها یا مسدودسازی حساب کاربران شود.

13 دیدگاه
حمید
حمید
1 سال و 6 ماه قبل

سلام خداقوت.میخواستم بدونم برای یادگیری سالیدیتی چه پیش نیاز هایی لازمه مثلا از قبل باید زبان برنامه نویسی دیگه ای رو یاد بگیریم یان

علی موسوی
علی موسوی
2 سال و 11 ماه قبل

سلام بر شما
مناسبترین زبان برنامه نویسی برای طراحی ربات معامله گر ارز دیجیتال در صرافی باینانس چی هست؟

ریحانی
ریحانی
2 سال و 4 ماه قبل

زبان برنامه نویسی برای نوشتن ربات خیلی مهم نیست که چی باشه چون در نهایت استراتژی معاملاتی شما هست که مهمه و هر زبانی با API هایی که توسط صرافی ها ارائه میشه قابل بهره‌برداری . اما بدونید که نوشتن یک ربات معامله گر موفق اگر نگیم محاله ولی باید بگیم فرهاد کوه کن میخواد . حواستون باشه زمانتون رو کجا و روی چی خرج میکنید

یاسین
یاسین
3 سال و 7 ماه قبل

سلام استاد چطور میشه یه اپ کیف پول ساخت؟ آیا میشه با اضافه کردن مقدار کمی کارمزد کسب درآمد کرد؟ من میتونم اپ اندرویدی بسازم ولی چطور میشه آدرس کیف پول ساخت و به api ارزها وصل شد؟؟؟ کلن سر در نمیارم :(

whoami
whoami
3 سال و 2 ماه قبل
پاسخ  یاسین

ببینید، مطالب های تو زبان فارسی بسیار گنگ و نامفهومه و خیلی مواقع نادرسته.
اگر به ساخت کیف پول علاقه دارید این لینک به درد شما می خوره که بفهمید دقیقا کیف پول ها چجوری کار می کنند:
https://developer.bitcoin.org/devguide/wallets.html
راجب کیف پول های بیت کوین. بعد از تسلط روشون می تونید سورس کیف پول هایی مثل Copay رو ببنید:
https://github.com/bitpay/wallet

مرتضی
مرتضی
4 سال و 8 ماه قبل

???
Addison-Wesley Professional Blockchain Applications and Smart Contracts Developing with Ethereum and Solidity
این آموزش در این زمینه بسیار کامل هست و توصیه میکنم به علاقه مندان

سمیه
سمیه
3 سال و 9 ماه قبل
پاسخ  مرتضی

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

مانتیکور
مانتیکور
2 سال و 11 ماه قبل
پاسخ  سمیه

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

whoami
whoami
3 سال و 2 ماه قبل
پاسخ  سمیه

هر زبان برای کار مخصوصی ساخته شده.
برای وب جاوا اسکریپت. دقت کنید که سی اس اس و اچ تی ام ال زبان برنامه نویسی نیستند.
برای برنامه نویسی اندروید جاوا و کاتلین (جاوا هیچ ربطی به جاوا اسکریپت نداره و فقط از لحاظ اسم شبیه هستند، همچنین جاوا بر خلاف کاتلین کاربرد های بسیار متنوعی داره)
زبان ها سیستمی خیلی سریع و خوبند. یه نمونه از اون ها زبان Go هست. این زبان با همکاری یکی از سازندگان زبان قدرت مند C‌ساخته شده. هر چند به قدرت C نمیرسه ولی خیلی قدرتمنده و سینتکس ساده ای هم داره.
بعد هم سی پلاس پلاس هست که خیلی سخت ولی سریع هست.
و در نهایت، سی که زبان قدرت مندی هست منتهی یکم سخته و برای تازه کار ها زیاد مناسب نیست.
پیشنهاد من به شما اگه اولین باره که برنامه نویسی می کنید پایتون هست. هم کار های زیادی براش هست و هم ساده هست.
در ضمن فقط زبان مهم نیست مهمتر از اون توانایی الگوریتم شماست. برای الگوریتم پیشنهاد می کنم کتاب Introduction to alghorithms رو از دانشگاه ام ای تی، بخونید. یا هم این که کورسش رو از تو یوتوب ببینید

ساده
ساده
3 سال قبل
پاسخ  whoami

همین که تونستی درباره زبان حوزه خودت صحبت کنی یعنی تو حوزه خودت کارت خوبه ... 🤞

ساده
ساده
3 سال قبل
پاسخ  whoami

🙌 افرین

ساده
ساده
3 سال و 3 ماه قبل
پاسخ  سمیه

پایتون و جاوا اسکریپت ولی قبلش باید اچتی ام ال و سی اس اس رو بلد بشید

محمد
محمد
4 سال و 5 ماه قبل
پاسخ  مرتضی

بیشتر توضیح بدید