构建安全的 Demo Banking App(第1部分)

发布: (2026年1月7日 GMT+8 05:04)
4 min read
原文: Dev.to

Source: Dev.to

介绍

在构建软件项目或应用时,需要意识到技术的快速迭代。开发工具和编程语言大约每六个月就会发布一次更新,因此保持对新版本的跟进至关重要,以免落后。

然而,无论技术变化多快,软件开发的核心概念基本保持不变。随着 AI 的兴起,普通且简单的软件项目——比如基础的 CRUD 应用——已经无法为软件工程师在知识和批判性思维方面提供实质性的价值。要构建强大且可靠的系统,项目必须在开发周期的每个阶段遵循最佳的编码和安全实践。

为什么选择 Demo Banking App 项目?

我决定构建一个金融科技相关的演示应用,原因有以下几点:

  • 加深我在金融科技中最常用的全栈技术上的技能。
  • 为我的作品集提供一个可公开展示的实质性软件应用。我把整个规划、开发和部署过程称为 “黄金项目”(The Golden Project),因为它几乎涵盖了规划、代码结构、安全、架构与设计模式以及 CI/CD 的所有方面。

该应用将命名为 “Demo Banking App”。我计划记录每个重要功能和组件,以巩固我的理解,并在构建过程中遇到障碍时调整方案。

项目目标与范围

Demo Banking App 的首个版本将包括以下功能:

  • 用户注册与认证
  • 用户资料
  • 账户仪表盘
  • 交易历史
  • 支付
  • 通知
  • 欺诈筛查

技术栈

在选择技术栈时,我考虑了其在真实金融科技应用中的相关性和使用情况、我对这些技术的已有经验,以及当今的软件最佳实践。

  • 前端: React、TypeScript、Tailwind CSS
  • 后端: Spring Boot
  • 数据库: PostgreSQL
  • 认证: OAuth2 / OpenID Connect
  • 可观测性: Prometheus、Grafana、OpenTelemetry、Elasticsearch

架构

采用的架构模式基于 微服务Saga 模式。此选择能够应对项目的复杂性,确保可扩展性并顺畅处理所有交易——模拟真实的银行业务场景。

从一开始就注重安全

即使这是一个演示银行应用,遵循最佳安全实践仍然至关重要。针对第 1 版,已包括以下措施:

  • 使用环境变量而非明文值
  • CORS 限制
  • 登录路由的速率限制
  • 输入验证
  • 密码加密

标志与配色

我以极简风格设计了 Demo Banking App 的标志,强调简洁的同时保持真实的企业感。配色方案将在整个应用中使用,灵感来源于一家德国的 neobank。

Back to Blog

相关文章

阅读更多 »