最近做了几个小的项目,做个总结。

最近主要在整三个小网站

Umbrella167/HUGEMINI (github.com)

TnTeQAQ/HULaTeX (github.com)

TnTeQAQ/HUProblem_Analyzer (github.com)

下面是对这三个小网站的一个总结。

HUGEMINI

第一个是给谷歌的gemini写了个web界面,类似的github上已经有很多了,如下

image-20240129012406268

这个项目的前后端用时大概在,前端8:后端2左右,感觉前端根本不应该花这么多时间。

然后代码中用到flask后端渲染的基本没有,基本上都是靠原生js来处理了。感觉flask用了个寂寞。

这个项目中遇到的几个问题感觉还需要学习完善一下。

  1. 前端搭建用时过长,相加新功能就可能对每个模块进行大幅改造。(不大清楚现在的框架能不能做到快速搭建好看有用的页面)
  2. git的使用问题,问就是完全不会用,版本搞得一坨,还有上传文件时包含了key,有没有办法在代码中单独注释一段让git忽略,难道每次上传都要去删key吗(有点麻烦)。

HULaTeX

给同学写的网页LaTeX编辑器

image-20240129014305283

这个写的挺不满意的,但感觉主要的问题出在latex,实在是太多编译方法了,有的时候还需要编译两遍。

我程序里用的pdflatex来编译的,是通过python subprocess.run()直接调用的。

为啥这样调,因为pip安装了pdflatex,结果老是说临时文件找不到,就去看了下他怎么写的,结果他也是subprocess.run()直接调用的😅。

这个东西就是这个项目的噩梦,感觉一切的不适都是这玩意引起的。

下面是这个项目的一些问题:

  1. 项目环境问题,我本来是想在同学的电脑上让他直接跑这个程序的,结果因为pdflatex这玩意各种出问题,反正就是跑不起来,最后也没用这玩意。(其实还想试试用docker去配这个环境的,但是我同学他电脑没docker啊!!!)
  2. 异步问题,这里我想的是输入结束就自动上传编译返回结果,然后因为不好判断什么时候输入结束,所以我就设置的是停止输入0.8s后就自动上传。但是!打字慢或者停顿救不了啊,有时候输一句话会连续上传好几次,但是我需要的只有一次,就会导致很多请求发过来,正常是不会出问题的,但是一起发过来就会有很多莫名其妙的问题,完全没头绪。
  3. subprocess.run的交互问题,subprocess.run运行pdflatex有时候会遇到需要在控制台二次输入的情况,我想让这种情况直接报错,但是完全没有头绪,而且除了控制台外完全看不到回显,感觉还是不熟导致的。

HUProblem_Analyzer

这个是为了过几天的数模美赛准备的题目分析器

image-20240129024817577

如图,可用作美赛题目pdf的分析与搜索。

下面是遇到的一些问题:

  1. pdf标题的识别,这里用的是正则匹配,但是经常会出错,原本是想让ai来分辨标题的,结果ai好像也不大会识别,目前还没有想到更好的办法。
  2. 代码冗余,在一个模块里写功能函数,写着写着发现写得太多了,而且也不适合放在一个模块里,但是这时候想要重构代码就很麻烦了,感觉还是要从最开始就规划好才行,不然到后面改都不好改。

后面两个项目的前端部分写的基本就比较少了,HUProblem_Analyzer用上了模板渲染还是比较满意的,感觉还是要学一个比较成熟的前端框架才行,但是学vue的话就感觉有点大炮打鸟了。

而且特地去整前后端分离也比较麻烦,还是等具体有需求的时候再说吧。。。