ข้อแนะนำในการเรียน Defi programming (ฝั่ง solidity ethereum compat)
.
- ฝั่ง backend ใช้ go ethereum กับ truffle abigen
- ฝั่ง frontend ใช้ Vue หรือ React กับ web3.js หรือ ether.js
- ถ้าจะใช้ Typescript แบบผมก็ใช้ typechain ในการ generate type
- ผมใช้วิธีสร้าง pattern ในการ develop เองเนื่องจากอยาก develop ทั้งฝั่ง golang และ frontend ไปพร้อมๆกัน ให้เป็น pattern เดียวกัน เลยไม่ได้ใช้ Hardhat แต่เห็นหลายๆคนใช้ก็น่าจะดี แต่ผมไม่มีความเห็น
- ใช้ Ganache develop local และ run test กับ local
- ใช้ jest run test ฝั่ง frontend
- ใช้ testify run test ฝั่ง backend
- ทำความเข้าใจเรื่อง wei และ eth และเรื่องจุดทศนิยมต่างๆให้ดี mathematics บน blockchain เราทำกันบน integer ขนาด 18 digits ไม่ได้ทำกับ floating point
- ทุกๆ concept ที่ทำใน solidity ให้เขียน test ทั้งฝั่ง backend และ frontend ทุกๆ concept อย่าคิดว่าไม่เทสแล้วจะรอด อันนี้ Defi นะ พลาดก็หมดตัวได้เลย
- ถ้ายังไม่เคยทำเลย ให้ทำจนกระทั่งสามารถ deploy ERC20 โดยใช้ contract จาก OpenZeppelin ให้ได้ซักตัว และทดลอง connect จาก backend หรือ frontend ก่อนก็ได้ จะเริ่มเห็นทางไป
- พอ deploy contract แรกได้แล้ว ก็มาไล่ test concept ไปทีละ concept เรียงตามลำดับข้อ 1-8 ในรูป
- หลังจากได้ concept ของ solidity แล้ว ก็มาไล่ test defi building block ตามข้อ 9-16 ในรูป
- หลังจากได้ concept ของ defi building block แล้ว ก็เริ่มคล่องแล้ว ก็จะลองสร้าง project ซักตัว หรือจะลองเขียน contract เชื่อมต่อ Dex, Lending บน chain ซัก chain (แนะนำเริ่มกับ BSC)
- การทดสอบเชื่อมต่อ กับ protocol ต่างๆให้ลอง ทำตาม ข้อ 17-20 ตามในรูปก็ได้
- หลังจากนั้นให้เทียบ code ตัวเองกับ code ของ Protocol ที่ดังๆแล้วจะได้รู้อะไรเพิ่ม แล้วก็สามารถ research เป็นหัวข้อๆได้แล้ว
- ถ้ามาถึงจุดนี้คุณจะกล้าที่จะท่องยุทธภพแล้ว จะไป fork protocol มา improve หรือจะเขียนใหม่ขึ้นมาในสิ่งที่ไม่เคยมีก็ลุยเลยครับ
- ถามว่าจะมี course แบบ step by step สไตล์ผมไหมก็คงมี แต่ตอนนี้ขอเคลียล์งานก่อน ปลายปีงานเข้าเต็มเลย