【近取 Key】Alpha - v1.0 测试报告
Bug
前端
主页、登录、注册、导航
| bug说明 | 修复方法 | 修复结果 |
|---|---|---|
| 导航栏有时不显示用户姓名 | 修改用户信息的获取逻辑与存储方式 | 成功 |
| 展示词图界面导航栏居右失败 | 在组件中增加自适应相关设置 | 成功 |
| 用户名不符合限制却能成功注册 | 修复表单有效性检查的错误逻辑 | 成功 |
| 表单输入不符合限制时,可以使用回车发送表单 | 在回车事件绑定的方法中增加有效性检查 | 成功 |
| 密码符合要求后重复输入为空即可注册 | 修复了表单检查规则,使其初值不再为 undefined | 成功 |
| 页面刷新后词图名称丢失 | 监听页面 unload 事件,用 localstorage 存储词图名 | 成功 |
| 教程 gif 出现闪烁 | 调整 gif 在页面中的大小,使其不再需要放大 | 成功 |
| 主页导航栏明暗主题不能随滚动切换 | 修改获取页面滚动高度的方式 | 成功 |
用户中心
| bug说明 | 修复方法 | 修复结果 |
|---|---|---|
| “所有词图”文件夹不唯一 | 测试与后端链接情况并进行错误处理 | 成功 |
| 名称为空的词图预览与其他不一致 | 增加词图名称限制,不可为空 | 成功 |
| 页面刷新后侧边栏始终聚焦在第一行 | 修改导航栏 list 的书写方式,使用 to 属性绑定 | 成功 |
| 统计信息界面单词排序逻辑错误 | 修改表单计算方法进行正确排序 | 成功 |
| 我的词图界面全选删除后部分词图依然存在 | 修复全选操作的影响范围 | 成功 |
| 文件夹重名后建立正确文件夹依然报错 | 修改错误信息条传值逻辑 | 成功 |
| 修改密码后跳转到登录界面却仍然存在登陆状态 | 跳转前补充清空 localstorage 等 token 信息 | 成功 |
| 修改密码时新密码不符合要求也可以提交 | 设置表单监听各表单项的检查 | 成功 |
| 修改密码时没有重复输入新密码也可以提交 | 取消表单的懒检查特性,进行持续检查 | 成功 |
词图相关
| bug说明 | 修复方法 | 修复结果 |
|---|---|---|
| 单词浮窗内容过长而超出卡片边界 | 将卡片 width 固定,height 自适应延申 | 成功 |
| 单词侧边栏单词长度超长后换行 | 设置断点,当单词长度达到阈值后缩小字号 | 成功 |
| 单词侧边栏显示释义无换行 | 通过替换换行符+使用插槽渲染 html 实现换行 | 成功 |
| 新建词图后出现 404 无法获取预览图 | 后端预存默认 svg 供新词图使用 | 成功 |
| 单词加入词图后不移动则无法加入 | 添加在用户加入词图后即发送单词位置请求 | 成功 |
| 下划线、删除线等设置失败 | 将设置逻辑由取反改为传值 | 成功 |
| 词图 zoom 后单词浮窗位置野蜂飞舞 | 通过获取当前 zoom 参数计算单词相对位置并设置浮窗位置 | 成功 |
| show 界面无法显示词图名称 | 通过 API 通信获取当前路由 id 的词图名称并进行显示 | 成功 |
| 复习模式最后一个单词无法查看详解 | 设置复习到最后一个单词时仍然显示查看详解 | 成功 |
| 模式最后一个单词查看详解后浮窗无法消失 | 点击完成后自动收起当前单词浮窗 | 成功 |
| 同一单词重复加入词图 | 加入词图后设置加入按钮为 disabled 状态防止重复加入 | 成功 |
| 单词浮窗中翻译没有渲染出换行效果 | 添加替换换行符+使用插槽渲染 html 实现换行 | 成功 |
待解决问题:
| bug说明 | 修复方法 | 修复结果 |
|---|---|---|
| 首页侧边栏首次进入不会讲右侧顶向右侧自适应,之后可以 | 暂无 | 待修复 |
后端
| bug 概述 | 修复过程 | 修复结果 |
|---|---|---|
| API post 使用 body 传参,而后端使用的是 request.POST.get('xxx') | 改为先解析 body 再进行取值 | 前后端正常通信 |
| 解析用户名调用函数时,错把 username 误认为是 user_id,导致参数传错 | 对于 username user 进行明确区分和定义 | 能够正常的解析 user |
| 前端暂没有实现词图描述功能,导致系统错误 | 允许描述为空,更新数据库和 API 调用方法 | 前后端正常通信 |
| 获取推荐词表时出现错误 | 明确定义生成模式、数据类型、返回的是 id 还是 name;明确产生集合和计算集合 | 能够正常生成合理的推荐词表 |
| 给用户的 token 可能超时 | 添加 refresh_token | 正常刷新 |
| get post 在同一个 url 上,但解析时没有区分开 | 合并为 wrapped_api,分别处理 | 能够正常处理 API |
| get 不存在 body,而是使用参数传递 | 将 body 转为参数处理 | 能够正常处理 get |
| owner、user 命名不统一导致各处不一致 | 严格按照数据库定义进行处理 | 能够正常区分 |
| filter().first()、get() 对于报错、update 行为不同 | 需要不存在报错或确定存在时,可使用 get;其他时候使用 filter.first 并进行判断 2;update 视情况改为修改参数后 save() | 行为正确 |
| 在获得列属性时,直接 values_list() 返回的是元组而不是单个值 | 添加处理 values_list(xx, flat=True);在获得多列时不能通过属性而要通过下标获得 | 能够正确返回单个值 |
| 删除词图时,需要先移动到回收站,如果词图在回收站里才彻底删除 | 加入特判 | 选中词图如果部分在回收站,则只删除该部分,其余进入回收站 |
| django 自动存储的时间和前端显示时间不同 | 进行 .strftime 处理 | 前端显示为 %Y-%m-%d %H:%M |
| 时间为 UTC,和北京时间不同 | 返回给前端时进行 +8h 操作 2 | 前端显示正确值 |
| 错误处理时对于信息的传值类型定义有误 | 进行统一 | 正确进行错误处理 |
| 集合使用 remove 报错导致无法继续执行 | 使用 discard 除去可能不存在的实体 | 能够正确执行删除操作 |
| 生成的推荐词汇可能不在用户正在背的词书中 | 加入判断条件 2 | 生成的推荐词汇均在用户所想背的词书中 |
| 用户登录时可能输入用户名或者邮箱 | 分别进行查询,有一个即可登陆成功 | 输入用户名或邮箱均可登陆成功 |
| 当选择有序模式时,在某些情况可能生成的词表为无序 | 对于可能为无序的列表进行预排序 | 有序模式下所有情况返回的词表均为有序 |
| 词图对应单词状态的个数错误 | 添加遗忘的用户 id 限制 | 正确获取词图对应每种状态的单词数目 |
| 当用户复习单词数为 0 时,直接相除计算遗忘率会导致除 0 溢出 | 对分母为 0 的情况进行特判 | 行为正确 |
| Django models 中存储时间为相对时间,datetime 默认时间为绝对时间,二者无法直接计算 | 先将相对时间转换为绝对时间后再进行计算 | 正确执行 |
| 用户创建一张新词图后直接退出,则新词图的缩略图为黑色 | 在用户发送词图创建请求时,即在后端构造一张默认词图 svg | 可正常显示词图预览 |
场景测试
| 用户信息 | 用户情况 |
|---|---|
| 姓名 | 田旭尧 |
| 身份 | 可怜高中生,高考近在眼前 |
| 使用动机 | 高考英语单词必须得全部背过呀 |
| 典型场景 | 每周末在家抽出 3~4h 专门背单词 |
| 用户偏好 | 使用整块的时间系统化背单词,且对每个单词的掌握程度要求高 |
| 用户痛点 | 碎片化的背单词法不适用于一直坐着学习的高考党;纸质书籍笨重,没有交互;天天看书看得好累,要是有更 fashion 的学习方式换换脑子就好了 |
| 预期使用场景 | 每天有固定的时间使用该软件来背单词,通过设置词图中单词的个数激励自己每天的背词数量,并且根据统计信息界面的艾宾浩斯曲线来进行复习。 |
| 实现该用户需求的功能 | 1. 可以设置每个词图的单词数量上限,帮助用户达到每天的学习目标(痛点 1) 2. 统计信息界面对遗忘程度进行展示,时刻关注还未掌握的单词(痛点 2) 3. 复习模式帮助用户针对词图单位进行复习 |
| 用户信息 | 用户情况 |
|---|---|
| 姓名 | 田昶禹 |
| 身份 | 某校考研党,英语单词量不高,需要大量提升 |
| 使用动机 | 想要在半年里把考研单词记熟,每天抽出一定时间专门背单词 |
| 典型场景1 | 复习数一数二腻了,背背单词学学英语换换脑子 |
| 典型场景2 | 突然被某篇鸡汤激励到,立誓背完考研单词,然后背了五分钟 |
| 用户偏好 | 偶尔会专门背记单词,主要时间不会用太多,但会用系统化的时间专门记忆单词 |
| 用户痛点 | 单词量较大,碎片化背单词过于低效;且容易注意力不集中、记忆不长久 |
| 预期使用场景 | 由于大学时间比较自由,因此需要依靠激励机制来鼓励自己每天进行背单词。获得激励之后,每天确定背词小目标并完成。 |
| 实现该用户需求的功能 | 1. 日历图展示打卡情况,激励用户每天进行单词学习(典型场景 2) 2. 我的词图界面可以预览每个词图的背诵进度条,激励用户消除红色、橙色的部分,让整个词图进度条都呈现美丽的绿色 |
| 用户信息 | 用户情况 |
|---|---|
| 姓名 | 田永晓 |
| 身份 | 某校英语专业或出锅留学生 |
| 使用动机 | 有大量背单词的需求,常啃红宝书等词书,普通的碎片化记忆模式 APP 不适合了 |
| 典型场景1 | 某一天要背好多单词,不想背着一大摞书去图书馆,硬啃,普通的背单词软件过于碎片化,满足不了需求 |
| 典型场景2 | 看了个英文电影,想把电影里整理出来的单词加入候选背单词列表中 |
| 用户偏好 | 系统化背单词,即专门抽出时间阅读书籍、影视并记忆有关单词 |
| 用户痛点 | 纸质书籍重且较不方便、没有交互;大量学习中产生的零散单词除了手写记录难以集中背诵,且无法自定义位置;希望能提供基于词根词缀、近反义词的推荐背诵词 |
| 预期使用场景 | 对单词的专业性和难度有独特的要求,且由于背单词的重要性,需要使用特殊技巧来增强单词记忆。每天需要背单词的时间很长,觉得枯燥乏味难以集中精力。但是词图的多样化编辑功能可以让用户设计属于自己的词图,在背单词的过程中加入设计环节,帮助用户记忆的同时增加趣味性,让用户可以长时间背单词并减少疲劳感。 |
| 实现该用户需求的功能 | 1. 提供随机生成、顺序生成、词根词缀、近反义词等多种生成推荐词表方式,供用户建立词根词缀的概念及联想记忆(痛点 3) 2. 画布的 zoom 功能、可拖拽功能提供极大的操作空间(痛点 1、2) 3. 支持 9 种词书的选择(痛点 1) 4. 工具栏可以设置每个单词的样式 |
压力测试
对于所有 API 进行行为分析(具体分析表格请助教老师移步 gitlab 察看):
| API | 最大长度(数量级) | 查询数据库次数 |
|---|---|---|
| 词图中单词状态改变 | 301 | 5 |
| SVG 上传 | 913 | 2 |
| 用户登入 | 74 | 1 |
| 查看所有词图 | 334 | 4 |
| 查看统计信息 | 2110 | 2 |
| 查看单词释义 | 537 | 1 |
在此,取较有代表性的 API,取一个较新的账户进行压力测试,测试结果如下:
| API | 用户数 | 时间 | 业务数 | 成功率 | 传输效率 | 总数据传输 | 响应时间 | 实际最高并发连接数 | 最长传输时间 | 最短传输时间 |
|---|---|---|---|---|---|---|---|---|---|---|
| 查看单词释义 | 255 | 60s | 11055 | 100% | 186.46trans/s | 5.64M | 0.08s | 14.87 | 5.06s | 0.00s |
| 查看统计信息 | 255 | 60s | 1038 | 100% | 17.50trans/s | 12.08M | 0.85s | 14.88 | 3.95s | 0.09s |
可以看到,对于新用户,查询的效率和并发的支持较好。
但是对于一个数据量较大的老用户(背单词数在 500 数量级),进行压力测试:
| API | 用户数 | 时间 | 业务数 | 成功率 | 传输效率 | 总数据传输 | 响应时间 | 实际最高并发连接数 | 最长传输时间 | 最短传输时间 |
|---|---|---|---|---|---|---|---|---|---|---|
| 查看统计信息 | 100 | 10s | 37 | 100% | 4.03trans/s | 1.56M | 5.04s | 20.32 | 8.9s | 0.00s |
| 查看统计信息 | 100 | 60s | 293 | 100% | 4.94trans/s | 12.38M | 16.77s | 82.92 | 22.61s | 1.31s |
| 查看统计信息 | 200 | 10s | 37 | 100% | 4.03trans/s | 1.56M | 5.63s | 22.71 | 9.04s | 0.00s |
| 查看统计信息 | 200 | 60s | 278 | 73.54% | 4.67trans/s | 11.75M | 23.06s | 107.78 | 30.50s | 1.69s |
| 查看统计信息 | 255 | 60s | 219 | 16.82% | 3.66trans/s | 9.42M | 23.51s | 85.94 | 49.08s | 4.29s |
| 查看所有词图 | 100 | 60s | 1562 | 100% | 26.07trans/s | 8.08M | 3.70s | 96.48 | 5.51s | 0.20s |
| 查看所有词图 | 200 | 60s | 1593 | 84.82% | 26.68trans/s | 8.29M | 6.27s | 167.18 | 29.70s | 0.21s |
| 查看所有词图 | 255 | 60s | 1659 | 22.40% | 20.37trans/s | 9.61M | 5.98s | 166.15 | 29.84s | 0.00s |
对于某一个 API,单位时间内能够完成的业务数是有限的。对于查看统计信息、查看所有词图两个与数据库交互较多,或计算过程较复杂的 API,我们无法支持过高的并发数:200 用户并发尚不会存在问题,但更多的用户则会造成大量请求因等待处理的 socket 队列满而被丢弃;同时,过多 Client 与 nginx 之间建立了连接。这一方面是后端处理数据时速度较慢,存在优化空间;另一方面是硬件设备条件限制;以及没有计算 nginx Client、并发队列和请求之间的数值关系。
在修改并发队列长度后进行测试,虽然总业务数增加了,但成功业务数没什么变化,因此成功率反而下降了:
| API | 用户数 | 时间 | 业务数 | 成功率 | 传输效率 | 总数据传输 | 响应时间 | 实际最高并发连接数 | 最长传输时间 | 最短传输时间 |
|---|---|---|---|---|---|---|---|---|---|---|
| 查看所有词图 | 255 | 60s | 1666 | 16.28% | 27.84trans/s | 10.15M | 8.41s | 233.99 | 23.31s | 0.00s |
在此基础上,修改 Nginx 的最大连接数(768$\rightarrow$1024),成功率大幅增加:
| API | 用户数 | 时间 | 业务数 | 成功率 | 传输效率 | 总数据传输 | 响应时间 | 实际最高并发连接数 | 最长传输时间 | 最短传输时间 |
|---|---|---|---|---|---|---|---|---|---|---|
| 查看统计信息(原) | 255 | 60s | 219 | 16.82% | 3.66trans/s | 9.42M | 23.51s | 85.94 | 49.08s | 4.29s |
| 查看所有词图(原) | 255 | 60s | 1659 | 22.40% | 20.37trans/s | 9.61M | 5.98s | 166.15 | 29.84s | 0.00s |
| 查看统计信息 | 255 | 60s | 155 | 38.27% | 2.59trans/s | 6.55M | 15.99s | 41.38 | 30.58s | 0.00s |
| 查看所有词图 | 255 | 60s | 1733 | 99.20% | 29.27trans/s | 8.97M | 8.04s | 235.42 | 10.47s | 0.00s |
其中,查看统计信息的压测报错 SIGPIPE: writing to a closed pipe/socket/fd (probably the client disconnected) 以及 [alert] socket: xxx select timed out: Connection timed out,暂未解决。
单元测试
由于本项目比较特殊,数据库为规模较大的预处理数据库,故仅进行了部分不依赖于词书、单词信息、近反义词、词根词缀等数据库的单元测试。
测试矩阵
功能性测试
| 浏览器 | 版本 | 登录注册 | 首页显示 | 分类处理 | 词图创建 | 词图复习 | 曲线计算 | 用户反馈 |
|---|---|---|---|---|---|---|---|---|
| Google Chrome | 90.0.4430.93 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
| Microsoft Edge | 90.0.818.56 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
| 360浏览器 | 13.0.2220.0 | 正常 | 正常 | 正常 | 正常 | 正常 | 要开 js 功能 | 正常 |
| Firefox | 88.0.1 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 | 正常 |
| Safari(平板) | 604.1 | 正常 | 正常 | 正常 | 无法拖拽、更改大小 | 无法拖拽、更改大小 | 正常 | 正常 |
| QQ浏览器(平板) | 11.4.8.4762 | 正常 | 正常 | 正常 | 无法拖拽、更改大小 | 无法拖拽、更改大小 | 正常 | 正常 |
UI和操作测试
| 浏览器 | 屏幕分辨率 | 基本功能 | 页面布局 | 操作流畅度 |
|---|---|---|---|---|
| Chrome 90.0.4430.93 | 1920*1080 | 正常 | 画布在100%显示时超出屏幕 | 比较流畅 |
| Edge 90.0.818.56 | 1920*1080 | 正常 | 画布在100%显示时超出屏幕 | 流畅 |
| Edge 90.0.818.56 | 2560*1440 | 正常 | 正常 | 流畅 |
| Chrome 90.0.4430.93 | 2560*1440 | 正常 | 正常 | 流畅 |
| Firefox 88.0.1 | 2560*1440 | 正常 | 正常 | 流畅 |
| Firefox 83.0 | 1920*1080 | 正常 | 侧边栏弹出时右侧不会自适应;画布在100%显示时超出屏幕 | 比较不流畅 |
| 360安全浏览器 13.1.1302.0 | 1920*1080 | 正常 | 画布在100%显示时超出屏幕 | 较流畅 |
出口条件
前端
| 要求 | 完成情况 | 下一步 |
|---|---|---|
| 整体 UI 美观 | 基本实现统一的 UI 风格,基本保证美观 | 进一步美化 UI 界面细节 |
| 教程清晰 | 在教程页面使用 gif 进行动态展示功能,相对完善 | 考虑新增用户首次进入编辑的指南 |
| 跳转逻辑合理 | 跳转按钮清晰,返回按钮逻辑明确 | 了解用户体验感受,适当修正逻辑 |
| 用户操作友好 | 多数操作按钮有提示或本身带有文字信息 | 收集用户反馈,对模糊的地方进行补充说明 |
| 进行部分要求审查 | 添加了对用户名、密码、词图单词数量、词图名称等基本限制的前端审查 | 收集用户反馈,对限制进行调整 |
| 各屏幕分遍率、放大缩小、分屏的兼容 | 对部分侧边栏和词图的大小进行了屏幕自适应,对导航栏进行了分屏位置切换 | 完善对屏幕的适应性,争取让适应更加流畅 |
后端
| 要求 | 完成情况 | 下一步 |
|---|---|---|
| 数据库设计完备 | 能够支持前端询问,同时支持推荐算法的数据库设计 | 进一步根据 beta 要求设计数据库 |
| 进行权限处理 | 用户登录获得密钥,进而才可使用各种功能,保证数据安全性 | 完善权限处理系统 |
| 进行邮箱验证 | 用户需要通过邮箱验证才可使用软件,减少恶意用户 | 完善邮箱验证内容、跳转方法 |
| 单词数据 | 770570 个单词,覆盖面较广;其中 20651 个单词具有中英文例句 | 进一步完善释义的存储方式、例句的合理性检查 |
| 词书数据 | 导入了四级、六级、专业四八级、考研、雅思、托福、GRE、MBA、红宝书等词书 | 进一步根据用户需求寻找并导入更多的词书 |
| 近反义词等推荐算法 | 共有 5060 个单词可进行近反义词推荐;共有 9326 个单词可进行同词根词缀推荐;推荐算法自由选择 | 加入更多推荐算法;增加近反义词、词根词缀列表;显式列出对比或关联 |
综上,基本完成 Alpha 阶段的出口要求。
【近取 Key】Alpha - v1.0 测试报告的更多相关文章
- 【近取 Key】Alpha - v1.0 版本发布说明
功能与特性 Alpha 版本虽然为本软件的第一代版本,但已基本覆盖了用户个人使用时的主要功能.除登陆注册与后台管理外,下文将分版块详细介绍面向用户的主要功能特性. 『产品主页』 潜在应用场景 场景 0 ...
- 【近取 Key】Alpha - 项目展示
项目与团队亮点 一.团队成员与分工简介 成员组成与分工 本团队由 6 名成员组成,其中有 3 名 PM,2 名后端开发人员与 4 名前端开发人员,由于组内成员数量有限,因此所有 PM 均需同时兼领开发 ...
- 【近取 key】NABCD分析
项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 团队项目-NABCD分析 我在这个课程的目标是 提升工程能力和团队意识,熟悉软件开发的流程 这个作 ...
- 问渠那得清如许?为有源头活水来——对【近取Key】产品进行的深度测评与解析
在 Build To Show 的场景中,大家各显身手,用各种办法展现技术,的确很难在单一的维度上确定谁赢谁输.但是,在 Build To Win 的场景中,往往市场就是那么一块, 竞争对手占了 70 ...
- 【近取 key】技术规格说明书
项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 技术规格说明书 我在这个课程的目标是 进一步提升工程化开发能力,积累团队协作经验,熟悉全栈开发流程 ...
- 【近取 key】功能规格说明书
目录 前置信息说明 概念介绍 记忆宫殿 A4纸背单词法 词图 单词掌握程度相关 用户和典型场景 系统功能设计 主页 词图相关功能 创建词图 查看词图 复习词图 个人控制台相关功能 我的词图 统计信息 ...
- 【Alpha】“北航社团帮”小程序v1.0测试报告
目录 测试计划.过程和结果 后端单元测试 后端压力测试 测试结果 指标解释 前端测试 授权登录与权限检查 功能测试 兼容性测试 性能测试 回答课程组问题 测试中发现的bug 场景测试 测试矩阵 出口条 ...
- 【近取 key】Alpha 阶段任务分配
项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 alpha阶段初始任务分配 我在这个课程的目标是 进一步提升工程化开发能力,积累团队协作经验,熟悉 ...
- 【Beta】“北航社团帮”测试报告——小程序v2.0与网页端v1.0
目录 测试计划.过程和结果 后端测试--单元测试与覆盖率 后端测试--压力测试 展示部分数据 平均数据 前端测试--小程序v2.0 授权登录与权限检查 新功能的测试 兼容性测试 性能测试 前端测试-- ...
随机推荐
- Java并发编程之基础理论
内存模型 主内存.工作内存与Java堆.栈.方法区并不是同一个层次的内存划分 勉强对应起来 从定义来看,主内存对应Java堆中对象实例数据部分,工作内存对应虚拟机栈中部分区域 从更低层次来说,主内 ...
- python3 base64
import base64s='hello world'bytes_by_s=s.encode() #将字符串编码-->字节码,b64_encode_bytes=base64.b64encode ...
- java连接sql server--关于登录验证及对数据库增删改查应用
一:步骤## 1.sql server建立数据库和相关表 2.建立数据源 (1).打开控制面板找到管理,打开ODBC选项或直接搜索数据源 (2).打开数据源配置后点击添加,选择sql server ...
- .Net Core3.1中SameSite的使用方法、遇到的问题以及解决办法
一.关于SameSite的介绍 1. 什么是SameSite? SameSite是浏览器请求中Set-Cookie响应头新增的一种属性,它用来标明这个 cookie 是否是"同站 cook ...
- JS实现环绕地球飞行的3D飞行线动画效果(JS+HTML)
1.项目介绍 JS+HTML实现绕地球飞行的3D飞行线动画效果,且3D地球可以随意拖动和滑动缩放,画面中心是蓝色地球,地球表面上的两点连线之间有光电随机出现沿着抛物线轨迹3D飞行,可使用较好的浏览器打 ...
- java面试-CAS底层原理
一.CAS是什么? 比较并交换,它是一条CPU并发原语. CAS是一种无锁算法,CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B.当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什 ...
- Netcore webapi action swagger response返回参数使用匿名类型
问题:action中返回匿名对象时,swagger只能按强类型生成返回值描述 解决办法:使用roslyn在内存中动态执行代码,使用json.net反序列化匿名对象,向swagger返回动态匿名对象 效 ...
- 案例 | 荔枝微课基于 kubernetes 搭建分布式压测系统
王诚强,荔枝微课基础架构负责人.热衷于基础技术研发推广,致力于提供稳定高效的基础架构,推进了荔枝微课集群化从0到1的发展,云原生架构持续演进的实践者. 本文根据2021年4月10日深圳站举办的[腾讯云 ...
- C++介绍和class的介绍
课程介绍 程序设计II是程序设计I的延续,继续提高编程能力,并能掌握面向对象(Object Oriented Programming)的程序设计方法.所谓面向对象,指的是将具体的流程变得模块化.这可以 ...
- 为什么有时博客中的代码复制进自己的VS中报错
昨天写代码时遇到一个问题,我搜了一篇博客,然后复制到我的WPF中, 然后,全报错(当时快给我气死了,一篇有一篇的不能用,试了一次又一次,时间全浪费在这上面了,没打游戏,做的东西也没出来) 问题原因: ...