计算机专业学了这么久,却从来没有正经做过一个真是可用的全栈项目,现在越想越发觉自己当初就是陷入了“Tutorail Hell”,看了一堆教程却从来没实践。
这次终于打算实践了,毕竟需要丰富一下 Github 和简历,却赶上 AI 时代,手写代码动力大大减少,愈发觉得那些框架的学习本身也只是实现细节,是可以忽略的,懂原理和其背后的思想就好,尤其是当我写到前端代码时才发现:靠,要学的东西那么多,HTML 、CSS 、JavaScript 、TypeScript 这些就算了,React UI 库还不够,之后还得什么状态管理要一个库,SPA 程序模拟 URL 路径需要一个路由库,还需要一个调用后端 API 的前端库管理后端错误、缓存 API 结果等,更别说一坨项目配置了,而且说实话没有 AI 的话 HTML ,CSS 对我来说都难。但从另一个角度思考,如果没有自己采用这些实现细节反而只是阅读了 AI 写的代码或者说甚至没有读,我真的有学会吗?剥离实现细节只注重设计这一阶段是不是必须先过了看重实现细节那个阶段?就像成为 Senior 必须先经过 Mid 。
总之,最后我用 C#、.NET 、ASP.NET Core ,EF Core ,Postgresql 完成了该项目后端,React ,TanStack Query ,TanStack Router ,TypeScript ,ShadCN UI ,Tailwind 完成了前端部分。
项目地址在: https://github.com/lorenzoyang/TavoloFlow
里面有非常详细的介绍和我的学习、开发过程。
它能做什么:
- 顾客扫桌上的码,用手机点菜,不用装 App 也不用注册;服务员开桌时会给一个四位入桌码,防止有人拍了码在家下单
- 厨房平板上同样的菜合成一行,有新订单会响;传菜台送到桌上点一下
- 付钱还是在收银台,系统不经手钱,也不开税务小票
- 顾客、员工、后台都有中文、意大利语、英语三种语言,员工端可以装成 PWA
不足:
- 不能打印厨房单。做完拿去给老板看才发现几乎每家都要这个
- 用轮询刷新,不是 WebSocket ,只适合小店
- 只能单实例部署