ليس من المستغرب الآن أن نمنحك أطرًا لمساعدتك في التعامل مع الأعمال المعقدة لتطوير blockchain. في هذا المقال، نأمل أن نعطيك فكرة عن سير العمل العام الذي ستفعله كمطور أثناء تطوير تطبيق موزع (“dapp” أو عقد ذكي + واجهة) على أي blockchain.
دورة حياة المشروع
دعنا نرى دورة الحياة الإجمالية لمشروع dapp:
ربما يكون أهم عمل يمكنك القيام به كمطور هو الخطوة الأولى: تحديد نطاق وأهداف مشروعك. هذا لا يتطلب أي رمز على الإطلاق ، لكنه سيوفر لك الكثير من الوقت في المستقبل. إنها تقوم بشكل أساسي بإنشاء خارطة طريق لتطبيقك ، وعندما تتعقد الأمور ، ستتمكن من الرجوع إليها للتوضيح. (يجب أن تكون هذه الخطوة مألوفة لأن التمرين الأول في الدورة التدريبية كان لك للقيام بهذه الخطوة لمشروعك النهائي!)
يأتي بعد ذلك التصميم المعماري والتقني: رسم المعالم الفنية لمشروعك. كيف ستبدو معلمات وظيفة العقد الذكي؟ أين ستفعل التخزين؟ كيف ستقسم المنطق داخل السلسلة ومنطق خارج السلسلة؟ إذا كان مشروعك يتضمن آخرين ، فكيف ستطبق الحوكمة؟ كيف تخطط للقياس؟
التالي هو مرحلة التطوير ، والتي عادة ما يعتقد الناس أنها المرحلة الوحيدة. يرجى ملاحظة أن هذه هي الخطوة الثالثة في بناء المشروع (التخطيط مهم جدًا)! سوف نتعمق أكثر في هذه الخطوة لاحقًا ، ولكنها في الأساس بناء واختبار عقدك الذكي وواجهة المستخدم. في هذه الخطوة ، ستستفيد من أدوات تطوير إطار العمل ، مثل Truffle أو Hardhat ، بالإضافة إلى أدوات الاختبار ، مثل مجموعات الاختبار وشبكات الاختبار. ستشير أيضًا إلى الملاحظات التي كتبتها في الخطوتين السابقتين ، مع الحرص على الالتزام بالإرشادات التي وضعتها لنفسك.
بعد ذلك يأتي التدقيق الأمني. لقد سمعنا بالفعل عن أدوات الاجتهاد والأمان مثل MythX أو Scribble أو Slither أو Manticore. بالنسبة للمشاريع التي يمكن أن يكون لها قيمة هائلة ، تعتبر هذه الخطوة حاسمة ولا ينبغي إغفالها. قد يكون من الصعب أحيانًا العثور على فريق أو مشروع لتدقيق التعليمات البرمجية الخاصة بك ، ولكن الأمر يستحق الجهد المبذول بالنظر إلى الجانب السلبي المحتمل!
بالتزامن مع التدقيق ، قد تقوم بتشغيل الخطوة التالية ، Bug Bounty and Community ، مما يعني البدء بطريقة ما في مطالبة مجتمعك بتجربة مشروعك. ملاحظة ، هذا قبل إصدار رسمي ، الإصدار 1.0.
أخيرًا ، بعد كل هذه الخطوات ، هو الإطلاق. ربما تكون قد قمت بالفعل بنشر عقدك خلسة ، على افتراض أنك قد أجريت جميع الاختبارات والتدقيق ، ولكن هذا هو المكان الذي تعلن فيه عن الواجهة وتسمح للأشخاص بمعرفة أنها جاهزة للانطلاق! كما سنرى لاحقًا ، فقد بدأ عملك للتو في بعض النواحي ، لكنك على الأقل أطلقت مشروعك في العالم!
أدوات المطور
سننتقل الآن إلى مرحلة التطوير المذكورة أعلاه. ربما يكون هذا ما نفكر فيه جميعًا عندما نفكر في تطوير تطبيق لـ blockchain. فيما يلي عرض بيضوي مبسط لما يبدو عليه تدفق التطوير في بداية المشروع:
هنا نرى المطور (أنت) يعمل بشكل أساسي من محرر الكود الخاص به ، حيث سيكون لديهم كل من العقود الذكية وأي واجهة أمامية يعملون عليها. سيتم تخزين محرر الكود مع الامتدادات العامة الأكثر فائدة بالإضافة إلى امتدادات العقود الذكية المحددة ، مثل امتداد Solidity لـ VSCode بالإضافة إلى أدوات للمساعدة في تقدير الغاز أو تغيير حجم العقد. بعد ذلك ، سيكون لدى المطور إطار عمل يستخدمه لنشر العقد والواجهة الذكية. في الصورة أعلاه ، يستخدم المطور Truffle لبناء عقودهم ، والاحتفاظ بمواد البناء ، وإجراء الاختبارات والنشر في testnet. هناك خيارات أخرى أيضًا ، مثل Hardhat و Scaffold-Eth و Brownie، لتسمية بعض الخيارات الأكثر شيوعًا.
سيحصل المطور بعد ذلك على بعض أدوات testnet الخاصة التي يستخدمها لنشر العقد الذكي في المراحل المبكرة. سيكون هذا هو Ganache بالنسبة لنا ، لأننا نستخدم Truffle . بينما نستمر في زيادة ثقتنا في عملية التطوير الخاصة بنا ، قد نرغب في النشر إلى شبكة اختبار عامة. لهذا ، سنستخدم إما عقدة Ethereum لدينا على أجهزتنا أو سنستخدم خدمة بوابة مثل Infura ، والتي ستسمح لنا بالنشر بسهولة إلى شبكة اختبار Ethereum أو Ethereum mainnet أو حتى شبكات مثل Polygon أو Arbitrum أو Optimism .
ملف env
الشيء الوحيد الذي يبدو تافهاً ولكنه مهم للغاية هو ملف .env لمشروعك. هذه هي المتغيرات البيئية المحلية التي تسمح لك بنشر تطبيقك على شبكة blockchain العامة. إنها أيضًا أفضل طريقة لضمان عدم كشف مفاتيحك الخاصة أو أي معلومات حساسة أخرى عند تطويرها. خاصة عندما تقوم بدفع مادة إلى مستودع git ، فمن السهل على الناس نسيان أنهم قاموا بتضمين معلومات حساسة. هناك بالتأكيد روبوتات تقوم بمسح GitHub باستمرار بحثًا عن مفاتيح خاصة سيتم اختراقها على الفور.
يرجى قراءة هذه المقالة حول كيفية الحفاظ على بيئة التطوير آمنة باستخدام ملف .env والتقنيات الأساسية الأخرى!
أدوات المطور المتقدمة
كلما أصبحت أكثر دراية بتطوير blockchain ومع نمو مشروعك ، ستزداد مجموعة الأدوات وسير العمل لديك. يوجد أدناه رسم تخطيطي يوضح دورة حياة تطويرية أكثر اتساعًا والتي تشمل التدقيق والتوسيع والمراقبة والتأهيل المتقدم للمستخدمين:
مصادر إضافية
- Remix Interface الـ IDE الأصلي لـ Ethereum! حسنًا ، ربما ليس الأصل ، ولكن لا يزال أفضل مكان للذهاب إليه لبدء تطوير Solidity.
- البرنامج التعليمي:Using an .env file to keep your secrets safe
- ملحقات جيدة لمعرفتها حول Hardhat-contract-sizer, hardhat-gas-reporter
- Replit تعطي إمكانية جيدة لاستكشاف الأخطاء وإصلاحها مع الأصدقاء. ليست خاصة بـ blockchain!
- اTesting in the Twenties نصيحة عامة جيدة حقًا حول الاختبار!
- How to Setup a Solidity Project
إضافة تعليق