我的独立开发经验分享

过去几年，我陆陆续续开发了一些应用。这其中包括新闻阅读类网站、工具类小程序、开源的博客程序和数字名片网站等。由于没有考虑过盈利，所以可能谈不上成功或失败，我觉得光是做出来的东西有人用就已经很开心了。在这一期间，我接触了很多的技术栈，也学到了关于产品的一些知识。希望就开发网页和小程序应用以及独立开发的一些特点，来做一下总结。

我使用并且放弃过的技术栈

在以往的开发工作中，我总是在多个技术栈之间游走。最开始，大一的时候，我使用 PHP 或者 Python 来作为后端接口，前端使用 jQuery + LayUI。

不得不说，这种技术栈挺奇怪的。考虑到我使用前后端分离的开发方法，所以 PHP 和 Python 那些强大的 MVC 框架我基本用不到，而且 LayUI 本身也不是非常适合前后端分离开发。再加上 Laytpl 模块只能实现一些简单的组件，功能稍微复杂的组件，编写和维护成本很高，所以这种开发方法不太恰当。

现阶段使用的前端技术栈

后来我学习了 React，并使用它开发了新版的新闻阅读网站和数字名片网站等项目。在我看来，React 学习成本较低。对于有前端基础的朋友来说，一天就能初步掌握并应用在开发中。React 生态丰富，有大量的组件库和界面库可供选择，但我时至今日仍没有找到适合我的 UI 库，所以我总是采用古法手搓 CSS 的方法来构建视图。这样做的好处是，我可以搓出令自己满意的界面，坏处是时间成本高。前几个月，我发现了 tailwindCSS，它是一个使用体验很好的工具，让我手搓 CSS 的效率变高，而且可以更加容易的封装常用组件。此外，学习 React 让我对前端开发有了全新了认识，它让前端开发变得更加工程化和富有层次感，它的开发哲学我也非常认可。

现阶段使用的后端技术栈

Python + FastAPI 是首选，Golang 是备选，甚至用不到。考虑转到 JavaScript，All in JavaScript。我高三参加完 NOIP 比赛后，学习了 Python 的基础用法，后来通过它学习了爬虫技术，直到大学才用它来做接口。我并没有学习 Django，它太臃肿，不太适合前后端分离开发的模式。主要是，我当时感觉学习成本太高了，随便看看就放弃了。至于 Flask 呢？我也不太喜欢。对 FastAPI，可谓一眼钟情，它开发起来很简单，速度起飞。不用做复杂的编写，就能直接做出有用的接口来。Crud 本来就是一些偏简单的工作，再写一大堆东西就不合适了吧。

另外，我建议独立开发者一定要使用高级语言来编写后端接口，最好是弱类型的。不推荐的语言有 Java、Rust、C++，不能跟自己过不去呀。其实也太推荐 Golang，开发起来挺蛋疼的，效率远不如 JavaScript 或者 Python。你的应用真的有那么多人使用吗？还是你的技术不行以至于需要语言特性来弥补？

UI 设计以抄为主

UI 设计我最没发言权了，因为我没学过相关课程，也没阅读过相关书籍。但是当我发布应用到论坛的时候，经常有人留言问 “楼主是学设计的吗？”，“真漂亮，楼主是设计师吗？”。答案很显然，都不是。我只是一名计算机专业的普通学生。正所谓，天下文章一大抄，看你会抄不会抄。界面上，主要以抄袭为主。比如，我经常浏览各大公司的网站，并且打开审查元素工具，看一些有趣的效果是怎么实现的。有时候也会收藏一些颜色的十六进制值和一些渐变函数等。让我获益最大的当属苹果官网，苹果的设计肯定不用说，我们学习它的风格并且应用在自己的应用上，很难会出现什么大的问题。并且我会观察 iOS 系统应用的风格设计，来作为小程序风格的参考。发现他们大多都是界面简洁易用的，拒绝花里胡哨。

我的开发经验有限，开发产品的能力也很有限。希望朋友们可以分享自己的独立开发经验，让我来学习。也欢迎各位朋友，批评指正。