我为什么选择 Electron 开发桌面软件

作者:

很多年前,我没有想过自己会开发桌面软件。

我的职业是一名教师,日常工作主要围绕备课、教学、学生管理展开。但是在长期的教学过程中,我逐渐发现,很多重复性的工作其实可以通过软件来解决。

例如:

  • 学生成绩统计;
  • 数据分析;
  • 教学资料整理;
  • 班级信息管理。

这些工作并不是教师最核心的教学任务,却占用了大量时间。

于是,我开始尝试学习编程,希望能够开发一些真正服务于教师的软件工具。

在选择开发技术路线时,我最终选择了 Electron


从 Web 开发到桌面软件

最开始接触软件开发时,我学习的是前端技术。

Vue、JavaScript、HTML、CSS,这些技术让我能够快速构建漂亮的用户界面。

但是很快我发现,一个真正面向教师的软件,很多时候需要运行在电脑本地。

例如我的学生成绩分析系统:

  • 教师需要导入本地 Excel 数据;
  • 需要保存大量学生信息;
  • 需要离线使用;
  • 需要处理本地文件;
  • 需要访问电脑硬件资源。

如果只是开发一个网页应用,就会受到很多限制。

我希望开发的是:

一个安装在电脑上的专业工具,而不是一个必须打开浏览器才能使用的网站。

因此,我开始关注桌面应用开发。


为什么没有选择传统桌面开发技术?

开发 Windows 桌面软件,传统方案有很多:

  • C++ + Qt;
  • C# + WPF;
  • .NET MAUI;
  • JavaFX。

这些技术都非常成熟。

但是对于个人开发者来说,它们也存在一些挑战。

例如:

C++ + Qt

Qt 非常强大,可以开发高性能的软件。

但是学习成本较高。

除了业务逻辑之外,还需要处理:

  • 内存管理;
  • 编译环境;
  • 跨平台适配;
  • UI开发效率。

对于希望快速验证产品想法的个人开发者来说,开发速度可能不是最快。


C# + WPF

WPF 是 Windows 平台非常优秀的技术。

如果目标只是开发 Windows 软件,它是一个很好的选择。

但是我的目标不仅仅是 Windows。

未来我希望软件能够运行在:

  • Windows;
  • macOS;
  • Linux。

因此,我希望选择一个跨平台方案。


Electron 给我的最大吸引力:开发效率

Electron 最大的特点,就是:

使用 Web 技术开发桌面软件。

它把:

  • Chromium 浏览器内核;
  • Node.js运行环境;

结合在一起,让开发者可以使用熟悉的前端技术创建桌面应用。

对于我来说,这一点非常重要。

因为我已经熟悉:

  • Vue;
  • JavaScript;
  • TypeScript;
  • CSS。

使用 Electron,我可以把已有的前端开发经验直接应用到桌面软件开发中。


Electron 如何帮助我开发教师软件?

以我的学生成绩分析系统为例。

软件需要:

1. 丰富的数据展示

成绩分析离不开图表。

例如:

  • 成绩分布;
  • 班级排名变化;
  • 学生成绩趋势。

通过 Vue + ECharts,可以快速实现各种数据可视化。

2. 本地数据存储

教师的数据通常比较敏感。

学生成绩不适合上传到服务器。

因此,我选择:

  • SQLite数据库;
  • 本地文件存储。

数据全部保存在教师自己的电脑中。

这也符合教师用户的实际需求。

3. 调用系统能力

桌面软件需要处理:

  • 文件读取;
  • Excel导入;
  • 图片处理;
  • 本地路径管理。

Electron通过Node.js,可以方便地访问系统资源。


Electron 的缺点也很明显

当然,Electron并不是完美的。

最大的争议就是:

资源占用较高

因为Electron内置了Chromium,所以软件体积通常较大。

相比原生程序:

  • 安装包更大;
  • 内存占用更高。

例如,一个简单的Electron程序可能需要几十MB甚至更多内存。

而一个传统C++程序可能小很多。

性能不是最高

如果开发:

  • 大型3D软件;
  • 视频编辑软件;
  • 高性能游戏;

Electron并不是最佳选择。

但是对于:

  • 办公软件;
  • 教育工具;
  • 数据分析软件;
  • 效率工具;

Electron完全可以满足需求。


对个人开发者来说,开发效率更重要

作为个人开发者,我认为:

技术选择不能只看性能。

更重要的是:

能不能快速把想法变成产品。

大型公司可以投入大量人力优化性能。

但是个人开发者最大的优势是:

快速发现需求;

快速开发;

快速迭代。

Electron降低了桌面软件开发门槛,让一个熟悉Web技术的开发者,也能够开发专业的软件产品。

这对于独立开发者来说,非常有价值。


我的下一步计划

目前,我正在继续完善自己的教师软件产品。

未来,我希望利用 Electron 开发更多工具:

  • 教师成绩分析软件;
  • 作业统计软件;
  • 英语听写管理软件;
  • 教师个人效率工具。

我的目标不是开发一个复杂的大型系统。

而是:

用技术解决教师工作中的真实问题,让教育工作变得更加高效。

这也是我选择 Electron 开发桌面软件的原因。