从 PHP 到 Next.js:我的全栈开发技术栈历程
作为一名前端开发者,回顾自己从 PHP 到 React 和 Next.js 的成长历程,真的是充满了挑战和惊喜。虽然刚开始接触开发时,我是从 PHP 开始的,但是现在已经完全换成了更现代的技术栈。今天,想和大家分享一下我如何从过去的 PHP 项目中走出来,最终采用 Next.js 和其他前沿技术的心得。
起步:PHP + Laravel
在接触 React 和现代 JavaScript 框架之前,我的开发生涯几乎都和 PHP 打交道。我的技术栈大概是这样:
- 后端框架:Laravel
- 数据库:MySQL
在那个阶段,PHP 是我唯一熟悉的后端语言。用它做过许多小工具和小项目,尽管这些项目基本上都是 CRUD(增删改查)类型的,但我始终认为,服务的本质不就是 CRUD 吗?通过 PHP,快速构建项目、验证市场需求,是我当时的开发目标。
转型:Node.js 和 JavaScript 的世界
随着开发经验的积累,我开始接触 Node.js,并逐渐对前端框架产生了兴趣。虽然 PHP 在小项目中依旧占据了一定的位置,但 JavaScript 逐渐成为我的主力技术栈。特别是随着 React 和 Next.js 的流行,我开始学习这些技术,并将其运用到实际项目中。
当前的全栈技术栈
前端框架:Next.js + TypeScript
在前端,我已经全面转向 Next.js。得益于其出色的 SSR(服务器端渲染)能力和强大的 App Router,Next.js 成为我当前最常用的框架。除此之外,我还用了 TypeScript,它为开发带来了类型检查和更好的开发体验。
后端:Next.js API 路由
使用 Next.js 进行全栈开发,后端的部分自然也交给 Next.js 来处理。通过其强大的 API 路由系统,我可以轻松地将前端和后端逻辑整合在一起,简化了开发流程。
数据库:PostgreSQL + Prisma
在数据库方面,我选择了 PostgreSQL,因为它稳定且功能强大。而为了更加高效地操作数据库,我使用了 Prisma,这个 ORM 框架让数据库操作变得更加直观和安全。
权限管理:NextAuth.js
对于权限管理,我使用了 NextAuth.js。它是一个轻量级的身份认证库,支持多种登录方式,包括 Google、GitHub 等第三方认证,完美适配 Next.js。
UI 框架:Shadcn + TailwindCSS
在 UI 上,我选择了 Shadcn,结合 TailwindCSS,让前端开发变得更加高效且灵活。TailwindCSS 的原子化类名帮助我快速构建自定义样式,而 Shadcn 则提供了一些现成的组件,减少了重复造轮子的工作。
开发工具与测试
- IDE:WebStorm
- 测试框架:Jest
- 状态管理:React Context API
- API 请求库:Axios
- 日志管理:Pino
这些工具都大大提升了开发效率。WebStorm 是我最爱的 IDE,Jest 用于单元测试,而 Pino 则帮助我进行高效的日志记录。
持续集成与部署
- CI/CD:GitHub Actions
- 容器化工具:Docker(可选)
- 版本控制:Git
- 持续集成平台:Vercel
Vercel 作为我的部署平台,提供了便捷的部署和预览功能,而 GitHub Actions 则帮助我自动化了测试和部署过程。
代码质量与文档工具
- 代码风格检查:ESLint、Prettier
- 文档工具:Swagger
为了保证代码质量,我严格遵守 ESLint 和 Prettier 的规则,确保代码的可读性和一致性。同时,Swagger 帮助我生成 API 文档,便于团队成员之间的协作。
结语
从 PHP 到 Next.js,我经历了一段成长和转型的旅程。尽管 PHP 在某些小型项目中依然有其优势,但随着前端技术的不断发展,我逐渐转向了现代化的全栈开发栈。每种技术栈都有其独特的优势和应用场景,掌握多种技术可以让我在开发中游刃有余。
如果你也正在寻找全栈开发的技术栈参考,希望我的分享对你有所帮助!