登录

OA开发日记(二):调研——技术选型与方案对比

确定了要开发 OA 系统之后,接下来就是技术选型

我的服务器配置是 1核1G,这意味着我不能使用任何重量级的框架或运行时。我需要的是一个极致轻量的技术方案。


调研了几个方向

一、Python + Flask / Django

Python 是我最熟悉的语言之一,Flask 和 Django 都是成熟的 Web 框架。但 Python 在 1核1G 的服务器上运行,加上数据库和 Nginx,资源会比较紧张。而且 Python 的部署相对复杂,需要管理虚拟环境、WSGI 服务器等。

二、Node.js + Express

Node.js 的异步非阻塞模型很适合 I/O 密集型的应用,但 Node.js 的包管理(node_modules)体积较大,而且对于 1G 内存的服务器来说,Node.js 的内存占用也不算低。

三、PHP 原生开发

PHP 是专门为 Web 设计的语言,与 Nginx 配合得天衣无缝。PHP-FPM 本身非常轻量,每个进程只占用几 MB 内存。而且 PHP 的部署极其简单——把文件放到目录下就能运行。

四、数据库选型

对于数据库,我考虑了 MySQL 和 SQLite。MySQL 需要单独安装和配置,占用额外的内存。而 SQLite 是文件型数据库,零配置、零维护,整个数据库就是一个文件,非常适合小团队使用。


最终的技术栈

后端:PHP 原生开发(零框架)

数据库:SQLite

前端:原生 HTML5 + CSS3 + JavaScript

服务器:Nginx + PHP-FPM

缓存策略:Service Worker + PWA

这个技术栈的优势

  • 零依赖——不需要安装任何第三方库或框架
  • 极致轻量——PHP-FPM 每个进程仅占用 3-5MB 内存
  • 部署简单——上传文件即可运行
  • 维护成本低——SQLite 数据库文件可直接备份和迁移
  • 性能优秀——原生 PHP 的执行速度非常快

确定了技术方案后,我开始着手设计系统架构。

Powered by 健仔的百宝箱
V0.3.6

© 2026 健仔的百宝箱. All Rights Reserved. · 雨云 服务器由雨云提供