会社でWEB3.0系の事業をはじめることになったので、急いでブロックチェーン技術をキャッチアップしてるのですが
そんな中、会社の人から「CryptZombieオススメだよ」って言われたのでやってみました。
結果、想像を絶するくらい超絶わかりやすかった&学びがあったので、いろいろブログに書きたいと思います!
CryptZombieとは?
Solidityを使ったイーサリアムのコントラクトの書き方が学べるゲーム。
このコースをやる上で必要な知識
WEBエンジニアの人なら、これと言って必要な前提知識はないと思いますが
以下のようなサイトで、ブロックチェーン周りの概念を一通り予習していたほうが理解が早いと思います。
逆にWEBエンジニアでない人の場合は、前提知識がめちゃくちゃ多すぎてちょっとキツイ気がします。
少なくてもフロントエンドで「純粋なJavaScriptを使ってDOM操作とかできます!」「データの受け渡しとかもできます!」程度の知識がないと、たぶん意味不明だと思います。
学べたこと
このコースをやることで、以下のような単語などが理解できるようになりました。
- スマートコントラクト
- コントラクト
- EOA
- コントラクトアカウント
- トークン
- どうやってETHをアドレスからアドレスへ送金してるのか
- OpenZeppelin
- Infura
- ERC20
- ERC721
- balanceOf
- owerOf
・・・など
ほかにも色々学べた気がするのですが、わすれました。
かかった時間
休日2日使ってだらだらやりました。
レッスン6以降は、Truffleとかの解説に入るっぽかったので、とりあえずレッスン6でストップしました。(Solanaが本命なのでそこまで深い所まで学ぶつもりがなかった)
ただ、レッスン6以降も素晴らしい可能性が高い気がするので、余裕があれば挑戦したいと思ってます。
感想
だらだら書きます。
正誤判断が厳密すぎる
テストの中に順番に「こういうふうに実装していけばいい」みたいな手順が書いていたのですが、それ見ながら実装すると模写みたいになってしまうので、まずテストで何を実装したらいいのか?だけ見て、それ見てとりあえず自分で考えて実装してみる・・・みたいにしていたのですが
問題作成者の意図した書き方でないとバツになってしまうのが「ぐぬぬ~」って感じでした。
例えば同じ処理なのに順番が違うだけで✕になったり・・・。
いやまぁ仕方ないんですけどね。無料であのクオリティってだけでも超感謝なので。
書き方が古い
結構書き方が古い部分が多いみたいでした。
例えば、抽象コントラクトのほうにabstractみたいな修飾をつけないと紛らわしくね?って思って調べたら、最新のSolidityだとそういう書き方になってたり。
いやまぁ別にいいんですけどね。自分の場合は、Solana(Rust)の足がかりとしてCryptZombieをやってみただけなので。
日本語が一部おかしい
自分は日本語でプレイしたのですが、何これどういう意味?って思うところが2箇所くらいありました。
その部分を英語にして読んでみると「全然意味違うじゃねーか!」ってなったので、英語が得意な人は最初から英語でやった方が良さげです。
Solidityの感想
CryptZombieでSolidityを触っただけの感想なんですけど、これでミスの無いコントラクトを書くのってめちゃくちゃ難しくね・・・?って思いました。
たとえば「コントラクトA→コントラクトB→コントラクトC」みたいに継承している状況で、コントラクトCはコントラクトAの関数を使える・・みたいなのとか、このコントラクトって結局何を継承してるんだっけ・・・ってなりそう。
なんかもっと良い書き方とかあるんだろうけど、少なくてもCryptZombieのレッスン6までに習った書き方だと相当辛そうだなって思ってしまいました。
あと、「JavaScriptのあの書き方できないのか?」みたいなのが多くて歯がゆかった感。そんでもってTypeScriptの素晴らしさを再認識した感。
そんな感じです。
次は本命のRustに挑戦します!
おわり
コメント