从前端到全栈的旅程:第一部分

我一直想更积极地写开发博客,最近受到 Kevin Powell 播客的启发,开始更多地写博客。谢谢 Kevin!

自 6 月份游戏发布以来,我一直和十几个朋友一起运营 College Football 2025 Online Dynasty。我们玩得很开心,现在已经是第三个赛季了。不过,这款游戏的主要缺点之一是游戏内统计数据、奖杯和奖励严重不足。我们有一个 discord 频道和一个 Google 表格,用于记录结果和长期统计数据。这很好,但我内心的 Web 开发人员认为这是一个制作非常酷的网站的好机会。

从历史上看,这对我来说一直是一个败笔。有些人可能会把我称为“前端前端”开发人员。我擅长创建可访问的 HTML 标记和功能性 CSS(以及客户端 JS)。我知道技术可以实现什么,但通常总是很难让所有部分都合适。但这次不会!我写这篇博文是为了对自己负责,并与世界分享我的挣扎、学习和知识。

跟踪数据

我创建了一个 Google Sheet,我和联盟的其他成员都可以访问,其中有对手、得分和其他个人比赛特定数据的列。快速谷歌查询显示有一个 Google Sheets API 可用,我可以利用它将数据从工作表拉到网站!你能想到的更简单吗?简单是我在整个项目中所倡导的。这不仅是因为我不想让自己不知所措,还因为我正在创建一个相对静态的网站,最多只有 20 个人。

然而,经过过去一个月 10-12 小时的折腾,我发现这个 Google Sheets API 并不像我希望的那么简单。它至少有一个额外的挑战,那就是它不如其他选项那么受欢迎,所以我不需要做大量 Stack Overflow 式的故障排除。我遇到的所有麻烦都感觉非常独特和困难。我还犯了一个错误,最初按照 YouTube 教程设置项目,跳过了一些我相对不熟悉的 Node.js 设置内容。而且,最重要的是,出于某种原因,我决定这是利用 React 的好时机,而我绝不是这方面的专家。基本上,我承担了超出自己能力范围的事情。我意识到我需要将我的战斗分成几部分,让这个项目对我来说更容易管理。

SQLite

在决定 Sheets 不适合我之后,我研究了轻量级数据库的最佳选择。我对此一无所知。我在 2018 年参加了 SQL 课程,但在日常生活中甚至一天都没有用过它。我发现很多文章和 Reddit 帖子都建议人们使用 SQLite 进行小型项目。这似乎非常适合我想要完成的工作。

我知道我需要设计我的数据库,并确定我需要什么样的表和列来创建我想要的组件。我基本上想复制你看到的任何联盟的网站(NHL.com、MLB.com 等)。我快速搜索了一下,找到了 https://dbdiagram.io/。我使用了这个工具,并为我的网站设计了一个基本的数据库。我发现这个工具对我自己非常有价值,因为它让我熟悉了 SQL 命令和术语,而实际上还没有数据库。

Screenshot of Database Diagram's website and my Database's design

在设置此图表后,我信心满满,并且相信自己确实了解自己要做什么(请记住,我是 SQL 新手),我启动了 SQLiteStudio(SQLite 的 GUI)并开始工作。我输入了用户、团队和会议表的所有数据。在 w3schools 的帮助下,我实际上能够运行 SQL 查询,该查询从 3 个单独的表中返回数据!非常成功!

SELECT users.username, teams.school_name, teams.nickname, conferences.conference_name
FROM users
    INNER JOIN teams
    ON users.current_team=teams.team_id
    INNER JOIN conferences
    ON teams.conference=conferences.conference_id
Image showing SQLiteStudio results of the query above.

下一步

这是我上周末取得的成功。我非常高兴能够毫无障碍地构思、设计和构建这个基本数据库。接下来,我将尝试更好地理解 Node.js,以便我可以使用 JavaScript 在我的 Web 项目中实际使用这些数据。我以前使用过 Node.js,但对它实际上在做什么知之甚少。我计划在开始之前做一些教程并通过 w3schools 来帮助我。

感谢您的阅读,请随时分享您认为可能对我有帮助的任何资源!