مجله

توصیه هایی برای برنامه نویسان سالیدیتی + اصل kiss

برنامه نویسی سالیدیتی یک مهارت پولساز و یک فرصت بکر!!! چند توصیه برای برنامه نویسان سالیدیتی

سلام دوست عزیز خوشحالم از اینکه به سالیدیتی کد سر زدی😍
در این مقاله قصد داریم در مورد چند توصیه مهم که برنامه نویسان سالیدیتی باید بهش توجه کنند صحبت کنیم.

اگر قصد داری در این حوزه فعالیت کنی و یا در حال حاضر برنامه نویس سالیدیتی هستی پس این مقاله رو از دست نده
روزانه چند هزار قرارداد هوشمند ایجاد می شود. طبق آمار در نوامبر و دسامبر ۲۰۱۸ حدود سه میلیون اسمارت کانترکت ایجاد شده است. که البته طبق همین آمار درصد زیادی از این قرارداد ها هیچوقت استفاده نشدند. و خب نکته ای که مهم است و دلیل نوشتن این مقاله شد این است که تعداد زیادی از این قرارداد ها دارای باگ هستند در این مقاله سعی کردیم نکاتی را بیان کنیم که بهت کمک کنه قراردادهای هوشمند حرفه ای تری بسازی. اگر به سالیدیتی و یادگیری سالیدیتی علاقه داری حتما از دوره آموزش جامع سالیدیتی دیدن کن تو این دوره علاوه بر اینکه سالیدیتی رو یاد میگیری مدرک معتبر هم میگیری و در فصل آخر دوره هم یاد میگیری چطوری از سالیدیتی درآمدزایی کنی.

اصل K.I.S.S در سالیدیتی

این اصل که قطعا هیچ ربطی به Kiss نداره  مخفف عبارت keep it simple stupid هست به معنی “ساده نگهش دار احمق “!!!  احتمالا اگر آقای U.S Navy میدونست این اصل انقدر مهم خواهد شد قطعا مودبانه تر بیان می کرد😅.
البته بعضا از  keep it simple sir هم استفاده می کنند به معنی “ساده نگهش دار قربان “😅

خب این اصل 

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

و نکته مهم اینکه احتمال خطا هم در حالت کمتر خواهد شد.

پس وقتی به عنوان یک برنامه نویس سالیدیتی در حال طراحی یک قرارداد هوشمند هستید سعی کنید با سادگی هرچه بیشتر کدنویسی کنید

استفاده مجدد

نیاز نیست هر بار از صفر شروع کنید!!!

کتابخانه های مختلفی وجود دارند که قبلا تست شده اند و شما می تونید از آنها هربار استفاده کنید و نیازی نیست هربار از صفر شروع به نوشتن تمامی کد ها کنید

الگو های طراحی مهندسی نرم افزار

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

سعی می کنیم در یک مقاله این الگوها رو مفصل بررسی کنیم.

برای مثال Proxy Delegate یک الگوی طراحی خاص است. این الگو به افراد کمک می کند که قرارداد خود را به صورت ایمن ارتقا دهند. موافقی الگوهای مختلف رو در یک مقاله بررسی کنیم؟

اصل برنامه نویسی TDD

اصل TDD که مخفف عبارت Test driven development است به تکنیکی گفته میشه که در آن توسعه به چرخه های توسعه کوچکتر تقسیم شده و برای هر قسمت و بخش تست های مختلفی نوشته شده و در ادامه توسعه امکانات نرم افزار محدود به پاس کردن این تست ها می شود. و در برنامه نویسی سالیدیتی هم بسیار مهمه !!!

به بیان دیگر در برنامه نویسی تست محور ما ابتدا برای امکانات مورد نیاز خودمون تست مینویسیم و سپس کد مربوط به پاس کردن این تست ها توسعه داده میشه.

بهتر است از TDD (طراحی مبتنی بر تست و آزمایش) تبعیت شود و این یعنی موارد آزمایش قبل از نوشتن کد ایجاد شوند و موارد آزمایش مثبت و منفی پوشش داده شوند. همچنین سعی کنید که کد خود را بشکنید و اشتباه هایی منطقی پیدا کنید. می توانید از Solidity-Coverage برای ایجاد پوشش آزمایش استفاده کنید.

استفاده از ابزار های امنیتی

مهمترین ویژگی قراردادهای هوشمند و برنامه نویسی سالیدیتی امنیت هست و طبیعتا باید در اولویت باشه !!!

قرارداد هوشمند و توکن ERC-20 دارای سابقه ایراد یا باگ می باشند. شما می تونید همچنین به بررسی Ethernaut Puzzles بپردازید تا با مشهورترین مشکلات امنیتی آشنا شوید.ابزار های تحلیل امنیتی متن بازی هم موجود هستند که می تونید برای تحلیل قرارداد هوشمند خودتون مورد استفاده قرار بدید. به چند مورد از آنها در موارد زیر اشاره می شود.

تجسم

  • Surya: ابزاری کاربردی برای سیستم های قرارداد هوشمند است که تعدادی خروجی بصری و اطلاعات در مورد ساختار قرارداد ها را ارائه می دهد. همچنین تحقیق در مورد گراف دعوت عملکرد را پشتیبانی می کند.
  • Solgraph: یک گراف DOT ایجاد می کند که جریان کنترل عملکرد یک قرارداد سالیدیتی (Solidity) را مجسم می سازد و بر آسیب پذیری های امنیتی بالقوه تاکید می کند.
  • EVMLab: یک بسته ابزاری غنی برای تعامل با EVM است که شامل یک VM، Etherchain API و یک ردیاب پیگیری (trace-viewer) است.
  • Ethereum-graph-debugger: یک اشکال زدای گرافیکی EVM است که گراف جریان کنترل تمام برنامه را نمایش می دهد.
    تحلیل استاتیک و دینامیک
  • Mythril Classic: یک تحلیلگر امنیتی متن باز برای کد سالیدیتی (Solidity) و قرارداد های هوشمند روی زنجیره است.
  • Mythril Platform: یک پلتفرم SaaS است که به هر فردی اجازه می دهد که به ساختن ابزار های امنیتی هدفمند بپردازد.
  • Slither: یک چارچوب تحلیلی استاتیک به همراه اکتشافگرانی برای بسیاری از مشکلات رایج سالیدیتی است. این ابزار دارای قابلیت های ردیابی ارزش و عیب است و به زبان پایتون نوشته شده است.
  • Echidna: تنها فازر (fuzzer) موجود برای نرم افزار اتریوم است. این ابزار از تست خصوصیات برای ایجاد ورودی های بدخواه که قرارداد هوشمند را متلاشی می کنند، استفاده می نماید.
  • Manticore: یک ابزار تحلیل باینری دینامیک با پشتیبانی EVM است.
  • Oyente: به تحلیل کد اتریوم برای پیدا کردن آسیب پذیری های رایج می پردازد.
  • Securify: تحلیلگر استاتیک آنلاین کاملا اتوماتیک برای قرارداد های هوشمند می باشد که یک گزارش امنیتی را بر اساس الگو های آسیب پذیری فراهم می آورد.
  • SmartCheck: ابزار تحلیل استاتیک کد منبع Solidity برای آسیب پذیری های امنیتی و انجام بهترین اقدامات ممکن است.
  • Octopus: ابزار تحلیل امنیتی برای قرارداد های هوشمند بلاک چینی با پشتیبانی از EVM و e) WASM) می باشد.حملات شناخته شده و به روز رسانی ها
    همیشه خودتون را با حملات شناخته شده و آپدیت های سالیدیتی (Solidity) به روز نگه دارید. آپدیت های برجسته سالیدیتی ممکن است تغییرات برجسته ای به دنبال داشته باشد.

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

 

Print Friendly, PDF & Email
برای امتیاز به این نوشته کلیک کنید!
[کل: 2 میانگین: 5]
اشتراک گذاری:

دیدگاهتان را بنویسید