tokio 的 tutorial 写的真的好啊!业余小项目要用到一些异步事件处理,从 0 到能像模像样地写 async rust,看 tokio 的这个 tutorial 就够了。使用 async 时要考虑的方方面面基本上都照顾到了,某些地方其实还讲的十分深入。
https://tokio.rs/tokio/tutorial
https://tokio.rs/tokio/tutorial
tokio.rs
Tutorial | Tokio - An asynchronous Rust runtime
Tokio is a runtime for writing reliable asynchronous applications with Rust. It provides async I/O, networking, scheduling, timers, and more.
👍5
最近一直在做的一个业余项目是 rust-poker,一个用 rust 编写的终端 UI 风格的德州扑克游戏。
开始这个项目是刚刚读完 Programming Rust 时写了一个德州扑克的内核,可以比较手牌大小,使用了 enum、pattern matching 和 macro,感觉还挺不错的。搁置了一段时间后准备把它做成一个能玩的小游戏,解决想和公司同事打德州但是没有筹码的这个问题。于是使用 tui 作为 UI 框架、tokio 作为异步 runtime 来处理网络请求,发现真的能行!
目前已经实现了基本的游戏逻辑,但还需要一些优化和调整。
借助 rust-analyzer 提供的自动补全和自动修复,写 rust 的体验非常棒。而 rust 自身的语法也挺讨喜的,写习惯之后再写大道至简语言总觉得哪里不太舒服。为数不多的小困惑,譬如到处可见的连串 as_ref().unwrap().get_mut() 其实也都可以通过调整代码结构、添加函数抽象等方式改进。
目前这个项目写了快 6k 行 rust 了,颇有种对 rust 得心应手之感。不过我还是清楚地知道,写这个项目并没有用到太多较为晦涩的 rust 功能,更多的是业务逻辑上的代码堆砌,但这个开端是好的,其他的功能随用随学就好。
后续准备用 WASM 把它搬到网页上,踩坑过程应该会写一篇文章给大家瞅瞅。
开始这个项目是刚刚读完 Programming Rust 时写了一个德州扑克的内核,可以比较手牌大小,使用了 enum、pattern matching 和 macro,感觉还挺不错的。搁置了一段时间后准备把它做成一个能玩的小游戏,解决想和公司同事打德州但是没有筹码的这个问题。于是使用 tui 作为 UI 框架、tokio 作为异步 runtime 来处理网络请求,发现真的能行!
目前已经实现了基本的游戏逻辑,但还需要一些优化和调整。
借助 rust-analyzer 提供的自动补全和自动修复,写 rust 的体验非常棒。而 rust 自身的语法也挺讨喜的,写习惯之后再写大道至简语言总觉得哪里不太舒服。为数不多的小困惑,譬如到处可见的连串 as_ref().unwrap().get_mut() 其实也都可以通过调整代码结构、添加函数抽象等方式改进。
目前这个项目写了快 6k 行 rust 了,颇有种对 rust 得心应手之感。不过我还是清楚地知道,写这个项目并没有用到太多较为晦涩的 rust 功能,更多的是业务逻辑上的代码堆砌,但这个开端是好的,其他的功能随用随学就好。
后续准备用 WASM 把它搬到网页上,踩坑过程应该会写一篇文章给大家瞅瞅。
🤩10👍5🎉4
提高打字速度有很多优势,这一期推荐了我一直在用的小鹤双拼,介绍了我的学习经历和学习方法。
文末额外附赠一个 Notion 小 tip,点开自己看吧。
https://ichn.xyz/blog/2022-07
文末额外附赠一个 Notion 小 tip,点开自己看吧。
https://ichn.xyz/blog/2022-07
ichn.xyz
2022-07:小鹤双拼 | ichn-hu's blog
Read Zhifeng's blog on ichn.xyz
https://madebyevan.com/
通过一篇 CRDT 的文章造访了 Figma 创始人之一 Evan 的主页,印象最深刻的就是他列出来的工作列表,figma、esbuild,再到图形学、游戏以及各种应用,很难想象一个人可以有这么多产出。
这让我想起了 FFmpeg、QEMU、QuickJS、TCC 等等众多著名项目的作者,它们的作者都是同一个人——Fabrice Bellard。
人会因为所做过的事情被记住,如尤雨溪所言,make epic shit。
通过一篇 CRDT 的文章造访了 Figma 创始人之一 Evan 的主页,印象最深刻的就是他列出来的工作列表,figma、esbuild,再到图形学、游戏以及各种应用,很难想象一个人可以有这么多产出。
这让我想起了 FFmpeg、QEMU、QuickJS、TCC 等等众多著名项目的作者,它们的作者都是同一个人——Fabrice Bellard。
人会因为所做过的事情被记住,如尤雨溪所言,make epic shit。
最近说的比较多的一句话是 let’s await more evidence。软件开发中很多问题其实并不需要立刻回答,而是可以先提供一个最小可行的,可以在未来快速迭代、变更的临时解,直到收集到更多的信息,对问题的答案有了明确的认知,再给出一个更完备的解法。