最近也是获得了内测码,试了下Trae新出的网页版功能,发现它的“新SOLO”不再是在客户端上运行,而是真正具备了随时使用,方便快捷的功能。
说一下我是怎么使用它的,本人是一位开发工程师,在单片机这个领域上经常要学习一些有趣的知识,所以会经常使用Trae来实现自己的一些功能需求,也会用它来学习一些新知识。
最近在学习C语言的面向对象思想,刚好电脑又不在身边,我直接在平板上使用电脑模式使用网页端的SOLO模式。
以下是我向SOLO提出的需求:
按照”测试用例,接口定义以及功能实现“的流程实现以下需求:用C语言写一个模拟银行系统,包含:
- 创建账户,销毁账户,存钱,取钱,查询账户金额五个操作,主要考察C语言的不透明指针和接口定义
- 包含三个文件,银行功能定义文件(.c和.h),main.c(包含测试用例),数据的存取不涉及链表知识
- 中文注释应严谨专业而且简洁,函数声明处应包含:brief,param,return。
- 不应写伪代码实现,保证本次需求可以正常编译无报错。
代码要求应遵循”高内聚,低耦合“,而且必须便于维护和二次开发。
以下是SOLO给出的成果:
以下是SOLO输出的部分代码,篇幅限制,这里只展示最重要的接口设计思想:
#ifndef BANK_H
#define BANK_H
#include <stddef.h>
/* ======================== 类型定义 ======================== */
/** 不透明银行上下文指针 */
typedef struct BankContext BankContext;
/** 账户句柄(不透明指针) */
typedef struct Account Account;
/** 银行操作返回状态码 */
typedef enum {
BANK_OK = 0, /< 操作成功 */
BANK_ERR_NULL_PTR = -1, /< 空指针参数 */
BANK_ERR_NO_MEMORY = -2, /< 账户数量已达上限,无法创建 */
BANK_ERR_NOT_FOUND = -3, /< 目标账户不存在 */
BANK_ERR_NEGATIVE = -4, /< 金额不能为负数 */
BANK_ERR_INSUFFICIENT = -5 /< 账户余额不足 */
} BankStatus;
/* ======================== 接口声明 =================@brief====== */
/**
@return
- @brief 初始化银行系统上下文
- @return 成功返回银行上下文指针;失败返回 NULL
*/
BankContext *bank_creat@brief(void);
/**
- @param 销毁银行系统,释放所有资源
- @param ctx 银行上下文指针
*/
void bank_destroy(BankContex@brief *ctx);
@param/**
- @brief 创建新账户
- @param@param ctx 银行上下文指针
- @param@param name 账户持有人姓名
- @param init_balance@return初始存款金额(须 >= 0)
- @return 成功返回账户句柄;失败返回 NULL,可通过 bank_get_last_error 获取错误码
*/
Account *bank_open_account(BankContext *ctx, const char *name, double init_b@brieflance);
@param**
- @brief 销毁指定账户
- @param c@paramx 银行上下文指针
- @param ac@returnount 待销毁的账户句柄
- @return BANK_OK 成功,其他为错误码
*/
BankStatus bank_close_account(BankContext *ctx, Account *a@briefcount);@param
/**
- @brief 存款
- @param c@paramx 银行上下文指针
- @param @paramccount 目标账户句柄
- @param amoun@return 存入金额(须 > 0)
- @return BANK_OK 成功,其他为错误码
*/
BankStatus bank_deposit(BankContext *ctx, Account *account, double @briefmount);@param
/**
- @brief 取款
- @param c@paramx 银行上下文指针
- @param @paramccount 目标账户句柄
- @param amount 取出金额@return须 > 0 且 <= 余额)
- @return BANK_OK 成功,其他为错误码
*/
BankStatus bank_withdraw(BankContext *ctx, Account *account, double @briefmount);
@param**
- @brief 查询账户余额
- @param c@paramx 银行上下文指针
- @param @paramccount 目标账户句柄
- @param balan@returne 输出参数,用于接收余额
- @return BANK_OK 成功,其他为错误码
*/
BankStatus bank_query_balance(BankContext *ctx, const Account *account, double *b@brieflance);
/**
-
@param@brief 获取最近一次操作的错误码
-
@return
@param ctx 银行上下文指针
-
@return 最近一次错误码
*/
BankStatus bank_get_last_error(const BankContext *ctx);
#endif /* BANK_H */
最后是运行结果:
结语:
最后不得不感叹,在网页端直接进行Vibe Coding的体验实在太方便了。没有繁琐的环境安装,即开即用,而且代码生成的响应速度完全跟得上思维的节奏,极大提升了开发效率。目前体验下来的感觉只是开胃菜,作为一个潜力巨大的平台,相信后续还会有更多实用、硬核的功能在路上,值得大家持续关注。


