{"content":{"title":"【我的 FunC 学习之旅】从激战到驾驭，编程之路的新篇章","body":"![image.png](https://img.learnblockchain.cn/attachments/2024/08/jfYopVCg66b353a75dcf8.png)\r\n> 近期，我全力以赴投入TON链智能合约的学习，过程虽充满挑战，但收获颇丰。今天，我想与大家分享一下过去一个月以来的学习之旅。\r\n> \r\n> 学习的初衷很直接：在10亿 + 用户规模的背景下，不紧跟时代步伐，实属不该。以下是我在学习过程中的点滴感悟和经验。\r\n\r\n\r\n# 引言\r\n大家好，今天我想和大家分享一段特别的旅程 —— 我的 FunC 学习之路。在 TON 这个充满挑战的世界里，我历经一番激战，终于成功攻克了难以驾驭的 FunC！\r\n\r\n在初次接触 TON 时，我仿佛看到了当年编写 Erlang 代码时的影子，那些熟悉的 Actor 模型让我倍感亲切。这种似曾相识的感觉，让我对 FunC 产生了浓厚的兴趣，也激发了我深入探索的决心。\r\n\r\n不得不说，FunC 的入门之路实属不易。我最近废寝忘食地投入到 FunC 的学习和调试中，每一个深夜的思考和每一次代码的调试，都是我迈向 FunC 高峰的坚实步伐。如今，我终于迈过了这道门槛，那份成就感满满，让我觉得所有的努力都是值得的。\r\n\r\n# 阶段\r\n\r\n我的学习之旅可以分为以下几个阶段：\r\n\r\n### 1、一天速成Tact，打下基础\r\n在正式踏入 FunC 的世界之前，我用一天时间快速掌握了 Tact，这为我后续的学习奠定了基础。\r\n\r\n> 使用 Tact 的好处：可以帮你自动生成 FunC 合约和 TypeScript 脚本，方便前后端使用；缺点是 Gas 费比纯手工打造的 FunC 合约要昂贵一些，因为 Tact 在编译 FunC 时，会产生大量的辅助脚本。\r\n\r\n* Tact 中文教程：https://www.tact-lang.cn/\r\n* Tact 样例：https://tact-by-example.org/\r\n\r\n### 2、啃透官方文档，构建知识框架\r\n我耐心地阅读了所有 FunC 的官方文档，虽然信息量庞大，但我努力提炼出核心要点，为我的 FunC 学习构建了一个扎实的知识框架。\r\n\r\n* 智能合约：https://docs.ton.org/mandarin/develop/smart-contracts/\r\n* 智能合约地址: https://docs.ton.org/mandarin/learn/overviews/addresses\r\n* FunC语言：https://docs.ton.org/mandarin/develop/func/overview\r\n* TVM基础：https://docs.ton.org/mandarin/learn/tvm-instructions/tvm-overview\r\n* 分片原理：https://docs.ton.org/mandarin/develop/blockchain/shards\r\n* Gas 费：https://docs.ton.org/mandarin/develop/smart-contracts/fees\r\n* Exit Code（重点）：https://docs.ton.org/mandarin/learn/tvm-instructions/tvm-exit-codes\r\n* Cell数据结构：https://docs.ton.org/mandarin/develop/data-formats/cell-boc\r\n* 发送消息：https://docs.ton.org/mandarin/develop/smart-contracts/messages\r\n* All in One 工具：https://github.com/ton-org/blueprint\r\n\r\n### 3、Tact与FunC的对话，深入理解\r\n回到 Tact，通过编译代码来观察生成的 FunC，这个过程让我对 FunC 有了更深入的理解，也让我看到了两种语言之间的紧密联系。\r\n\r\n### 4、反复研磨，对比学习\r\n我不断地编写和修改 FunC 代码，与 Tact 编译出的 FunC 进行对比，这种反复研磨的学习方法让我逐渐掌握了 FunC 的精髓。\r\n\r\n### 5、实战演练，Jetton 与 NFT 的挑战\r\n最终，我通过编写业务代码，尤其是实现Jetton和NFT的发放，完成了从理论到实践的飞跃。这两个项目让我遇到了无数的挑战，但同时也让我体验到了编程的乐趣。\r\n\r\n* NFT 教程：https://docs.ton.org/mandarin/develop/dapps/tutorials/collection-minting\r\n* Jetton 教程：https://docs.ton.org/mandarin/develop/dapps/asset-processing/jettons\r\n* Ton-Dynasty Jetton 教程：https://ton-dynasty.github.io/docs.contracts/docs/category/tutorial---jetton\r\n* Ton-Dynasty NFT 教程：https://ton-dynasty.github.io/docs.contracts/docs/category/tutorial---nft\r\n* Ton-Dynasty NFT 进阶教程（碎片化交易）：https://ton-dynasty.github.io/docs.contracts/blog/nft-enforced-royalty/\r\n\r\n\r\n# 总结\r\n在TON的世界里，我不仅重温了编程的激情，更在FunC的学习之路上获得了成长。每一次调试的成功，每一次代码的优化，都是我在这场激战中取得的胜利。感谢FunC，让我在编程的道路上又迈出了坚实的一步。\r\n\r\n在此，我想对同样在编程之路上奋斗的你说：不要畏惧挑战，坚持不懈，我们都能在TON的世界里找到属于自己的一片天。让我们一起，驾驭FunC，书写编程的新篇章！\r\n\r\n感谢大家的阅读，希望我的分享能给你们带来启发和动力。继续前进，我们在编程的世界里不见不散！"},"author":{"user":"https://learnblockchain.cn/people/16052","address":"0x56af91a252c1009c5a065eac15aa2ec9a278a0dd"},"history":null,"timestamp":1723081983,"version":1}