有没有大佬能提供一个 go 全栈的技能列表?

要求:能不太慢地开发网站就够了,可选的技能请提供一些作用。我要做的网站很复杂,感觉至少一百个页面。

起因是我在学 go 相关的技能的时候发现需要学的东西越来越多,我怕我到死都学不完。我好像都因为这个拖延了。然后反思了一下,感觉我可能是没有大局观。我感觉如果有一个必学技能的列表的话,我可能会更开心一些。

我列一下我学过和打算学的东西:学过的:PG:别人说好我就动心了,测了一下我的网站需要用的复杂查询 PG 确实比 MySQL 快。gin:感觉能提升一点开发效率。安全和减少 BUG 方面的书:怕网站出错之后用户流失。git:不解释。TS:据说能减少 BUG。打算学的:bootstrap:网站漂亮一点用户和自己都能舒服一些。GORM:DeepSeek 说能提高不少开发效率,我打算简单查询用 GORM,复杂查询用 SQL。还有一大堆相关的库,比如 gorilla/sessions、go-playground/validator 等。我不打算学前端框架,实在是学不动了,我想尽快把网站做出来。不过我发现某些前端库好像是依赖于前端框架的,这个有什么解决办法吗?

阅读 1.2k
avatarAI BotBETA

以下是针对Go全栈开发的技能列表,旨在帮助你高效开发一个复杂的网站(100+页面),同时避免不必要的学习负担。核心思路是聚焦最小可行技能集:只选高效、实用的工具,减少学习曲线,让你快速产出产品。基于你学过的内容(PostgreSQL、gin、安全书、git、TypeScript)和打算学的(Bootstrap、GORM、gorilla/sessions等),我将技能分为必学核心(确保基本功能)和可选高级(仅在需要时学),每项附带简要作用解释。

必学核心技能列表

这些是开发网站的最低要求,足够快速处理复杂场景(如数据库查询、安全防护),并减少BUG:

  1. Go语言基础与标准库

    • 作用:核心语言技能,处理并发、文件操作和基本网络请求。go build工具简化部署。
    • 为什么必学:你已经学gin(基于标准库),无需深挖全部,但熟悉http包和goroutines是基础。
  2. Web框架(gin)

    • 作用:高速路由、中间件管理和API开发。减少重复代码,提升开发速度。
    • 为什么必学:你已学过它——它轻量高效,适合100+页面的复杂站点(如路由分组优化)。
  3. 数据库(PostgreSQL + GORM + SQL)

    • 作用

      • PostgreSQL:处理复杂查询和事务(你实测它更快)。使用pgAdmin或命令行管理。
      • GORM:ORM库用于简单CRUD(创建、读取、更新、删除),自动生成SQL,节省时间。
      • SQL:直接写原生SQL for 复杂查询(如join或分析),避免ORM的局限。
    • 为什么必学:组合使用(GORM for 80%简单操作,SQL for 20%复杂部分)最平衡效率和灵活性。
  4. 前端基础(HTML/CSS + JavaScript with TypeScript + Bootstrap)

    • 作用

      • HTML/CSS:构建页面结构和小册样式。无需框架也能工作。
      • TypeScript:增强JS的类型检查,减少运行时BUG(你已学)。
      • Bootstrap:UI库提供预建组件(如表格、表单),加速界面开发。
    • 为什么必学:Bootstrap独立于框架,可用CDN集成;TypeScript编译到纯JS。这样能跳过React/Vue等框架,专注于内容。
  5. 安全库与验证

    • 作用

      • go-playground/validator:输入验证,防止恶意数据或SQL注入。
      • gorilla/sessions:会话管理,处理用户登录状态(如用cookie存储)。
      • 基础安全实践:应用学过的安全书知识(如XSS/CSRF防御)。
    • 为什么必学:这些库轻量(仅几小时学会),减少安全漏洞导致用户流失。
  6. 版本控制与工具(git)

    • 作用:代码管理、协作和回滚。你已掌握——保持使用。
    • 为什么必学:不解释,必备。
  7. TypeScript集成

    • 作用:编译为JavaScript,添加类型安全,避免前端BUG。
    • 为什么必学:你用TS可直接写脚本,无需额外前端框架。编译工具(如tsc)简单配置即可。

可选高级技能

这些用于优化或扩展,仅当网站上线后有瓶颈时学(能忽略初期):

  • 缓存(Redis):作用:加速会话或数据访问,可选 if 性能问题出现。
  • 部署工具(Docker):作用:容器化app,简化部署,可选 if 你转向生产环境。
  • 测试(Go testing包):作用:单元测试后端逻辑,可选以增强可靠性(不影响MVP)。
  • GraphQL:作用:替代REST优化API,可选 if 复杂数据取代替力。
  • 更多库(如go-chi用于路由):作用:备选框架,可选 if gin不满足特殊需求。

解决前端库依赖问题

你提到某些前端库依赖框架(如React组件),解决办法是避开框架:100%用vanilla JavaScript或TypeScript实现,依靠CDN和轻量库。具体:

  • Bootstrap自带JS组件:它提供modal、carousel等功能,基于原生JS,不需要框架。用Bootstrap CDN链接直接嵌入HTML。
  • 替代库:如需交互(如AJAX调用),用Axios(HTTP客户端库,纯JS)或jQuery(轻量,CDN集成),无框架依赖。
  • 工作流:写纯HTML/CSS/TS文件,后端gin提供API(e.g., /data返回JSON),前端用fetch或Axios获取数据。TS编译确保类型安全。
  • 优势:这样你只学TS和Bootstrap,不碰框架。遇到依赖库时,查文档确保它支持vanilla JS或找替代品(社区90%有解决方案)。

行动建议和鼓励

别再拖延了!你的技能栈已覆盖80%需求—focus on building an MVP(最小可行产品)先:

  1. 优先顺序:先掌握必学核心(1-7项),耗时2-4周(按每天1-2小时),边学边建原型(e.g., 用gin创建登录页,PG存储数据)。
  2. 工具清单:用这些加速开发:

    • 编辑器:VS Code with Go and TS extensions.
    • CLI工具:go run for 本地测试,tsc for TS编译.
  3. 心理调整:大局观是“学以致用”,不是学所有库。设定小目标(如本周完成登录系统)保持动力。复杂项目分模块开发,先做核心功能。
  4. 资源推荐:Go官方文档、Bootstrap官网例子、TS Handbook—所有学习资源免费高效。别再列新库了,你列的都够用!

坚持住,你的网站不久就能上线—分享进度,社区挺你! 😊

1 个回答

初级阶段: Go 语法 → Web 框架 → 数据库操作

中级阶段: 微服务 → 前端框架 → 容器化

高级阶段: 系统架构 → 性能优化 → 团队管理

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进