8月底开始写新项目,程序架构基于golang(GIN) + VUE3 ,项目已经写的七七八八了。回顾一下整个项目的开发体验。
Golang
为什么后端选用go?
因为项目需要保密源码,go天生自带保护机制。编译软件后,全世界电脑都可以运行了。其次就是go内置了高效的http服务库,减少用户安装运行环境的困惑。
go的开发杂谈
-
go的web框架方面,我了解过gin和beego,选择gin主要因为参考了别人写的go程序使用gin,我也跟着用,就是这么简单。
-
go的类型转换有点繁琐,因为第一次写项目,总是记不住字符串转换的几个方法、数值分int32、int64、float64 等等……有时候需要断言才可以直接使用。我要强调的是:这些都是语言特性,不是缺点。
-
map是无序的。如果你需要保持顺序,前端能提交数组就数组。非必要下不要提交对象。
-
go没有传统的异常机制,所以好好写erro,并封装好日志。这样出问题可以快速定位。
-
go有强大的结构体,可以写出花活出来。但是作为第一次写go项目,我感受结构体有点麻烦(数据库业务环境)。数据库字段发生变化,结构体也要跟着变化。所以我项目中数据库读取内容,大部分都是map为主。除非数据有要求,我才会用结构体。
-
学会装备自己的go常用函数、常用库。例如:时间转换、各种类型转换。这样可以节省你的开发时间。
-
如果是面向用户运行的项目,go尽量选用静态依赖,公司运行的项目就随便了。
go目前我遇到的体验大概就是上面几点了。go的一些关键特性我还没用到,所以还没踩到里面的坑。
VUE3
前端方面,我一直只会Bootstrap。vue2写过一点,后面到vue3发布后,我也偶然写了一点东西,不是太熟悉。这次就直接选用vue3,但是vue3 有选项式和API模式。由于习惯了vue2的写法,选项式毫无疑问继续书写。
vue3的开发杂谈
- 强大的组件,万物解可组件。我写一个功能,因为总想着组件化,开发进度缓慢。我需要组件拥有足够强大的数据更新、数据传递、自定义模板……写着写着发现自己越写越复杂。
- 数据绑定、传递、更新,组件间的值传递和更新等等。经典场景:我有一个值A,我赋值给B,B修改后,A不跟着修改。这需要做浅绑定,这些都是业务中容易遇到的。
- 不要过于纠缠UI库没有提供的接口。例如:elm的表格,确实很强大和灵活。但是有时候表格功能自己写起来也很痛苦,这时候不如粗暴地用table来写效果。
- 和go一样情况,能用数组就数组,对象虽然很爽,但是提交火葬场。妈蛋,顺序怎么又变了?
结尾
以上就是我写Golang和VUE3的开发体验了,不知不觉写了一小时。