[Gamma阶段]展示博客

水哥牛X团队[Gamma阶段]展示博客

1632556-20190617161803156-896643138.jpg

微信小程序搜索“小小易校园”即可体验

项目愿景

  • 想参加竞赛,锻炼自己,却找不到合适的队友
  • 想进行实习,体验工作,每天不得不翻遍吐槽版的几百条信息却一无所获
  • 发布在吐槽版的“求组队”被聊天淹没,无人问津
  • 想找特定竞赛、特定类型实习的通知,只能一个一个自己翻找,心力交瘁

组队、招募信息大多在吐槽版发布,而吐槽版每日上百条的消息量往往导致信息曝光率极低,造成了”想找组队、招募信息的人找不到,发布组队、招募信息的人得不到回应“的现象。

因此,决定开发“小小易校园”小程序,提供一个针对各类竞赛组队、各类实习招募信息的统一发布平台,提供以下服务:

  • 首页集中显示各类招募信息,并提供分类浏览、关键词搜索等检索功能
  • 支持图片上传的招募发布功能,并提供便捷的发布管理页面,可查看申请者简历、接受,拒绝他人申请
  • 申请感兴趣的发布,在我的申请界面随时查看申请状态,并提供可随时修改的简历模板

项目总体完成情况

截至Gamma阶段结束,我们完整实现了原本计划的信息发布、申请管理功能,还额外添加了数学建模比赛专用的组队及队友匹配模块,总共实现了30个不同页面39个不同功能接口

1632556-20190617170115807-846352691.png所有页面
1632556-20190617170121285-102216570.png所有接口

其中,Gamma阶段完成的美赛模块功能及页面如下:

1632556-20190617170438798-136851534.gif首页及问卷填写页面
1632556-20190617170453814-134234027.gif搜索特定用户邀请组队
1632556-20190617170515612-308958693.gif更换推荐队友及邀请
1632556-20190617170500600-604386748.gif查看已发送的邀请
1632556-20190617170505552-1125448515.gif查看收到的邀请
  • 填写数学建模比赛信息问卷,系统自动打分,并根据分数匹配队友候选——匹配自动屏蔽队伍中的队友、以已邀请过的用户
  • 邀请用户进入队伍,或接受他人邀请参加其他队伍、退出队伍等队伍管理操作
  • 根据用户名搜索用户,寻找特定用户进行组队
  • 点击用户通过下拉栏直接查看专业、竞赛经历等信息,避免页面跳转的等待

用户情况

用户数量及用户分析

截至2019/06/17,共有用户量400人:

最近7日的总访问人数变化

而这400用户中,年龄分布如下:

1632556-20190617172149841-2127294378.png

可见,绝大多数用户为18-24岁的在校大学生或刚毕业的大学生,用户情况符合前期调研的预期。

用户反馈及根据反馈的修改

在发布了Gamma阶段的第一个版本后,我们收集了用户反馈。用户反馈的主要问题有:

  • 问题1

1632556-20190617215238708-623356631.png

原本的登录页面中,有获取头像与姓名进入主页两个Button。获取头像与姓名按钮用于点击后获取用户头像。但这一步往往造成用户迷惑,不知道这两个按钮点击的顺序、影响。因此,我们对登录页面进行了修改:

1632556-20190617215348778-473085011.png

新的登录页面只保留进入主页按钮,若没有用户的微信头像等信息,则自动弹出权限获取窗口。

  • 问题2

该反馈针对美赛模块的原首页:

1632556-20190617215722382-1511550218.jpg

该页面中,“已发邀请”、“收到邀请”、“重填问卷”、“换一批”为可点击按钮,“我的队伍”、“推荐队友”为提示信息,不可点击。其中,“推荐队友”模块中,任意点击任意用户可查看详细信息。

针对这一页面,用户提出了以下反馈:

1632556-20190617215641324-87524778.png

由于颜色相近,导致用户不清楚哪些按钮可以点击而哪些按钮不能,更不知道点击用户可查看详细信息。为了改进这一问题,我们一开始尝试通过“较为灰色的部分不可点击,颜色明亮部分可以点击”的方式解决。因此,我们向艺术生寻求了配色帮助。然而。。。。。。。。

1632556-20190617220117574-1396276976.jpg

这样的配色并不能让可点击按钮更加明显。。并且配色风格与我们小程序的整体风格严重不搭。经过一番尝试,我们最终选择将所有可点击按钮加上下划线,作为提示。

1632556-20190617220222209-1276934745.jpg

这样,我们既保留了配色的统一、美观,也提高了可点击与不可点击部分的区分度。

软件质量与Alpha版本的对比

Alpha版本如同Alpha版本出口条件所述,主要为了完成计划的各类主要功能,为工期工作提供框架。因此,Alpha版本的产品在UI上非常简陋。在之后两个版本,我们大幅度优化了UI,几乎对所有页面的前端xsml代码进行了重构。通过长时间的努力,我们也取得了显著的成果。以下是两个版本的UI对比:

原页面
新页面
1632556-20190617224529237-1128602994.png原主页
1632556-20190617224543132-1456209116.png新主页
1632556-20190617224600505-1523356102.png原我的发布
1632556-20190617224606135-566689955.png新我的发布
1632556-20190617224659818-1966716892.png原我的申请
1632556-20190617224703910-2042591447.png新我的申请
1632556-20190617224722835-1211248478.png原发布详情
1632556-20190617224730498-712743153.png 新发布详情

从上述对比可以看到UI、布局、配色的大幅度提升。

除页面的优化外,自Alpha版本以来还进行了大量的BUG修复及操作修改,其中重大问题包括但不限于:

  • 缺乏加载提示,网络出现问题时显示一片空白,导致用户不清楚出现了何种问题

    我们在之后的阶段对所有页面加入了加载提示:

    1632556-20190617230529658-1711609445.png
  • 修复了大输入框在IOS端字体重影的问题(小程序自带UI控件BUG)

  • 自动联想标签的失焦问题:

    自动联想的标签在Beta版本在进行滑动下拉等操作时也会判定为失焦,而自动关闭。这样导致在备选项较多,超过一个屏幕长度时,用户在进行滑动屏幕,想选择屏幕外的标签时,会判定为失焦而自动关闭。这一问题在之后得到了解决。

  • 获取头像后无法登陆的问题

总而言之,Alpha版本是一个”能用“的版本,但存在诸多因为没有经验导致的设计问题、程序BUG。而在Gamma阶段,我们不但修复了之前各类极度影响用户体验的BUG,还在UI设计方面下了更多功夫,引入了更多诸如图标、不规则多边形、圆角矩形、阴影等设计元素,将软件质量大大提升。

1632556-20190617224529237-1128602994.png原主页
1632556-20190617232150664-292969191.png新模块主页

相比Alpha阶段在软件工程质量上的提高

相比Alpha阶段,我们在软件工程质量上的提高主要体现在三个方面:

  • 明确了每个人擅长的工作,对分工进行了细化,让每个人的工作效率尽量最大化

除了基本的PM、开发、测试的分工,我们经过Alpha阶段的磨合,为每个人都分配了最适合的任务:

姓名职位详细分工
bywPM所有博客、进度追踪、页面设计、功能策划、接口初步规划、issues管理,尽量让其他成员专注于编程
wb前端开发和bsh同寝室,共同负责大部分前端页面的完成。
bsh前端开发负责部分前端页面的完成及测试矩阵的完成
szy后端开发后端部分开发,后端接口的详细设计,接口的单元测试
lw后端开发后端部分开发,服务器的一切管理事物,压力测试
lqh前端开发小部分前端页面开发,微信机器人的完成,博客gif的录制

从Beta阶段开始我们明确了这一详细分工,这样每位成员都能明确自己在每个迭代不同阶段的职责,促进了任务的顺利进行。

  • 完善、详细的前期规划设计工作

经过Alpha阶段,我们意识到了设计得越详细,实现时的问题就越少。

在Alpha阶段我们的接口设计较为简单。在实现过程中,我们发现,接口作为前后端对接之处,任何一点理解上的不一致都会导致严重影响正常使用的bug发生。因此,我们在之后的阶段中将接口设计尽量细致,对每个参数、返回值的类型、名称、条件都做了相应要求。

1632556-20190618001145068-1519661395.png
1632556-20190618001157810-1579127336.png

  • 将前端的UI、布局与实现过程分离

在Alpha阶段,我们将前端每个页面完全交给负责的相应开发人员。当时我们认为,由开发者决定用什么样的控件、进行怎样的布局,最大程度方便开发者,让开发者选择自己熟悉、使用方便的控件。因此,Alpha阶段的页面设计图极其简单:

68747470733a2f2f696d67323031382e636e626c6f67732e636f6d2f626c6f672f313633323535362f3230313930342f313633323535362d32303139303430313230343930323338362d313138343832353536342e706e67

但是,在实际运作过程中我们发现,前端开发人员不但要考虑如何可靠的实现功能,还要考虑布局、配色(尤其是配色。。。),不但没有起到方便前端开发的作用,反而还大大拖慢了前端的开发进度,还导致页面的美观程度不尽人意。。因此,在之后的阶段中,由PM负责对页面进行详细设计:

1632556-20190618003505581-520140150.png
1632556-20190618003510270-1696823504.png

1632556-20190618003513507-1009667782.png

在有详细的设计案后,前端开发人员有了具体的目标,反而提高了前端开发的速度,前端页面的质量也有了巨大的提升。

我们在合作过程中学到的软工知识

  • 利用用户反馈进行改正是提升品质的最快最好方法
    无论怎样精心的设计,都难免有遗漏之处。而当局者迷,发现这些漏洞的最好方法,莫过于发布体验版或邀请用户试用。用户看待产品的角度与开发者、设计者有极大的不同,而用户提出的问题往往也是在体验中最明显、影响最显著的问题。因此,根据用户的反馈修改产品是最高效、最准确的方法之一。
  • 在长时间固定每位成员的职责后,能一定程度促进成员自觉,甚至提前完成任务
    若分工或详细职责频繁更换时,往往需要PM话费较多经历提醒成员其负责的工作、工作的DDL,对于PM和开发成员来说都不是一个好的体验。而具体的分工确定后,每位成员对自己的职业非常清晰,知道自己在每个迭代的不同时期有何责任,一定程度上提高了成员工作的积极性和自主性,对于整体开发过程的体验有较大的提升。
  • 将设计与实现工作分离是提升效率及工作完成质量的重要步骤
    在Alpha阶段,我们将各个页面完全交给负责的同学完整。我们原本的期望是,开发同学在工作时,可以根据自己的编程习惯等,选择最适合自己,自己认为最方便最好用的空间、第三方库。我们希望尽量不对前端开发人员进行限制,来方便他们进行开发。但实际工作中,由于开发者不但要考虑功能的可靠实现,还要考虑页面的布局、设计,造成了进度缓慢,且设计质量不高。因此,
  • 功能越多、越方便接入用户的平台,往往审查条件越严格。留出足够的缓冲时间以防万一非常重要
    我们的产品发布在微信小程序平台上。微信小程序可用微信登录,不用安装直接从微信进入,具有巨大的流量引入优势。但是,微信小程序的审查也非常严格:任何具有“信息发布类”功能的小程序,都需要通过注册企业申请企业版小程序才可发布。并且,若企业版小程序具有任何审查员认为是“招聘、中介类”功能,还需要进一步提供“人力资源管理证”,才能通过审核。这一点在Beta阶段为我们造成了较大的困扰。因此,在Gamma阶段发布时,我们预留了足够的时间,并且在发布前将后台数据中和招聘类似的实习类发布下架,避免审查人员误解,在通过审核后再重新上线。

团队贡献分

Gamma阶段成员的贡献分如下:

名字分工团队贡献分具体贡献
bsh 1167前端负责人50完成美赛查看申请者的界面完成美赛查看申请者,同意申请,拒绝申请等页面功能完成美赛查看我的邀请的界面修复了上阶段拒绝以后的图标显示BUG
byw 1173PM51每日例会的召开与主持每日例会博客撰写Gamma阶段整体计划规划每日任务分配及Issues管理所有新页面的设计测试报告、发布说明博客的撰写功能、接口的规划
lqh 1168微信监听机器人开发54学习了微信小程序的开发 完成了前端美赛问卷调查页面的实现完成了小程序新增功能展示的录屏及gif制作
lw 1175后端负责人及测试47gamma阶段主要负责实现了获取美赛信息修改美赛信息,搜索用户,获取美赛队伍信息,提交评分,获取推荐队员,退出队伍等7个后端接口实现了上述信息的相关的数据表最后进行了压力测试
wb 1155前端开发及测试52完成美赛页面完成美赛搜索功能完成美赛换一批功能完成美赛个人信息功能修复上阶段无法查看申请者简历的bug修复上阶段无法查看自己投递的简历的bug修复上阶段主页进入不方便的bug
szy 1170后端开发及测试46美赛后端邀请功能共5个接口所有单元测试的完成,包括之前版本的回归测试及修改后端诸多BUG的修复协助前端进行ios系统的测试

其他阶段的贡献分参见贡献分汇总博客

产品测试

在Gamma阶段,我们同样从单元测试、 压力测试、前端测试矩阵三个方面进行了详细的测试。

单元测试

单元测试的主要目的,是测试后端所有接口的工作是否正常。其内容主要包含两方面:
- 接口在正常情况下是否能发挥预期功能
- 接口在异常情况下是否能返回预期错误信息

Gamma阶段的所有单元测试与Alpha、Beta阶段相同,在pycharm下使用Coverage工具进行测试。经过修改后已经通过了所有单元测试。

在Gamma阶段,我们依旧针对每一个接口都设计了相应的单元测试。现在,三个阶段单元测试的总数高达203个
1632556-20190616211600040-216084274.jpg

1632556-20190616211604415-1084505310.png

在运行完所有单元测试后,单元测试的代码覆盖率高达96%,切实确保了所有接口的正确性。
1632556-20190616211610770-1433697071.png

单元测试中发现的bug如下:

后端单元测试Bug汇总

接口现象原因是否解决
/mcm/invite/<int:user_id>/调用接口时返回错误码500数据库操作时搜索的键名错误
/mcm/invitations/send/后端返回的邀请信息全是自己的信息,实际上应为被邀请者的信息对数据库搜索到的数据进行的索引错误
/mcm/accept/<int:invitation_id>/同意后未加入队伍更新数据库是未进行保存
/mcm/quit/用户退出队伍后未成为单人队伍的队长未更新用户身份字段
/mcm/accept/<int:invitation_id>/邀请同意后被邀请者仍能在邀请列表里看见未对被邀请者可见的邀请信息进行过滤
/mcm/invite/<int:user_id>/能够邀请队友发出邀请是应过滤现有队友
/my/profile/modify/无法修改个人资料account超出最大长度限制
/mcm/search/user/返回的user_id不正确返回的user_id为整数,应改为string类型
/mcm/match/返回的推荐用户中包含自己没有设置相关的查询过滤条件
/mcm/search/user/无法获取name参数name参数在url中,不能从body中获取
/mcm/match/获取推荐用户时没有正确过滤已发送邀请的用户设置的相关查询过滤条件不正确
/mcm/quit/用户作为队员退出某一队伍单独一人时未自动成为队长缺少对数据表中相关字段的设置
/mcm/invite/<int:user_id>/调用接口时返回错误码500数据库操作时搜索的键名错误
/mcm/invitations/send/后端返回的邀请信息全是自己的信息,实际上应为被邀请者的信息对数据库搜索到的数据进行的索引错误
/mcm/accept/<int:invitation_id>/同意后未加入队伍更新数据库是未进行保存
/mcm/quit/用户退出队伍后未成为单人队伍的队长未更新用户身份字段
/mcm/accept/<int:invitation_id>/邀请同意后被邀请者仍能在邀请列表里看见未对被邀请者可见的邀请信息进行过滤
/mcm/invite/<int:user_id>/能够邀请队友发出邀请是应过滤现有队友

表中详细列出的BUG的现象及具体原因,目前后端发现的所有BUG均已解决。

压力测试

进行的压力测试与Beta阶段使用相同工具。基本参数如下:

  • 并发用户数:500
  • 总请求数 :5135

进行压力测试后的结果如下:
1632556-20190616211846651-1606285368.png
1632556-20190616211850831-1291753765.png
1632556-20190616211854503-463312643.png
1632556-20190616211857389-1373222475.png
1632556-20190616211912659-320353362.png

  • 测试结果:
    总请求数量为5135个的情况下,失败请求数为2,表现良好。
    平均响应时间为0.905s吞吐率为51.2req/s
    Gamma阶段压力测试的表现相比Beta阶段,有较大提升。
    Beta阶段压力测试详情请见这里

前端功能测试

对于前端的功能测试,仍采用与Alpha阶段相同的方式,即在不同的机型、不同的操作系统下,对每个页面的每个功能进行一一测试,以检测其功能的正确性。前端功能测试的测试矩阵如下:

测试矩阵功能测试页面显示
测试机型测试环境登录搜索查看分类标签首页智能推荐修改个人信息修改简历查看招募发布招募查看我的发布采纳申请申请招募查看我的申请填写美赛个人信息填写美赛问卷换一批推荐退出队伍邀请推荐队友查看已发邀请查看收到邀请接受和拒绝邀请搜索用户页面排版
Redmi K20 ProAndroid 9.0无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题显示的人错误(偶尔)无问题无问题无问题无问题无问题无问题
Mi6Android 9.0无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题显示的人错误(偶尔)无问题无问题无问题无问题无问题无问题
Honor PlayAndroid 9.0无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题显示的人错误(偶尔)无问题无问题无问题无问题无问题无问题
IQOOAndroid 9.0无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题显示的人错误(偶尔)无问题无问题无问题无问题无问题无问题
iphone7IOS无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题无法查看个人简历无问题无问题无问题无问题无问题无问题无问题无问题无问题无问题
iphone8IOS无问题无问题无问题无问题无问题无问题无问题无问题无法查看申请者无法查看申请者无问题无法查看个人简历无问题无问题无问题退出队伍有时显示其他人无问题无问题无问题无问题无问题无问题

回归测试

从后端的接口测试部分可以看见,在进行Gamma阶段的单元测试时,我们同时运行了前两个阶段已完成的单元测试,并对测试失败的接口进行了修正,最后顺利通过了Alpha、Beta阶段的所有单元测试,保证了前两个版本功能的正确性。
前端上,我们对前两个版本的页面也进行了详细测试,确保了原功能的正确性。并修复了一些新发现的问题,如:

  • 部分机型无法查看发出的申请简历问题
  • 自动联想表现在进行滑动屏幕时会判定为失焦,导致实际上超过一屏的联想结果无法选择的问题

转载于:https://www.cnblogs.com/Water-T/p/11040366.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411106.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

删除sessionstorage_localStorage 和 sessionStorage 介绍

一、 简述sessionStorage 和 sessionStorage 是 HTML5 新增的两个特性&#xff0c;这两个特性主要是用来作为会话存储和本地存储来使用的&#xff0c;解决了 cookie 存储空间不足的问题&#xff1b;sessionStorage 属性允许你访问一个 session Storage 对象&#xff0c;用于存储…

redis springmvc mysql_redis和mysql怎么一起在springmvc里面

展开全部一、mysql集成到springMVC中的方法&#xff1a;1、在SRC目录下创建一个32313133353236313431303231363533e4b893e5b19e31333361323538db-config.properties文件来存放我们的数据源配置信息&#xff1a;db.url jdbc:mysql:///springmvcdb?useUnicodetrue&character…

mysql安装了libaio还是报错_ubuntu安装mysql遇到的坑----解决Mysql报错缺少libaio.so.1

rootmaster:/usr/local/mysql# /usr/local/mysql/bin/mysqld --initialize --usermysql --datadir/usr/local/mysql/data --basedir/usr/local/mysql弹出一个错:/usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object f…

Notepad++连接VMWare中Linux只能看到/root目录

如下图&#xff0c;使用SFTP协议连接&#xff0c;用root用户登录后&#xff0c;我一开始只能看到root下的文件。稍作修改&#xff0c;把下面的“Initial remote directory”设置成“/”就可以看到根目录了。 转载于:https://www.cnblogs.com/bigbigbigo/p/11054876.html

创建没有Document的MFC MDI应用程序

程序源代码 效果&#xff0c;如图&#xff1a;1)创建一个MFC MDI应用程序&#xff0c;Wizard设置如图&#xff0c;然后点Finish2)CMyTreeView 在CMyTreeView中新增三个函数&#xff0c;显示些示例数据virtual BOOL PreCreateWindow(CREATESTRUCT& cs);//本例没有使用该函…

glassfish mysql 配置文件_最新glassfish配置mysql

在百度搜了一个下午&#xff0c;都没有搞定glassfish配置mysql&#xff0c;特别是百度文库中的GlassFish中MySQL连接池配置这篇文章&#xff0c;我不知道它是不是过时了&#xff0c;配一个jdbcConnPool就要写一个mysql.xml,那我要再配一个&#xff0c;岂不是再写一个mysql2.xml…

Apollo 无人驾驶平台中多传感器标定

传感器标定是无人车最基础也是最核心的模块之一。作为软件层提供的第一项服务&#xff0c;标定质量和准确度极大地影响着感知、定位地图、PNC 等模块。在 Apollo 开源自动驾驶平台中&#xff0c;我们提供了丰富的多传感器标定服务&#xff0c;如激光雷达、惯导、摄像头、多普勒…

mysql数据库的数据类型转换_MySQL 和Server 2000 数据库中数据类型的转换

问题阐述在某些特殊的时候&#xff0c;可能要将MySQL 数据库转换为SQL Server 2000 数据库&#xff0c;这时问题也就随之而来。例如&#xff0c;在MySQL 数据库中&#xff0c;创建的字段使用varchar 类型&#xff0c;该类型的数据可以进行聚合运算&#xff0c;其返回的值是stri…

【Silverlight】Bing Maps开发应用与技巧二:自定义图钉标注控件和动态ToolPanel

在Bing Maps Silverlight Control中以及为我们提供了地图图钉控件Pushpin&#xff0c;我曾经在《使用图钉层&#xff08;Pushpin layer&#xff09;及地图图层&#xff08;MapLayer&#xff09;》一文中介绍过他的使用方法&#xff0c;本篇主要介绍如何自定义图钉标注控件以及对…

java 创建线程的三种方法_java 创建线程的几种方式

说道线程&#xff0c;肯定会想到使用 java.lang.Thread.java这个类那么创建线程也主要有2种方式第一种方式&#xff1a;public class MyThread extends Thread {public void run() {System.out.println("这是MyThread线程");}}然后在调用处&#xff0c;执行start方法…

【iOS】从实际出发理解多线程(二)--NSThread基础操作

简介 NSthread是苹果官方提供面向对象操作线程的技术&#xff0c;简单方便&#xff0c;可以直接操作线程对象&#xff0c;不过需要自己控制线程的生命周期。在平时使用较少&#xff0c;常用的就是下面的方法来获取当前线程。 [NSThread currentThread] 使用 1.实例初始化、属性…

双绞线制作方法和标准

双绞线的制作方法&#xff1a; 标准568B&#xff1a;橙白--1&#xff0c;橙--2&#xff0c;绿白--3&#xff0c;蓝--4&#xff0c;蓝白--5&#xff0c;绿--6&#xff0c;棕白--7&#xff0c;棕--8 (如图2&#xff09; 标准568A&#xff1a;绿白--1&#xff0c;绿--2&#xff0c…

深入理解Java枚举类型(enum)

理解枚举类型 枚举类型是Java 5中新增特性的一部分&#xff0c;它是一种特殊的数据类型&#xff0c;之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束&#xff0c;但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。下面先来看看什么是枚举…

Flash/Flex学习笔记(47):反向运动学(上)

先回顾上篇所说的"正向运动学"&#xff1a;以人行走的例子来说&#xff0c;基本上可以理解为大腿驱动小腿&#xff0c;小腿驱动脚&#xff0c;从而引发的一系列姿态调整和运动。再举一个例子&#xff0c;我们用着拿一根软鞭或链条的一端挥舞&#xff0c;被手挥舞的这…

java tomcat jms_JavaWeb之使用Tomcat、JNDI与ActiveMQ实现JMS消息通信服务

前言之所以使用JNDI 是出于通用性考虑&#xff0c;该例子使用JMS规范提供的通用接口&#xff0c;没有使用具体JMS提供者的接口&#xff0c;这样可以保证我们编写的程序适用于任何一种JMS实现(ActiveMQ、HornetQ等)。什么是JNDI&#xff1a;JNDI(Java Naming and Directory Inte…

你是第几名:Excel 中 Large 和 Small 的用法

类似于 SQL 语言中的 TOP X, Large 和Small 有2个参数 Large(Array,k) Array 可以为一个单元格区域&#xff0c;k 为第k各最大值&#xff0c;Small 与之对应返回第k个最小值。 注意&#xff1a;单元格区域中的非数字会被忽略掉。 例子如下&#xff1a; 可以类比Rank的用法&…

mac系统下android studio创建手机模拟器

打开android studio&#xff0c;点击右上角的模拟器图标&#xff0c;打开“Android Virtual Device Manager” 窗口&#xff0c;如下图 点击“Create Virtual Device”&#xff0c;在打开的设备定义列表中&#xff0c;选择“Phone -> Nexus 5X”&#xff0c;右边列出了改机型…

如何设置Hyper-V的虚拟机快捷方式

在Windows Server 2008中&#xff0c;提供的Hyper-V功能&#xff0c;可以很方便地在企业环境中部署多个虚拟机&#xff0c;以适应不同的开发需要。一般我们都是通过下面的方式 1. 打开服务器管理器 2.打开Hyper-V管理器&#xff0c;找到有关的虚拟机&#xff0c;然后右键点击“…

java跨函数跳转_VS code 函数无法跨文件跳转到定义

现状&#xff1a;本文件函数通过this打点调用的函数&#xff0c;引入绝对路径的文件&#xff0c;调用的函数都可以通过Ctrl 点击 实现跳转到定义处。而如果在 webpack 通过alias 设置了别名&#xff0c;无法跳转成功。解决方案: 新建文件 jsconfig.json&#xff0c;配置如下。…