长链接与短链接
一、基本定义
短链接
指客户端与服务器每次通信时建立连接,完成数据传输后立即断开,适用于单次、低频交互场景(如HTTP请求)
通过缩短长URL生成易记、易分享的链接(如“摩尔短链接”服务)
长链接
指客户端与服务器建立连接后长期保持,允许多次数据传输,适用于高频、实时通信场景(如在线游戏、数据库连接)
二、主要用途对比
类型 典型应用场景 用途特点 来源
短链接 社交媒体分享(微博、微信等)
缩短URL长度,提升美观性和传播效率
HTTP请求等低频交互,减少服务器资源占用,但频繁建立连接增加开销
长链接
- 实时通信(聊天室、在线游戏) 减少TCP连接次数,降低延迟,支持持续数据传输
- 数据库连接、视频流传输 提升传输效率,避免频繁建立/断开连接
技术特性总结
短链接核心优势:轻量化、易传播,适合低频率、分散式请求48。
长链接核心优势:高效稳定,适合高频率、持续性数据交换(如点对点通信)
bp send按钮
需求 按钮
常规 API 调试 Send
确保完整接收数据 Send and Receive
测试异常连接断开 Drop Connection
测试 Keep-Alive / 复用连接 Single Connection
批量发送多个请求 Send Group
模拟慢速网络 Send with Throttle
测试 WAF 绕过(不编码) Send without Encoding
测试 HTTP/2 兼容性 Send with HTTP/2
测试 Chunked Encoding Send as Chunked Encoding
快速重发上一次请求 Repeat Last Request
按钮名称 作用 适用场景
Send 直接发送请求,获取完整响应 普通 HTTP 请求
Send and Receive 发送请求,确保完整接收数据 确保完整响应 / 大型 JSON
Drop Connection 发送请求后立即断开 TCP 连接 测试异常连接处理
Single Connection 复用相同的 TCP 连接 测试 Keep-Alive / Session 维持
Send Group 发送当前标签组中的所有请求 并行测试多个 API
Send with Throttle 限速发送,模拟慢速网络 测试 API 限流 / 超时
Send without Encoding 发送原始数据,不做编码处理 测试编码漏洞 / WAF 绕过
Send with HTTP/2 强制使用 HTTP/2 测试 HTTP/2 兼容性
Send as Chunked Encoding 使用 Transfer-Encoding: chunked 测试服务器的 Chunked 解析能力
Repeat Last Request 重新发送最近的请求 快速调试 / API 调试
网络协议
协议 传输层协议 通信方式 适用场景
HTTP TCP 半双工,请求-响应 普通网页浏览
WebSocket TCP 全双工,持续连接 聊天室、实时数据
WebRTC UDP 低延迟通信 语音/视频聊天
MQTT TCP 低带宽通信 物联网(IoT)
Web 相关协议
协议 端口号 作用
HTTP(超文本传输协议) 80 网页数据传输
HTTPS(安全 HTTP) 443 加密网页传输(TLS/SSL)
SPDY/HTTP/2 443 改进版 HTTP,支持多路复用
QUIC(HTTP/3) 443(默认 UDP) Google 开发的高效 HTTP文件传输协议
协议 端口号 作用
FTP(文件传输协议) 21 传统文件传输
FTPS(加密 FTP) 990 安全文件传输(TLS/SSL)
SFTP(基于 SSH 的 FTP) 22 安全文件传输(基于 SSH)
SCP(安全拷贝协议) 22 远程文件拷贝电子邮件协议
协议 端口号 作用
SMTP(邮件发送) 25 发送电子邮件
SMTPS(安全 SMTP) 465 加密邮件发送
IMAP(邮件接收) 143 在线邮件读取
IMAPS(加密 IMAP) 993 安全邮件接收
POP3(邮件接收) 110 传统邮件下载
POP3S(加密 POP3) 995 加密邮件下载远程访问 & 终端控制
协议 端口号 作用
SSH(安全远程登录) 22 远程服务器管理
Telnet(远程终端访问) 23 明文远程管理(不安全)
RDP(远程桌面协议) 3389 Windows 远程桌面数据库协议
协议 端口号 作用
MySQL 3306 MySQL 数据库访问
PostgreSQL 5432 PostgreSQL 数据库访问
SQL Server 1433 Microsoft SQL Server 访问
Oracle DB 1521 Oracle 数据库访问
MongoDB 27017 NoSQL 数据库访问
Redis(默认 TCP) 6379 内存数据库VPN & 安全协议
协议 端口号 作用
IPSec(VPN 安全协议) 500 VPN 认证
OpenVPN(TCP 模式) 1194 安全 VPN 连接
PPTP(点对点隧道协议) 1723 传统 VPN 连接消息队列 & 物联网(IoT)
协议 端口号 作用
MQTT(物联网通信协议) 1883 轻量级物联网通信
AMQP(高级消息队列协议) 5672 消息队列协议(RabbitMQ)
网络基础类 UDP 协议
协议 端口号 作用
DNS(域名系统) 53 解析域名到 IP 地址
DHCP(动态主机配置协议) 67/68 自动分配 IP 地址
SNMP(简单网络管理协议) 161/162 监控和管理网络设备
TFTP(简单文件传输协议) 69 轻量级文件传输
NTP(网络时间协议) 123 同步系统时间流媒体 & 实时通信
协议 端口号 作用
RTP(实时传输协议) 动态分配 语音、视频流传输(VoIP、视频会议)
RTCP(RTP 控制协议) 动态分配 监控 RTP 质量
RTSP(实时流协议) 554 控制 RTP 媒体流(播放、暂停)
SIP(会话发起协议) 5060/5061 VoIP 电话呼叫
H.323 1720 语音、视频会议游戏 & P2P
协议 端口号 作用
QUIC(Quick UDP Internet Connections) 443 Google 开发的 UDP 版 HTTP/3
STUN(Session Traversal Utilities for NAT) 3478 让 VoIP / WebRTC 设备穿越 NAT
TURN(Traversal Using Relays around NAT) 3478/5349 WebRTC / VoIP 连接中继
BitTorrent(BT 种子协议) 6881-6889 P2P 文件共享
Game Server(游戏服务器) 27015(Steam)等 低延迟在线游戏安全 & 远程访问
协议 端口号 作用
IKE(Internet Key Exchange) 500 VPN 认证密钥交换
L2TP(第二层隧道协议) 1701 VPN 连接
OpenVPN(UDP 模式) 1194 低延迟 VPN
框架
一、Spring 框架:全能管家
主要功能:像装修公司的项目经理,帮你管理整个Java项目的各个模块
依赖注入 (DI)
自动把需要的工具(对象)送到工人(类)手里,不需要工人自己到处找工具
// 传统方式:工人自己造工具
public class Worker {
private Tool tool = new Hammer(); // 直接绑定锤子
}
// Spring方式:项目经理送工具
public class Worker {
@Autowired // 项目经理自动送工具
private Tool tool; // 可以是锤子/螺丝刀,随时更换
}
事务管理
像装修监理,确保水电改造、铺地板等工序要么全部成功,要么全部回滚
@Transactional // 监理在此,整个购买流程要么全成功,要么全取消
public void buyProduct() {
userDao.deductMoney(); // 扣款
productDao.updateStock(); // 减库存
}
模块化开发
把项目拆分成厨房组(Controller)、水电组(Service)、建材组(Dao)
@Controller // 厨房组:处理客人点菜(用户请求)
public class UserController {
@Autowired
private UserService userService; // 呼叫水电组干活
}
@Service // 水电组:处理核心业务逻辑
public class UserService {
@Autowired
private UserDao userDao; // 联系建材组取材料
}
@Repository // 建材组:负责仓库管理(数据库操作)
public class UserDao {
public void save(User user) { /* 存储到数据库 */ }
}
二、Hibernate:翻译官
主要功能:在Java对象和数据库表格之间自动转换,不用手写复杂SQL
对象关系映射 (ORM)
把Java对象自动翻译成数据库记录,就像把中文合同自动转成英文版本
@Entity // 告诉翻译官:这个对象对应数据库表
@Table(name = "users")
public class User {
@Id // 标记这是主键
@GeneratedValue // 自动生成ID
private Long id;
@Column(name = "user_name") // 对应表的字段名
private String username;
// 自动翻译成:INSERT INTO users(user_name) VALUES (?)
public void save() {
Session session = HibernateUtil.getSession();
session.save(this);
}
跨数据库支持
同一份Java代码,自动生成MySQL/Oracle/SQLServer等不同方言的SQL
医疗数据生成平台
该泛化库整合了GAN与差分隐私技术:
生成对抗网络组件创建包含300万条虚拟医疗记录的数据集,涵盖15类罕见病症特征2
隐私保护层通过k-匿名化处理,确保合成数据无法逆向推导出真实患者信息,满足HIPAA合规要求
Dubbo:大型物流调度中心
核心作用:帮你管理分布式系统中各个服务之间的高效协作,就像顺丰调度全国快递网点
典型场景:
当你的电商系统拆分成用户服务、订单服务、支付服务等多个独立模块时,Dubbo负责:
服务注册与发现
每个服务启动后到”电话簿”(注册中心)登记自己的位置,订单服务需要调用支付服务时,自动查电话簿找到可用节点
智能路由
北京用户的请求优先分配到北京机房的服务,就像快递优先分配本地仓库
故障隔离
如果某个支付服务节点宕机,自动切换到备用节点(类似快递网点停发时自动切换路线)
流量控制
双十一期间限制每秒最多处理1000笔支付,防止系统崩溃(类似快递限流避免爆仓)
Thrift:国际快递包装员
核心作用:解决不同语言服务之间的通信问题,就像把中文货物打包成标准国际包裹
典型场景:
当你的游戏服务端用C++开发,而运营后台用Python开发时:
跨语言通信
定义统一的”包裹规格说明书”(IDL文件),自动生成Java/C++/Python等语言的代码
高效数据封装
把数据压缩成紧凑的二进制格式,比JSON等文本协议传输效率更高
多协议支持
支持TCP/HTTP等多种传输方式,就像选择空运或海运
Dubbo案例:
美团外卖系统(订单服务、商家服务、配送服务)通过Dubbo协同,高峰期自动扩容配送服务节点,用户下单后自动匹配最近骑手
Thrift案例:
头条的推荐系统(C++算法引擎)与Go语言开发的API网关通过Thrift通信,每天处理十亿级推荐请求
为什么不用普通HTTP?
效率差距:Thrift二进制协议传输速度比HTTP快3-5倍
治理能力:Dubbo自带熔断/降级等功能,HTTP需要自己实现
协议规范:Thrift严格的数据结构定义避免接口歧义
flask/django
Flask 典型场景
小型Web应用:如博客、API服务
微服务架构:灵活组合扩展,如Netflix的API局部故障转移系统
深度学习集成:轻量级部署机器学习模型服务
定制化需求:需自定义架构(如Uber动态定价系统)
Django 典型场景
全栈应用开发:如社交平台、电商网站
内容管理系统:自带Admin后台快速管理数据(如新闻发布系统)
企业级应用:银行、政府等需要严格安全性的系统
快速迭代项目:利用脚手架工具快速生成代码
三、代码案例对比
1. Flask 案例:轻量级API服务
Flask实现返回JSON数据的API
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/data')
def get_data():
return jsonify({"status": "success", "data": [1, 2, 3]}) # 直接返回JSON数据
if __name__ == '__main__':
app.run(debug=True)
特点:10行代码实现API,无额外依赖 15
2. Django 案例:带Admin后台的内容管理
models.py(定义数据模型)
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
admin.py(注册Admin后台)
from django.contrib import admin
from .models import Article
admin.site.register(Article) # 自动生成管理界面
特点:无需编写前端,自带数据管理界面
Prometheus
Prometheus 是一款开源的监控和告警工具,简单来说,它就像你系统的“健康管家”,专门负责实时监控服务器、应用程序、数据库等各类资源的运行状态,并在发现问题时及时提醒你
- 基于时间序列数据库(TSDB)
Prometheus 把所有监控数据按时间顺序存储,每条数据都带时间戳。比如:
text
Copy Code
服务器A的CPU使用率 | 时间: 2023-10-01 10:00:00 | 值: 30%
服务器A的CPU使用率 | 时间: 2023-10-01 10:01:00 | 值: 35%
你可以查询“过去5分钟服务器A的平均CPU使用率”,就像查历史账单。 - 拉取模式(Pull Model)
传统监控工具:被监控对象主动上报数据(推数据)。
Prometheus:主动去目标拉取数据(像医生定期给你体检)。
好处:避免被监控对象过多时,数据上报拥堵。 - 灵活的标签(Labels)
每个监控指标可以打标签,方便分类筛选。比如:
text
Copy Code
cpu_usage{host=”server1”, region=”beijing”} 30%
cpu_usage{host=”server2”, region=”shanghai”} 25%
你可以按标签查“北京地区所有服务器的CPU使用率”。 - 强大的查询语言 PromQL
类似 SQL,但专为监控设计。例如:
avg(cpu_usage{region=”beijing”}) → 计算北京地区服务器的平均CPU使用率。
http_requests_total{status=”500”} > 10 → 找出5分钟内HTTP 500错误超过10次的接口。
三、核心组件
Prometheus Server
主程序,负责拉取数据、存储数据、执行查询和触发告警。
Exporters(数据采集器)
安装在监控目标上的小工具,把数据转换成Prometheus能理解的格式。
常用Exporter:
Node Exporter:监控服务器硬件(CPU、内存、磁盘)。
MySQL Exporter:监控数据库状态。
Blackbox Exporter:监控网络服务(HTTP接口、端口连通性)。
Alertmanager
专门处理告警,支持去重、静默、分组通知。比如:
避免同一问题重复告警。
把10台服务器的宕机告警合并成一条消息发送。
Grafana(可视化)
Prometheus 通常搭配 Grafana,把数据变成直观的图表和仪表盘。
四、典型使用场景
监控微服务:跟踪每个服务的请求量、延迟、错误率。
容器监控:配合 Kubernetes,监控 Pod、节点资源。
业务指标:统计用户活跃数、订单量等自定义指标。
自动化运维:发现异常后,自动扩容或重启服务。
假设你有一个网站,部署了3台服务器:
Prometheus 每15秒向这些服务器拉取一次CPU、内存数据。
发现某台服务器CPU持续5分钟超过80%,触发告警规则。
Alertmanager 发送邮件通知运维人员:“服务器A CPU负载过高!”
你在Grafana上查看历史图表,发现负载高峰每天下午3点出现,决定优化代码。
六、对比传统监控工具(如Zabbix)
Prometheus更适合云原生环境:动态伸缩的服务、容器化部署。
Zabbix更适合传统静态架构:固定服务器、网络设备。
Oracle/mysql
自增字段
Oracle:通过 序列(Sequence) + 触发器(Trigger) 实现自增。CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) ); CREATE SEQUENCE user_seq; -- 创建序列 CREATE TRIGGER user_trigger BEFORE INSERT ON users FOR EACH ROW BEGIN :NEW.id := user_seq.NEXTVAL; -- 插入时自动生成ID END;
MySQL:直接用 AUTO_INCREMENT 关键字。
CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) );
MySQL:直接用 AUTO_INCREMENT 关键字。
分页查询
--Oracle:用 ROWNUM 或 OFFSET-FETCH(12c+)。 -- 旧版本(前10条) SELECT * FROM (SELECT t.*, ROWNUM rn FROM users t) WHERE rn <= 10; -- 12c+版本(第11~20条) SELECT * FROM users OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY; --MySQ:用 LIMIT。 -- 查询第11~20条(跳过10条,取10条) SELECT * FROM users LIMIT 10 OFFSET 10;
字符串拼接
Oracle:用 || 或 CONCAT(仅支持两个参数)。SELECT first_name || ' ' || last_name AS full_name FROM employees; MySQL:用 CONCAT(支持多个参数)。 sql Copy Code SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM employees;
二、函数差异
日期处理
--Oracle:TO_CHAR 和 TO_DATE。 SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM dual; -- 当前日期转字符串 SELECT TO_DATE('2023-10-01', 'YYYY-MM-DD') FROM dual; -- 字符串转日期 --MySQL:DATE_FORMAT 和 STR_TO_DATE。 SELECT DATE_FORMAT(NOW(), '%Y-%m-%d'); -- 当前日期转字符串 SELECT STR_TO_DATE('2023-10-01', '%Y-%m-%d'); -- 字符串转日期
空值处理
--Oracle:用 NVL 或 COALESCE。 SELECT NVL(salary, 0) FROM employees; -- 如果 salary 为 NULL,返回 0 --MySQL:用 IFNULL 或 COALESCE。 SELECT IFNULL(salary, 0) FROM employees;
三、高级功能差异
事务控制
--Oracle:默认不自动提交事务,需显式执行 COMMIT BEGIN INSERT INTO orders (id, amount) VALUES (1, 100); COMMIT; -- 手动提交 END; --MySQL(InnoDB引擎):默认开启自动提交,可通过 SET autocommit=0 关闭。 START TRANSACTION; INSERT INTO orders (id, amount) VALUES (1, 100); COMMIT; -- 显式提交
存储过程
--Oracle:支持复杂逻辑和包(Package) CREATE OR REPLACE PROCEDURE add_user (p_name IN VARCHAR2) IS BEGIN INSERT INTO users (name) VALUES (p_name); END; --MySQL:语法更简单。 DELIMITER $$ CREATE PROCEDURE add_user (IN p_name VARCHAR(50)) BEGIN INSERT INTO users (name) VALUES (p_name); END $$ DELIMITER ;
适用场景:
Oracle:适合大型企业级应用,支持高并发、复杂查询和分布式。
MySQL:适合中小型项目或 Web 应用,轻量级且易部署。
成本:
Oracle 是商业数据库(需付费授权),MySQL 是开源免费(Oracle 公司拥有但社区版免费
查询工资最高的前 10 名员工:
-- Oracle
SELECT * FROM (
SELECT * FROM employees ORDER BY salary DESC
) WHERE ROWNUM <= 10;
-- MySQL
SELECT * FROM employees ORDER BY salary DESC LIMIT 10;
AWS
AWS(Amazon Web Services) 是亚马逊公司提供的一个全面的云计算平台,提供从基础设施到应用程序的完整套件。它允许个人、企业和政府等机构以按需付费的方式使用亚马逊的技术基础设施,包括计算能力、存储、数据库、分析、机器学习和应用等服务。
- 对象存储:S3(Simple Storage Service)
用途:存储和管理文件、图片、视频等。
示例:
上传文件:将网站的静态资源(如HTML、CSS、JS文件)存储到S3。
访问文件:通过URL直接访问存储在S3中的文件。
使用AWS CLI上传文件到S3
aws s3 cp ./index.html s3://my-website/
- 计算服务:EC2(Elastic Compute Cloud)
用途:提供虚拟服务器(实例),可以运行自己的应用程序。
示例:
部署一个Web服务器(如Apache或Nginx)托管网页内容。
使用SSH连接到EC2实例:
使用SSH连接到EC2实例
ssh -i “my-key.pem” ec2-user@ec2-instance-public-ip
- 数据库服务:RDS(Relational Database Service)
用途:托管关系型数据库(如MySQL、PostgreSQL、Oracle等)。
示例:
创建一个MySQL数据库实例,连接到Web应用程序。
连接到RDS MySQL数据库
mysql -h rds-instance-endpoint -u myuser -p mydb ```
- 消息队列:SQS(Simple Queue Service)
用途:在应用程序之间传递消息,实现松耦合架构。
示例:
在一个微服务架构中,订单服务将消息发送到SQS队列,触发支付处理服务。
import boto3
sqs = boto3.client(‘sqs’)
queue_url = ‘https://sqs.us-west-2.amazonaws.com/123456789012/my-queue'
发送消息
response = sqs.send_message(
QueueUrl=queue_url, MessageBody=’Order #12345 has been placed.’ ) ```
- 静态网站托管:S3 + CloudFront
用途:托管静态网站,并通过内容分发网络(CDN)加速访问。
示例:
将静态网站文件(HTML、CSS、JS、图片)上传到S3,并配置为静态网站托管。
使用 CloudFront 分发内容,使网站在全球范围内加载更快。
总结
AWS是功能强大且灵活的云平台,适用于从小型项目到大型企业的各种需求。它提供了从基础设施到高级服务的全套解决方案,帮助用户快速构建、部署和扩展应用程序。通过按需付费的模式,用户可以根据实际需求选择合适的服务,降低成本。
如果你对AWS感兴趣,可以访问 AWS 官网 获取更多信息,并通过免费-tier试用部分服务。
QTP/UFT
QTP(QuickTest Professional,现更名为 UFT,Unified Functional Testing)是一款由 Micro Focus 开发的自动化测试工具,主要用于 功能测试 和 回归测试,尤其适合企业级应用(如 Web、桌面、ERP、SAP 等)的自动化测试
一、QTP/UFT 的主要用途
功能测试
验证软件功能是否符合需求,例如登录流程、数据提交、页面跳转等。
回归测试
在代码修改后,快速验证原有功能是否被破坏,减少重复手动测试工作量。
跨平台兼容性测试
支持测试 Web、桌面、移动端、API 等多种应用类型。
数据驱动测试
通过外部数据源(如 Excel、数据库)批量测试不同输入场景。
与 CI/CD 集成
结合 Jenkins 等工具,实现自动化测试与持续集成流程的对接
二、QTP/UFT 的典型应用示例
示例 1:Web 应用登录功能测试
场景:验证用户输入正确的用户名和密码后能否成功登录。
步骤:
录制操作:手动操作浏览器输入用户名、密码并点击登录按钮,QTP 自动生成脚本。
参数化数据:将用户名和密码从 Excel 中读取,实现多组数据测试。
验证结果:检查登录后页面是否跳转到首页,或提示错误信息。
‘ QTP 脚本示例(VBScript)
示例 2:Excel 数据处理测试
场景:验证从 Excel 中读取数据并写入到某系统表格中是否准确。
步骤:
Browser("WebApp").Page("Login").WebEdit("username").Set DataTable("Username", dtGlobalSheet)
Browser("WebApp").Page("Login").WebEdit("password").Set DataTable("Password", dtGlobalSheet)
Browser("WebApp").Page("Login").WebButton("Login").Click
' 验证登录结果
If Browser("WebApp").Page("Home").Exist Then
Reporter.ReportEvent micPass, "登录成功", "用户成功跳转到首页"
Else
Reporter.ReportEvent micFail, "登录失败", "未跳转到首页"
End If
示例 2:Excel 数据处理测试
场景:验证从 Excel 中读取数据并写入到某系统表格中是否准确。
步骤:
使用 QTP 操作 Excel 文件,读取数据。
将数据输入到被测系统的表单中。
对比系统生成的结果与预期数据。
Copy Code
‘ 操作 Excel
示例 3:ERP 系统回归测试
场景:验证 SAP 系统中采购订单创建流程是否正常。
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\TestData.xlsx")
username = objWorkbook.Sheets(1).Cells(1, 1).Value
password = objWorkbook.Sheets(1).Cells(1, 2).Value
objWorkbook.Close
objExcel.Quit
' 输入到被测系统
Dialog("Login").WinEdit("Username").Set username
Dialog("Login").WinEdit("Password").Set password
Dialog("Login").WinButton("OK").Click
IM/SKU/SPU
IM(Instant Messaging,即时通讯)是一种基于互联网的实时通信技术,支持用户通过文字、语音、图片、视频及文件等多媒体形式进行即时信息交互,典型代表包括微信、QQ等应用56。其技术核心在于通过IM服务器实现用户身份认证、消息存储/转发、在线状态管理等功能,确保通信的高效性与稳定性
SKU 与 SPU 在电商中的核心定义及区别
一、SPU(Standard Product Unit)
定义
SPU 是 标准化产品单元,代表一组具有相同基础属性(如品牌、型号、核心功能等)的商品集合,与颜色、规格等可变属性无关。例如,iPhone 14(不考虑颜色和存储容量)是一个 SPU
核心作用
商品信息聚合:SPU 聚合了多款具有相同属性的商品,用于电商平台的商品分类和展示
营销与检索:作为标准化信息单元,便于用户搜索和比较同类商品
iPhone 14 的 SPU 包含所有颜色和存储版本(如红色 64GB、蓝色 128GB 等)
同一款运动鞋的不同尺码和颜色属于同一 SPU
二、SKU(Stock Keeping Unit)
定义
SKU 是 库存量单位,代表商品的最小存货单元,由唯一编码标识。它由 SPU 的某个具体规格组合(如颜色、尺寸、容量等)定义
核心作用
库存管理:精准追踪每种规格商品的库存数量及销售状态
订单处理:通过唯一 SKU 编码快速识别订单中的具体商品,减少发货错误
示例
iPhone 14 的红色 64GB 版本是一个 SKU,蓝色 128GB 是另一个 SKU
同一款 T 恤的“白色-中码”和“黑色-大码”分别对应不同 SKU
维度 SPU SKU 来源
定义 标准化产品单元,聚合同类商品 库存量单位,标识具体规格的存货单元
属性 仅包含基础属性(品牌、型号等) 包含基础属性+可变属性(颜色、尺寸等)
用途 商品分类、营销策略制定 库存管理、订单处理、销售分析 25
唯一性 同一 SPU 下可包含多个 SKU 每个 SKU 对应唯一库存编码
DFX
DFX 测试是什么?
DFX(Design for X)测试 是指在产品设计和开发过程中,针对 特定目标(X) 进行的一系列测试和优化,以确保产品在特定维度上的质量、性能或可制造性。
其中,X 可以是 制造(Manufacturing)、可靠性(Reliability)、测试(Testability)、成本(Cost) 等不同的关注点。例如:
DFM(Design for Manufacturing) → 设计可制造性
DFT(Design for Testability) → 设计可测试性
DFR(Design for Reliability) → 设计可靠性
DFC(Design for Cost) → 设计成本控制
DFX 测试主要应用于 硬件、电路、半导体、汽车、软件开发等行业,旨在从设计阶段就优化产品,以降低后期制造和维护成本,提高产品质量
Espresso /Battery Historian
Espresso 是 Android 官方 UI 自动化测试框架,适用于 快速、可靠的 UI 测试,可用于 Android Instrumentation 测试,支持 白盒测试、黑盒测试 以及与 Appium 结合使用
Battery Historian 是 Android 官方的电池性能分析工具,用于 分析 Android 设备的电池使用情况,帮助开发者和测试人员 优化应用的耗电量。
分析设备的耗电趋势,找出哪些应用、进程、硬件组件(WiFi、CPU、屏幕等)消耗了电量。
识别高功耗应用(Battery Drainer),例如长时间运行的后台进程、频繁唤醒设备的 App。
优化应用的 Power Management,减少不必要的电量消耗,提升用户体验
LLM
大语言模型的测试方法
性能评估(Benchmarking):
常见的评估指标有准确率、精确率、召回率、F1分数(F1 分数是精确率和召回率的调和平均值)、BLEU( 是一种用于机器翻译质量评估的自动化指标,通过比较机器翻译输出与参考翻译之间的重合度来评估翻译质量。它是基于N-gram匹配的)、ROUGE(一种常用于文本生成任务(如文本摘要、对话生成等)的评估指标,它比较生成文本与参考文本之间的重叠度)等
零-shot 和 Few-shot 测试:
零-shot(Zero-shot)测试:模型在没有事先训练的情况下,处理未见过的任务或数据。这主要考察模型的泛化能力和推理能力。
Few-shot(少样本)测试:给模型提供少量的标注样本,测试其在有限样本下的学习和推理能力。
人工评估:
通过对话系统、搜索引擎等应用来收集用户反馈,分析模型是否能有效地理解和满足用户需求
任务特定评估
模型执行的特定任务进行评估,例如翻译、摘要生成、对话等。这些任务通常有相应的评估标准,如BLEU(机器翻译)、ROUGE(文本摘要)
安全性和道德性测试:
测试模型是否会生成有害、偏见或不准确的内容。对于AI的伦理性问题,通常会使用反偏见、反歧视等标准来对模型进行测试
效率测试:
测试模型的推理速度、内存消耗、计算资源占用等,尤其是在实时或资源受限的环境中。
操作 Python 语法 JavaScript 语法
解析 JSON json.loads(data) JSON.parse(data)
数组拼接为字符串 “\n”.join(list) array.join(“\n”)
字符串定义(多行) ‘’’多行文本’’’ 或 “””多行””” 多行文本
(反引号模板字符串)
Python 中需用 \“ 表示字符串内部的 “
JavaScript 中若用双引号包裹 JSON,内部的双引号需转义为 "
MCP/dp
MCP(模型上下文协议)
模型上下文协议(MCP)是一种开放协议,它使得LLM应用程序与外部数据源和工具之间能够无缝集成。无论您是在构建一个 AI 驱动的集成开发环境、增强聊天界面,还是创建自定义 AI 工作流程,MCP 都提供了一种标准化的方式来连接LLMs与它们所需的上下文。
https://github.com/modelcontextprotocol
Three.js 是一个 JavaScript 库,用于在浏览器和 Node.js 环境中创建和渲染 三维图形。它基于 WebGL(Web Graphics Library),是一个跨平台的工具,允许开发者在网页中直接渲染 3D 图形,而无需安装额外的插件。
因为deepseek是后置审核,所以有以下三种方案:
1.在你的提问处点击修改,再提交几次,总有一次是不触发审核的。
2.在生成回答的时候,狂点复制回答按钮。这样确保触发审核的时候,你的剪贴板上面拥有前面回答的内容
Rust/linux
一、Rust vs Linux —— 菜场里的不同角色
- Linux 是菜市场本身
定义:Linux 是一个开源操作系统内核,就像菜市场的基础设施(摊位、水电、垃圾站)
作用:管理硬件资源(CPU、内存)、为软件提供运行环境(就像菜市场为摊贩提供摊位)
常见应用:服务器(大菜场)、嵌入式设备(智能菜秤)、安卓手机(移动菜市场) - Rust 是菜刀和围裙
🪚 定义:Rust 是一种系统级编程语言,专注于安全性和性能(就像一把锋利且不易生锈的菜刀)
🛡️ 特点:
内存安全:自动检查菜刀是否切到自己(防止空指针、数据竞争)
零成本抽象:菜刀切菜不浪费力气(高性能,接近 C/C++)
所有权系统:菜刀归谁用谁负责擦干(避免资源泄漏)
Cocos/Unity
一、Cocos 和 Unity —— 菜场里的两种厨具
- Cocos 是炒菜锅(专注2D)
🍳 特点:
只能炒2D菜(但炒得特别香!)
轻便省油(资源占用低,适合手机)
配菜丰富(中文开发者多,插件和教程多)
适用场景:
手游(《王者荣耀》《阴阳师》)
HTML5小游戏(网页版)
低成本快速开发
我用「菜场学编程」的视角,结合「烹饪工具」的比喻,给你讲清楚 Cocos 和 Unity 的区别,并用「炒菜教程」形式展示它们的基本用法:
一、Cocos 和 Unity —— 菜场里的两种厨具
- Cocos 是炒菜锅(专注2D)
🍳 特点:
只能炒2D菜(但炒得特别香!)
轻便省油(资源占用低,适合手机)
配菜丰富(中文开发者多,插件和教程多)
适用场景:
手游(《王者荣耀》《阴阳师》)
HTML5小游戏(网页版)
低成本快速开发 - Unity 是多功能厨电(支持3D/2D)
🍳 特点:
炒菜炖汤都能行(3D游戏强,2D也不错)
功能多但耗电(资源占用高,适合PC/主机)
附赠调料包(Asset Store资源丰富)
适用场景:
3A大作(《原神》《赛博朋克》)
中大型手游(《王者荣耀国际服》)
VR/AR应用
对比维度 Cocos Unity
主要方向 2D游戏(专注煎炒烹炸) 3D游戏(全能料理)
编程语言 JavaScript/TypeScript(类似炒菜谱) C#(类似高级料理配方)
资源占用 轻量(省油,适合手机) 重量级(耗电,适合高性能设备)
学习曲线 平缓(新手容易上手) 陡峭(需要学引擎底层逻辑)
中国市场占有率 高(中文游戏首选) 中(国际游戏更常用)
- 手机游戏(菜摊小吃)
Cocos:占比 60%
《王者荣耀》《和平精英》国际服
《捕鱼达人》《地铁跑酷》
Unity:占比 30%
《PUBG Mobile》《Pokémon GO》
《原神》(虽然用Unity,但美术风格偏向3D) - PC/主机游戏(餐厅大餐)
Unity:占比 70%
《英雄联盟》《DOTA 2》
《半条命:爱莉克斯》
Unreal Engine(另一款3D引擎):占比 25%
《赛博朋克2077》《最终幻想16》
Cocos:几乎不用(除非是纯2D独立游戏) - 特殊领域(创意料理)
Cocos:
HTML5小游戏(微信小游戏)
跨平台广告游戏
Unity:
VR/AR应用(《Roblox》)
模拟经营类(《模拟城市》)
做快餐(低成本手游) → 选 Cocos
优势:开发快、省流量、中文支持好
缺点:3D功能弱,高级特效难
做宴席(3A大作) → 选 Unity
优势:3D渲染强、跨平台、插件生态好
缺点:学习成本高,内存消耗大
做创意菜(独立游戏) → 两者皆可
Cocos:2D极简风
Unity:3D光影效果