写在前面
本文可能不会有很多令人兴奋的技术细节,作者也在不断探索学习中,但是可能会对你有所激励和启发。作为一个拍脑袋想要做业余项目很多次,但是每次都不了了之的菜鸡,写这篇文章的最主要的目的是记录自己做完这个项目的全过程,既是分享,也是记录。希望在完成这个项目之后,重新回到启动的时刻,反思整个过程,更多了解自己的不足。只有学习过,实践过,分享过,总结过之后才能真正的夯实自己学到的东西。
为什么要做个人网站
基于前几次失败的经验,作者更希望能交付一个简单的有成果的项目,在过程中学习反思,完成交付后,再回过头来继续优化细节和增加功能。个人网站的项目范围和复杂度都非常可控,交付之后也可以做为个人的博客和展示网站,在之后的求职中也可以用到,非常理想。基于以上的想法,作者想要以尽量简单但是又能包含整个web app整个生命周期的方式做一个简单的个人网站。
技术选型
基于学习的目的,各个技术栈能用到的库/技术/工具尽量会选择较新的技术工具。
- 前端ui界面计划使用react的18版本,组件库选择nextUI,选择nextui的主要原因是他比较符合我的审美,而且他相对较新,如果开发过程中碰到有bug还能顺手去提个pr,再者他和next.js可以集成,未来如果想要学习和使用next.js打通前后端。
- 页面设计目前是在dripple上借鉴了一个极简的showcase website的设计,但是设计稿本身不够完整,后续可能会自己添加一些别的元素。
- 服务端计划使用无头cms,目前选定strapi。无他,起的快和js方便点。未来有时间考虑在深入学习node.js,go或者c#后,自己写个后端替换。
- CI/CD计划使用github actions,因为最后项目会托管到github且没有很复杂的ci/cd需求,使用github actions可以很好的集成,学生账户也有一定的pro feature.
- 前端工具库计划使用pnpm作为包管理工具,vite作为构建工具,zustand或者jotai作为状态管理工具。别问,问就是相对比较新还比较轻量。单元测试使用testing-library,e2e测试使用playwright(目前的功能应该用不到复杂的e2e测试),最后用githooks简单做一些校验和代码风格统一工作。
写在开始的最后
之前有很多次拍脑袋想要自己做一套组件库,cli和小工具的想法,每一次都是在迷失在各种细节的完善中最后不了了之。但是最后才发现,一个能交付的成果可能比一百个不能交付的想法要实在。希望这次能坚持到最后。
未完待续。