GaGa's Blog

One GaGa, One World !

TDD(Test-Driven Development,测试驱动开发)的核心思想是先写测试,后写实现代码,以极短的迭代周期推动软件设计。其标准流程即著名的 红 - 绿 - 重构(Red-Green-Refactor) 循环。


基本步骤

  1. 写一个失败的测试 (Red): 明确需求与接口设计.
    根据当前需求编写一个极小的单元测试。此时被测试的代码尚未编写或仅有空骨架,运行测试时必须失败(通常标红),以此验证测试本身是有效的,避免“写了假测试”。

  2. 用最快的方式让测试通过 (Green): 专注于功能的快速实现.
    编写刚好能让该测试通过的最少生产代码。在此阶段不需要考虑代码架构和优雅度,甚至硬编码常量也是允许的,首要目标是让测试套件变绿。

  3. 重构代码 (Refactor): 测试护航下的坏味道消除.
    在已有绿色测试的保护下,优化代码设计:消除重复代码、提取公共方法、改善命名与结构。重构期间不新增任何外部功能,并确保每次改动后所有测试依然全部通过。

  4. 重复循环 (Repeat): 小步快跑推进功能.
    挑选下一个边界条件或细分需求,回到第一步继续编写新的测试,逐步构建出完整的系统。

Read more »

Mole是一款专为 Mac 设计的开源系统清理、卸载、磁盘分析与性能监控工具。它将 CleanMyMac、AppCleaner、DaisyDisk 以及 iStat Menus等常见工具的核心功能整合到了一个极速轻量的命令行程序中(同时也提供原生 macOS 桌面版)。


核心功能

Read more »

v2rayA是一个开源的 V2Ray客户端,专注于 Linux 系统,同时支持 Windows 和 macOS,提供 Web 图形界面(GUI)来简化配置和管理。它支持多种代理协议,包括 VMess、VLESS、Shadowsocks(SS)、ShadowsocksR(SSR)、Trojan、Tuic 和 Juicity,旨在提供简单易用且功能强大的代理解决方案。


核心特性

Read more »

DeepSeek(杭州深度求索)是 AI 圈最特殊的玩家之一。


1. 出身与资本结构

  • 成立:2023年7月,总部杭州,创始人梁文锋(1985年生,广东湛江人)。
  • 孵化方:幻方量化(High-Flyer)——国内顶级量化私募,靠机器学习做股票起家,2022年10月美国出口管制前囤了约1万张 A100 GPU。
  • 控制力极强:前三年零外部融资,完全由幻方供血。2026年6月才完成首轮超500亿元融资(投后估值约3500亿),梁文锋个人出资约200亿,直接+间接控制约99.72%股权。腾讯出资100亿、宁德时代50亿,但表决权与运营否决权全部锁在创始人手里——外部资本只能分红,不能干预。
Read more »

一个完整的用户登录认证流程图,涵盖了前端校验、后端安全防护(防爆破)、密码哈希比对、双因素认证(2FA)及令牌签发的完整生命周期:


认证流程图

flowchart TD
    Start(["用户发起登录"]) --> Input["输入账号、密码(及验证码)"]
    Input --> FeValid{"前端格式校验"}

    FeValid -- "校验未通过" --> FeError["前端提示格式错误"]
    FeValid -- "校验通过" --> SendReq["发起 HTTPS POST 请求"]

    SendReq --> RateLimit{"频率限制 / 防刷检查"}
    RateLimit -- "请求超限" --> Err429["返回 HTTP 429: 请求过于频繁"]

    RateLimit -- "通过" --> QueryUser{"查询用户信息"}
    QueryUser -- "用户不存在" --> GenericErr["返回模糊报错: 用户名或密码错误"]

    QueryUser -- "用户存在" --> CheckStatus{"账号状态检查"}
    CheckStatus -- "已冻结 / 禁用" --> ErrStatus["返回: 账号已被锁定/禁用"]

    CheckStatus -- "正常" --> VerifyPwd{"密码哈希比对 (如 bcrypt/argon2)"}
    VerifyPwd -- "密码错误" --> RecordFail["记录失败次数"]
    RecordFail --> CheckMaxFail{"是否达到最大错误阈值?"}
    CheckMaxFail -- "是" --> LockAcc["临时锁定账号 (如 15 分钟)"] --> GenericErr
    CheckMaxFail -- "否" --> GenericErr

    VerifyPwd -- "密码正确" --> Check2FA{"是否开启两步验证 (2FA)?"}
    
    Check2FA -- "是" --> Req2FA["返回临时凭证并要求 2FA 验证"]
    Req2FA --> Input2FA["用户输入动态验证码 (TOTP/短信/邮箱)"]
    Input2FA --> Verify2FA{"验证 2FA 码"}
    Verify2FA -- "验证失败" --> Err2FA["提示: 双重验证码不正确"]
    Verify2FA -- "验证通过" --> GenToken

    Check2FA -- "否" --> GenToken["重置失败重试计数"]
    GenToken --> IssueToken["签发 Token (Access Token + Refresh Token)"]
    IssueToken --> LogRecord["异步记录登录日志 (IP、设备、时间)"]
    LogRecord --> ReturnSuccess["返回登录成功响应"]
    ReturnSuccess --> FeSave["前端安全存储 Token 并重定向至首页"]
    FeSave --> End(["登录流程结束"])
Read more »

数值范围

指标 一般正常范围 你的数值
收缩压 90–120mmHg左右 119
舒张压 60–80mmHg左右 71
脉搏 60–100次/分 85

因此你这次的119/71mmHg、脉搏85次/分都在常见正常范围内。

1.多数据库

特性 说明
数据库数量 最多 16个(0-15)
默认数据库 0号库
切换数据库 SELECT <dbid>
数据隔离 各库独立,FLUSHALL 会清空所有库

2.消息订阅与发布

1
2
3
SUBSCRIBE channel               # 订阅频道
PSUBSCRIBE pattern* # 批量订阅(通配符)
PUBLISH channel message # 发布消息到频道
Read more »
0%