Skip to content

我从来没有觉得写代码开心过

最近一个月在写软件设计与构造的课程设计,是写一个 xxx 管理系统这样的东西。

这应该是大多数学计算机的学生都会写的吧,我也让世界上又多了一个管理系统。

我是用 node.js 的 Express 框架写的后端,Vue3 写的前端,用了 Elment Plus 的组件,以及用了 vue-router 那些。

实现得不怎么好看,一开始建文件夹的时候,我对这些一点都不会。基本是搜一点写一点,哪里不会实现或者看不懂,就问问 Gpt 和 DeepSeek。感觉还是学到了一些东西的,尽管我写的这些代码没有任何实际的价值,了解了一点开发流程吧,知道前端如何向后端请求数据,以及一些 SQL 操作。

当然,对 Vue 也是了解了一些,这使得我以后可以自己写一些代码来美化现在这个博客,这个用的是 vitePress,主要也是 Vue。

遇到的一些问题

在写代码的过程中,有挺多想法的吧,但是这里不一定记得了,想一点记一点吧。

是不是要尽量用 ts 呢

在学鸿蒙开发的时候,得写那个 ArkTs,就是他们改的一个 ts 版本吧,就是感觉很麻烦,类型检查很麻烦,我请求个 api 都得定义一个接口或者类。那时我想着,如果是 js 就好了。

写这个课设的时候,我就主要用的 js,基本没用 ts,写起来确实挺方便的,但是像用 IDE 有时候就没有很好的补全,它不知道你自己的某些对象有哪些属性,如果我们用 ts,就可以比较方便,还能避免一些错误。

没写过 ts,只是说一下自己的理解。

真应该用 ES6 吧

我的代码大部分地方用的不是 ES6 的写法,如果我要改的话,就得全部都要修改,很麻烦,于是就没改了……没啥时间,马上期末考试了。

感觉 ES6 写法比较美观,我似乎不知道啥其他好处?我不知道我为啥想用这样的写法来着,但是确实是一直这样想,事实上我只知道 import 方式的不同。

SQL 查询不要用格式化字符串

一开始写 SQL 查询,他大概是这样

javascript
db.query('SELECT * FROM xx WHERE id = ?', id)

上学期学了 jsp,我看也是差不多这样写的,现在看到,本来打算直接用格式化字符串的。我这样写了,问了一下 Gpt,它告诉我这样可能会被 SQL 注入,不安全。

比如别人让 id 等于一个字符串,可以干扰你的 SQL 操作。

大概举个例子,比如 SELECT * FROM xx WHERE id = 1; DELETE DATABASE xxx;,如果用人把 id = '1; DELETE DATABASE xxx;' 传过来,那他可以删你的数据库,或者干其他的事。

部署

我一开始就想,代码写好了该怎么部署的。。。就是想别人实际开发的代码,会怎么做,总不能前端一直 npm run dev 开着吧,我知道 vue 可以打包成静态文件。

我领了一个月试用的腾讯云服务器,试了一下,js, python, nginx 都可以挂静态网站吧,不过没有备案域名,不能挂带域名的网站或者用 80 和 443 端口……而且也不能用 https,以及服务器可用时长小于三个月无法备案。

感觉前端和后端运行在两个端口挺合理的,方便测试。像写这种作业,可以把前端部署到 Github/Cloudflare Pages,然后后端放本地或者服务器,感觉还行。不过如果用服务器,且不能 https 的话,那只能 Github Pages 不开 https 了,似乎有点不稳定。

写了很多重复代码

几个页面基本结构是差不多的,复制了很多东西……

以及 api 请求我没有封装到一个文件里,只是要用是 axios 一下……感觉不太好,而且不会更方便,不过理解起来挺简单的。

一些 VS Code 插件

代码格式化和检查可以去 VS Code 扩展商店装一下 ESLintPrettier,我是最后要写完,才想着去装个格式化代码工具的。。。用了格式化,看起来舒服多了。

测试后端接口,可以装 VS Code 插件叫 REST Clinet,感觉这个好方便。我不会用 Postman,老师教过的,没听。

连接数据库,可以装 Database Client JDBC,算是能用吧,我刚开始搞时用了一下,后面可以直接用 SQL 语句查询的。

一个人写也挺好的

因为按小组分工,我写后端,然后我感觉,如果别人来写前端,那我必须得写一个比较清晰的 api 文档吧,感觉也有点麻烦,虽然有一些自动化工具。

主要是我写得也挺烂的,后面我自己写前端,甚至写一点可能还要去改一下后端。不过最开始,我是把 api 接口简单写了个文档的,放在 README 了,不过后来删了。

如果以后去做实际的开发,困难肯定会难很多。要做的东西肯定也会难很多,还会有很多其他的困难。不过不知道这是不是离我很远。

end

总共大概也写了快二十天,至少几十个小时了,效率有点低吧,不过也算是一个比较新的体验了。

暂时这样吧,其实没有想到这个仓库还是只有我一个人提交了代码,我的 repo 大部分时候 Contributor 只有我,或者还有个 Github Robot。