好嘞,各位老铁们,今天给大家伙儿唠唠我最近搞的一个小项目,名字挺唬人,叫《架向星空之桥》,就是个个人练手的项目,别当真哈!
我寻思着,现在各种框架、各种语言,都想试试水,看看哪个更顺手。正好最近有点空,就想着能不能搞个小东西出来。
第一步,定主题。不能太复杂,也不能太没意思。想来想去,就搞个简单的信息展示平台,类似于一个小型博客或者个人作品集。
然后,选技术。后端用一开始想用Python的Django,毕竟比较熟悉。但是转念一想,这都啥年代了,老用老一套没意思,得学点新的。于是咬咬牙,决定用Golang + Gin框架。之前没咋碰过Go,正好逼自己一把。
前端?想用React,但是想想自己JS水平也就那样,而且时间有限,干脆用* + ElementUI,上手快,能快速搭个架子出来。
接下来就是正儿八经的开干了:
- 1. 后端搭建:
配环境。Go的环境配置那叫一个折腾,各种环境变量、GOPATH啥的,搞得我头都大了。还好网上教程多,一步一步照着来,总算搞定了。
然后,创建项目,引入Gin框架。这玩意儿还挺方便,路由、中间件啥的,都封装好了,比自己手写HTTP handler省事多了。
定义数据模型。考虑到是个信息展示平台,就定义了文章(Article)和分类(Category)两个模型。每个文章有标题、内容、发布时间、分类等字段。用GORM连接数据库,我选了MySQL,毕竟用的多,熟。
写API接口。包括文章的增删改查,分类的增删改查。这里面学到了不少Go的语法,比如struct、interface、goroutine等等。写CRUD接口的时候,感觉和用其他语言差不多,但是Go的错误处理确实挺麻烦的,动不动就要`if err != nil`。
- 2. 前端搭建:
用Vue CLI创建项目,引入ElementUI。ElementUI真是个好东西,各种现成的组件,直接拿来用,省了好多事。
然后,设计页面布局。用了ElementUI的Layout组件,搭了个基本的框架,包括头部、侧边栏、内容区。
写组件。文章列表组件、文章详情组件、分类列表组件等等。用Axios调用后端API,获取数据,渲染到页面上。
实现交互。文章的添加、编辑、删除,分类的添加、编辑、删除。用Vue的双向绑定,实现数据的同步更新。
- 3. 前后端联调:
这个过程是最痛苦的。各种跨域问题、数据格式问题、接口参数问题,搞得我焦头烂额。还好Chrome的开发者工具比较强大,可以调试网络请求,查看response,一点一点排查问题。
- 4. 部署:
搞了个云服务器,把前后端代码都部署上去。后端用Nginx做反向代理,前端直接用Nginx部署静态文件。
最终效果:
现在项目跑起来了,虽然功能还比较简陋,界面也比较粗糙,但是总算能用了。可以添加文章、编辑文章、删除文章,可以添加分类、编辑分类、删除分类。
这回实践,让我对Golang和*有了更深入的了解。Golang的性能确实不错,并发处理能力也很强。*的上手速度很快,适合快速开发。也遇到了不少坑,比如Go的错误处理、*的组件通信等等。
这回实践还是挺有意义的,让我学到了不少东西。以后有机会,还会继续深入研究这些技术。
好了,今天就分享到这里,各位老铁,下次再见!
还没有评论,来说两句吧...