技术栈

Evergreen Skills

技术栈

  • 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
A[客户端] --> B[API Gateway: Envoy]
B --> C[用户服务: Go+Gin]
B --> D[订单服务: Go+Grpc]
B --> E[支付服务: Java+Spring]
C & D & E --> F[Redis集群]
C & D & E --> G[PostgreSQL]
H[Kubernetes] -->|管理| C
H -->|管理| D
H -->|管理| E
I[Prometheus+Grafana] -->|监控| H

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应用
典型行业 游戏、影视、工业软件 电商、数据可视化、营销页面