在过去的几年中,我开发了一些应用程序。其中包括新闻阅读网站、工具类小程序、开源博客程序和数字名片网站等。由于没有考虑盈利,所以可能无法算作成功或失败,但只要有人使用我做出来的东西,我就感到很开心。在这段时间里,我接触了许多技术栈,并学到了一些关于产品的知识。希望通过开发网页、小程序应用和独立开发的一些特点,来总结一下我的经验。
我使用过并放弃的技术栈#
在过去的开发工作中,我经常在多个技术栈之间切换。最开始,大一的时候,我使用 PHP 或 Python 作为后端接口,前端使用 jQuery + LayUI。
不得不说,这个技术栈有点奇怪。考虑到我使用的是前后端分离的开发方法,所以我基本上用不到 PHP 和 Python 那些强大的 MVC 框架,而且 LayUI 本身也不太适合前后端分离开发。再加上 Laytpl 模块只能实现一些简单的组件,对于功能稍微复杂的组件来说,编写和维护的成本很高,所以这种开发方法不太合适。
现阶段使用的前端技术栈#
后来我学习了 React,并使用它来开发新闻阅读网站和数字名片网站等项目。在我看来,学习 React 的成本相对较低。对于有前端基础的朋友来说,一天就能初步掌握并应用于开发中。React 拥有丰富的生态系统,有大量的组件库和界面库可供选择,但我至今仍然没有找到适合我的 UI 库,所以我总是采用手写 CSS 的方式来构建视图。这样做的好处是,我可以自己设计出满意的界面,但缺点是时间成本较高。几个月前,我发现了 tailwindCSS,它是一个使用体验很好的工具,可以提高手写 CSS 的效率,并且更容易封装常用组件。此外,学习 React 让我对前端开发有了全新的认识,它使前端开发变得更加工程化和有层次感,我非常认同它的开发哲学。
现阶段使用的后端技术栈#
首选是 Python + FastAPI,备选是 Golang,甚至可能用不到。考虑转向 JavaScript,全程使用 JavaScript。高中毕业后,我学习了 Python 的基础用法,然后通过它学习了爬虫技术,直到大学才开始用它来做接口。我没有学习 Django,因为它太臃肿,不太适合前后端分离开发模式。主要是因为我当时觉得学习成本太高了,所以随便看看就放弃了。至于 Flask 呢?我也不太喜欢。对于 FastAPI,可谓一见钟情,它的开发非常简单,速度也很快。不需要写复杂的代码,就能直接创建有用的接口。CRUD 本来就是一些相对简单的工作,再写一大堆东西就不合适了。
另外,我建议独立开发者一定要使用高级语言来编写后端接口,最好是弱类型语言。不推荐使用 Java、Rust、C++ 等语言,不要和自己过不去。实际上,我也不太推荐 Golang,开发起来比较麻烦,效率远不如 JavaScript 或 Python。你的应用真的会有那么多人使用吗?还是你的技术不够好,需要语言特性来弥补呢?
UI 设计以借鉴为主#
我对 UI 设计没有太多发言权,因为我没有学过相关课程,也没有阅读过相关书籍。但是当我发布应用到论坛上时,经常有人留言问:“楼主是学设计的吗?”、“真漂亮,楼主是设计师吗?” 答案显而易见,都不是。我只是一名普通的计算机专业学生。正所谓,天下文章一大抄,看你会不会抄。在界面设计方面,主要是借鉴为主。例如,我经常浏览各大公司的网站,并使用审查元素工具来查看一些有趣的效果是如何实现的。有时候我也会收藏一些颜色的十六进制值和渐变函数等。对我帮助最大的是苹果官网,苹果的设计无需多言,我们学习它的风格并应用于自己的应用中,很难出现大的问题。此外,我还会观察 iOS 系统应用的风格设计,作为小程序风格的参考。我发现它们大多数都是简洁易用的界面,拒绝花哨的设计。
我的开发经验有限,开发产品的能力也有限。希望朋友们可以分享自己的独立开发经验,让我学习。也欢迎各位朋友批评指正。