PHP熟手使用Rust作为后端开发语言

起因

自学时长两年半 Golang,快出师了,Rust 突然跳入我的生活,当时想法比较单纯,学一定要学最好的,于是就又自学 Rust

这种想法是有问题的,外部的技术变化,会影响你先前计划,导致学什么都很难成气候

之所以坚定的去学Rust, 是看到一篇深入 Go 垃圾回收机制博客,讲到 Go 会定时清理过时内存,再这个时候,CUP 占用率有点高,但 Rust 不会存在这个问题,因为借用的特性,数据离开作用域,就直接清理掉了,这种设计更加优雅和干净

现在看待这个问题,看法又不同了,Go 牺牲了点CUP资源,但开发效率更快

当前(2023年11月),我深深的感到,如果是做 Web API 开发,用 PHP 也许才是优选方案。

至PHP8.2 发布以来,PHP的性能翻了几番。

它的语法,真正算得上是适合各个阶段的开发人员,高级的开发者,能使用它构建出健壮的系统;刚入门的开发者,就算层层if嵌套…几千行的函数、它还是能运行!强类型,它有,弱类型,它支持,框架生态完善。

单纯为了业务快速跑起来,用 PHP 绝对没错,不用在技术上有太多的质疑,而全身心投入到业务当中,让系统先跑起来

Rust Rocket 框架

这是 Web 框架,提供了完善的 请求、响应、路由、中间件等模块,我选用它作为后端接口底层框架。

  • 遇到的第一个问题就是 数据库、缓存 这些常用的模块如何请求、保持、传递,经过小一会儿的学习,解决了资源初始的问题。

  • 遇到的第二个问题就是 数据库操作,对比 Laravel 框架,用 Rocket 仿佛被捆住了手脚,它提供了DB的初始,但未提供类似 ORM 的 DB 操作库,需要自己选择合适的第三方,我选择了 sea-orm,挺好用的,按照文档学习一天,就掌握了基本的 CRUD。

  • 遇到的第三个问题就是 目录如何建?怎么串联一起?这个问题其实多看些 Rust 项目就不会有太多纠结,Rust 有自己的包管理方案,好好看看官方的 《Rust 程序设计语言》 第七章 “使用包、Crate和模块管理不断增长的项目”,总会有自己的办法,完善软件目录。

  • 遇到的第…

这些问题,回过头来看,都解决了,但,对比了之前 PHP 的开发体验,简直太难受了,为了获得所谓的高效,把大把的时间花去学习去了,比如操作数据库的 sea-orm,比如用于序列化的 serde,实际使用起来,并没有像 PHP 那么好用,我需要知道更多东西,才能创造我要的东西…太难受了,项目进度推进慢,这真的是我想要的吗?

当前想到的

转变的过程是痛苦的,我依然会继续使用 RUST,PHP 就像一杆秤,能快速评估业务开发时间,只有使用它的人,才知道它的魅力,所以当要求快速落地,我会毫不犹豫的选择 PHP。

当系统负载量上来的时候,那么 RUST 用武之地就来了,这个时候业务已经上线了,慢是慢,又不是不能用!然后使用 RUST 重构,优化性能。

本作品采用《CC 协议》,转载必须注明作者和本文链接
天高地迥,觉宇宙之无穷;兴尽悲来,识盈虚之有数。
讨论数量: 6
goStruct

工作用go和php,下班用rust。

9个月前 评论
goStruct

工作用go和php,下班用rust。

9个月前 评论

有方向,有毅力,目标一定能到达。绕路是常态,没有一条河流是笔直的。

9个月前 评论

Laravel is best .

9个月前 评论
小李世界 9个月前

rust写web用不到高级玩法

9个月前 评论

Rust 體驗還是很不錯的 :grinning:

9个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
41
粉丝
13
喜欢
78
收藏
68
排名:286
访问:3.3 万
私信
所有博文
社区赞助商