< 返回版块

2019-03-21 12:14    责任编辑:Mike

本文转载自:https://www.driftluo.com/article/e77bc7d8-b352-4b4b-9e12-dd0ad059517b

用 Rust 写博客的总结

经过一个多月的时间,我终于把网站写出来了,总结一下收获。

为什么用 Rust

大部分语言都可以用来写 Web,我会的也不少,但是我还是选择了 Rust。原因是:

  • 想写一个能够有持续维护能力的项目;
  • 用 Django 写网站给我的感觉是在写配置文件而不是代码;
  • Rust 在响应速度上有保证;
  • 这个项目算是一个自我挑战,作为今年的总结;

选用的 web 框架

后端

Rust 虽然是一门新语言,但是社区中的 web 框架并不算少,出名的有 IronRockt 等。挑选一番后倾向于 RouilleSapper ,我不太喜欢用 nightly 版本的编译器,这两个框架都支持 stable 版本,前者基于 tiny-http,后者基于 hypper 0.10.13 这个出名的 http 库。我对 hypper 还算熟悉,并且 Sapper 的作者 @daogangtang 还是认识的,虽然文档上有缺陷,最后还是选择了 Sapper 这个 web 框架,后续我会写一些 sapper 的入门教程,虽然这个框架理念很清晰,用起来很简单。

前端

最初,我的设想是用前后端分离的模式去写这个博客,前端选用 Vue,后端用 Rust。但是我高估了我的学习能力,刚开始写的时候,其实我并没有学过 js,打算花一个星期去学 Vue,4 天后我放弃了,前端框架并不是一个不会 js 的人能够快速上手的,之后我花了 3 天时间去看了 html/css/js 和 jQuery/boostraps,把 Sapper 应用写成了两个,一个只提供 API,一个只提供 web 模板(MVC)。

关于这个博客

实际上,这个博客,我在后端上花的时间不到前端的三分之一,可以简单的拆解成,后端一星期,前端三星期,重点还是在后台管理界面,用了很多 js 库,比如 Markdown 前端渲染:marked.js;前端模板渲染:art-template;前端富文本编辑器:wangEditor;代码高亮:highlight;时间处理:moment;图表展示:echarts。前端坑很多……有时候我是真的费解(js 为什么能够称为语言,es6 之前没有 import/export)。

关于 Rust

Rust,是一门系统级语言,表达能力却很强,在写网站的过程中,我更多的时间是在考虑前端的问题,Rust 写起来的速度是不亚于 Python 的。尽管 Rust 是一个刚刚出生的语言,生态并不是很完善,但是它依然能够胜任许多工作。

编译器 rustc 帮助程序员检查内存问题,并且给出的提示都非常友好,非常详细。

cargo 自带集成测试,单元测试,bench,脚本启动,自动生成文档等功能,让程序员非常舒心。

rustup 作为 Rust 的版本管理器,可以非常方便的切换 nightly/stable 版本,或者指定到对应版本,同时能够使用 rustup 对 rust 进行更新。

社区

在写网站过程中,社区的朋友们给了我很大的支持,非常友好,比如 diesel 社区的 @killercup,中文社区的 @daogangtang,@野喵 在此表示感谢

最后

认识我的都知道,其实我刚转行没多久,很多东西不了解。学习 Rust 的过程中,为了了解一些概念,也去看了 C/C++ 的一些书,多种语言对照,看得会更清楚。Rust 追求的不是新理论,追求的是现行条件下的最佳实践(也不知道有没有写错)。在 Rust 里面可以看到很多其他语言的影子,借鉴了很多其他语言的实现。最后,希望 Rust 越来越好,Rust 社区越来越强大。