技术栈

技术栈
Exisfar技术栈
- go-stock: 这是一个Go + Vue/NaiveUI + Wails技术栈的桌面应用,结合了本地AI模型和金融数据API,专注于股票分析的隐私与功能性平衡。适合对量化分析、AI辅助投资感兴趣的开发者参考。
框架
桌面应用开发
Wails框架
Why:
- 传统桌面开发(如 C++/C#/Java)需要学习复杂的 GUI 库(如 Qt、WinForms),而 Wails 允许开发者用熟悉的 Web 技术(前端) + Go(后端) 快速构建应用。
- 避免 Electron 的臃肿:Electron 应用通常体积大、内存占用高(每个应用打包一个 Chromium)。Wails 使用系统原生 WebView(如 Windows 的 WebView2、macOS 的 WKWebView),显著减少资源占用。
What:
- Consider it a lightweight and fast Electron alternative for Go. You can easily build applications with the flexibility and power of Go, combined with a rich, modern frontend.
- Wails 是一个 Go + 前端框架(Vue/React等)的混合桌面应用框架,核心逻辑是:
- Go 后端:处理数据、AI 分析、本地存储等。
- 前端(Vue/NaiveUI):负责 UI 交互。
- Wails 桥接:前端通过 backend 调用 Go 函数。
How:
main.go
是入口文件,初始化 Wails 应用,绑定 app.go 中的业务逻辑,启动前端界面。app.go
包含所有核心业务逻辑,里面的方法还可以给前端调用。
其他框架
方案 | 优点 | 缺点 |
---|---|---|
Wails | 轻量、Go 高性能、易用 | 依赖系统 WebView(兼容性需测试) |
Electron | 生态丰富、跨平台一致 | 资源占用高、打包体积大 |
Flutter | 高性能、UI 一致 | 需要学习 Dart、桌面端仍不成熟 |
Qt | 原生性能、功能强大 | 学习曲线陡峭、C++ 开发复杂 |
Web应用开发
Express/Koa
When:
- API、简单微服务
What:
- 轻量级 Web 框架 REST
NestJS
When:
- 复杂后端系统(模块化、依赖注入)
What:
- 基于 TS 的 Angular 风格框架
tRPC
When:
- 全栈 TypeScript 项目
What:
- 类型安全的 RPC 框架
前端技术
NaiveUI
- 一个基于Vue 3的UI组件库,提供了丰富的现成组件,适合快速开发现代化的用户界面。
Vue.js
When:
Use Case | Best For | Key Vue Tools |
---|---|---|
SPAs | Dynamic web apps (Gmail-like) | Vue Router, Pinia |
Widgets | Small interactive components | Plain Vue (CDN) |
Static Sites | Blogs, marketing pages | Nuxt.js (SSG) |
Enterprise Apps | Large-scale business software | TypeScript, Nuxt |
Mobile/Desktop | Cross-platform apps | Capacitor, Electron |
Prototyping | Fast MVPs & demos | Vite, Vue 3 |
What:
- A JavaScript framework for building user interfaces. It builds on top of standard HTML, CSS, and JavaScript and provides a declarative, component-based programming model that helps you efficiently develop user interfaces of any complexity.
- Core features:
- Declarative Rendering: Vue extends standard HTML with a template syntax that allows us to declaratively describe HTML output based on JavaScript state.
- Reactivity: Vue automatically tracks JavaScript state changes and efficiently updates the DOM when changes happen.
How:
When Not:
- Heavy server-side rendering (SSR) → Next.js (React) or SvelteKit might be better.
- Highly complex real-time apps → React + WebSockets or Elixir/Phoenix.
- Apps requiring strict corporate standards → Angular (used in Google, Microsoft).
后端技术
Go
- 用于后端逻辑处理,包括数据获取、AI模型调用、本地数据处理等。项目中的main.go、app.go等文件表明后端主要用Go编写。
- Go的应用场景:天然适合云原生(k8s/Docker原生支持)、高性能微服务。
架构示例(Go + K8s)
graph TD |
Java
- 适合企业级应用、大型系统(银行、电商、传统企业);生态成熟;开发效率不如Go;
Node.js
- Node.js: 提供 JavaScript 运行时环境,可适用于任何后端服务
- TypeScript: 添加静态类型检查,适用于需要高可维护性的项目
高并发微服务
高并发微服务指能够同时处理大量请求的微服务架构,通常具备以下能力:
高并发的核心技术:
- 🚀 异步与非阻塞 b/O
- Java:使用 Netty 或 Spring WebFlux(响应式编程)。
- Go:原生 Goroutine 轻量级线程(比 Java 线程高效 10 倍)。
- 例如:Go 的 goroutine 处理 10 万并发连接只需 2GB 内存。
- **⚡ 水平扩展(Scaling)**
- 通过 Kubernetes 自动扩缩容(HPA)。
- 例如:订单服务在流量激增时从 3 个实例扩展到 50 个。
- 🔒 分布式锁与缓存
- 使用 Redis 实现分布式锁或缓存热点数据。
- 例如:秒杀系统用 Redis 扣减库存,避免超卖。
- **🔄 消息队列(MQ)**
- 通过 Kafka/RabbitMQ 解耦服务,削峰填谷。
- 例如:用户注册后发消息到队列,由邮件服务异步处理。
- 典型高并发场景:
- 电商秒杀:Go 微服务 + Redis 缓存 + 消息队列。
- 实时聊天:WebSocket + Go Goroutine。
- 支付系统:Java 微服务 + 分布式事务(Seata)。
AI模型与集成
OpenAI API
- 支持接入OpenAI格式的模型(如GPT系列),用于股票情绪分析、技术指标解释等。
本地大模型平台
- 支持Ollama、LMStudio、AnythingLLM等本地运行的模型,适合隐私敏感或离线场景。
大模型聚合平台
- 如硅基流动(SiliconFlow)、火山方舟等,提供统一的API接入多种模型。
数据源与工具
Tushare
- 免费金融数据平台,用于获取股票行情、基本面数据等(注册链接在README中提到)。
- 浏览器自动化
- 早期依赖Chrome浏览器爬取新闻资讯,后续版本改用Edge浏览器。
跨平台支持
Windows/Linux/macOS
- 通过Wails实现跨平台,但开发者主要测试环境为Windows 10+,其他平台可能功能受限。
运维
SealOS
- Devbox
- 需要解决本地环境碎片化问题,或希望低成本隔离项目依赖。
- 云开发
- 本地设备性能不足、需要团队协同开发,或环境需要长期运行/持久化。
云原生
What: 云原生是一种构建和运行应用程序的方法,旨在充分利用云计算的优势(如弹性、可扩展性、自动化)。它的核心目标是让应用天生适合云环境,而不是简单地将传统应用迁移到云上。
云原生的关键特征:
- ✅ 容器化(Containerization)
- 使用 Docker 封装应用及其依赖,确保环境一致性。
- 例如:Java/Go 微服务打包成镜像,在任何云上都能运行。
- ✅ 动态编排(Orchestration)
- 通过 Kubernetes(K8s) 自动管理容器生命周期(扩缩容、故障恢复)。
- 例如:电商大促时自动增加服务实例应对流量高峰。
- ✅ 微服务架构(Microservices)
- 将单体应用拆分为多个独立服务,每个服务专注单一功能。
- 例如:用户服务、订单服务、支付服务分离部署。
- ✅ DevOps 与 CI/CD
- 通过 GitLab CI/Jenkins 实现自动化构建、测试、部署。
- 例如:代码提交后自动触发流水线发布到生产环境。
- ✅ 服务网格(Service Mesh)
- 使用 Istio/Linkerd 管理服务间通信(负载均衡、熔断、监控)。
- 例如:自动重试失败的订单服务调用。
- ✅ 无服务器(Serverless)
- 按需运行代码(如 AWS Lambda),无需管理服务器。
- 例如:图片上传后触发缩略图生成函数。
其他工具
钉钉集成
- 支持通过钉钉推送股票涨跌报警通知。
- 本地数据存储
- 所有数据保留在本地,未依赖云端数据库(符合隐私需求)。
游戏客户端
技术栈推荐
领域 | 常用工具/引擎 | 适合人群 |
---|---|---|
2D游戏 | Godot、Unity、Cocos2d-x | 喜欢像素风、独立游戏的开发者 |
3D游戏 | Unreal Engine、Unity | 想学3A级技术或写Shader的人 |
手机游戏 | Flutter、React Native | 想快速上架小游戏的开发者 |
网页游戏 | Phaser、Three.js | 前端开发者转型 |
图形学开发
技术栈与技能树
类别 | 具体技术/知识 |
---|---|
图形API | OpenGL、WebGL、DirectX 12、Vulkan、Metal(苹果生态) |
着色器语言 | GLSL(OpenGL)、HLSL(DirectX)、WGSL(WebGPU) |
引擎/框架 | Unity、Unreal Engine、Three.js、Babylon.js、Cesium(地理3D) |
数学基础 | 线性代数(矩阵/向量运算)、几何(射线检测、碰撞)、微积分(曲线/曲面) |
优化工具 | RenderDoc、Nsight、PIX(GPU调试)、性能分析(FrameGraph) |
编程语言 | C++(高性能计算)、Python(原型开发)、JavaScript/TypeScript(Web图形学) |
与前端图形学开发的异同
对比维度 | 图形学开发工程师 | 前端图形学开发 |
---|---|---|
技术栈 | 侧重C++/OpenGL/游戏引擎 | 侧重JavaScript/WebGL/Three.js |
性能要求 | 极致优化(Console/PC级) | 平衡性能与跨端兼容性 |
工作输出 | 底层渲染器、引擎模块 | 可视化页面、交互式Web应用 |
典型行业 | 游戏、影视、工业软件 | 电商、数据可视化、营销页面 |
Comment
匿名评论隐私政策