本文是RUST学习和实践心得的第一篇。前面几篇是学习,包括服务端开发,案例,异步编程等多个方面进行多维度讲解。
RUST和Flutter实践心得
我最近这一到两个月一直在写代码。我们基于rust的后台服务程序基本完成。实际干活人极少,然后大量功能性代码是GPT写的。这次实践活动再次验证了我之前的一个判断:GPT干掉的是只会coding的人,而懂业务,知道坑在哪的业务领域专家,或者架构师很难被干掉。而且,有了GPT,居然不需要那么多会写代码的人了....我作为主程,架构师,一个重要责任是设计数据结构,然后不停的问GPT怎么实现,反复迭代,直到拿到最好的结果。并且,还有40-50%的集中时间在重构和迭代代码。我用的就是POE的gpt-4o。我发现GPT生成RUST代码的结果准确率非常高。比之前我用java好得多。可能是RUST代码样本库本身就高质量吧。
整个实践的结果很好,一次又一次加强了我们对RUST信心。毫不夸张地说,RUST只要编译通过,运行几乎没有问题。当然,这是在我们的业务环境下的验证结果。
然后我们又实践了一个全新的APP,基于Flutter,但很快就碰到巨坑(谢天谢地,越早碰到越好,免得尾大不掉)。这里直接奉上张涛老师的金玉良言。
经过我这段时间的折腾,大概发现问题点在哪了:
如果APP只有UI,flutter或许还可以。
但一旦涉及到native平台,简单如加一个通知栏,或者开一个后台service都会比较麻烦。更关键的是,这些跨平台的插件是第三方提供的,文档质量非常一般。有些效果我做出来了,但是压根不知道是怎么搞出来的,还时好时坏.....
我们这个应用,再简单也是要有一些native平台的特性。所以我打算及时踩刹车放弃flutter了。现在UX开发上,声明式已经成是主流了,有GPT的帮助,应该会好很多。
介绍下Flutter用的一些库
异步运行时使用tokio
网络框架用actix-web。之前用了一个axum,但是那个文档我是死活没看明白,感觉还是选一个生态比较久的,结果就选了actix。另外,actix还支持actor模式,这个后来发现也很有用。
log库选的是tracing。
错误方面用anyhow和thiserror
数据库直接上sqlx。不用任何ORM框架,感觉多此一举。用GPT帮你写sql还是很棒的。另外,注意,GPT在sqlx这块会有一些跟不上地方(就是有时候给的代码会是错误的)
最后的最后
我期望的结果不是朋友们从我的书、文章、博客后学会了什么知识,干成了什么,而应该是说,神农,我可是踩在你的肩膀上的喔。
关于学习方面的问题,我已经讨论完了。后面这个公众号将对一些基础的技术,新技术做一些学习和分享。也欢迎你的投稿。不过,正如我在公众号“联系方式”里说的那样——郑渊洁在童话大王《智齿》里有一句话令我印象深刻,大意是“我有权保持沉默,但你说的每一句话都可能成为我灵感的源泉”。所以,影响不是单向的,很可能我从你那学到的东西更多。
神农和朋友们的杂文集