688
社区成员
发帖
与我相关
我的任务
分享| 这个作业属于哪个课程 | 2023年福大-软件工程实践-W班 |
|---|---|
| 这个作业要求在哪里 | 软件工程实践——软件评测作业 |
| 这个作业的目标 | 给InsCode、IT屋-程序员软件开发技术分享社区、Online Compiler and IDE三个软件写一个评测博客 |
| 其他参考文献 | 邹欣老师发布的软件工程-案例分析作业、《构建之法》 |
登录功能

注册/登录,页面弹出登录提示框。推荐登陆方式为微信登录(同CSDN),用微信“扫一扫”功能扫描二维码后,页面跳转到主页,完成登录
和CSDN登录状态保持一致,即CSDN处于登录状态则InsCode也处于登录状态,已经登录CSDN的用户可以免去登录直接使用。方便快捷,用户只需要通过微信扫描二维码就可以完成登录。无法实现登录的,登录后会提示“暂不支持除微信外的其他第三方账号注册”。保证提供给用户的登录方式是可以正常使用的,而不是一味展示多种登陆方式。登出功能

同时登出,登出后写的文章内容是无法提交的。(将各自的登录登出功能分离开来,这样一来,用户在退出其中一个平台的账号时,另一个账号还能正常使用。就不会出现退出InsCode后CSDN一直要求登录的情况。
功能介绍
点击项目卡片进入项目详情页,再点击开始按钮在线运行项目。在项目详情页,除了可以在线运行外,还可以选择查看源代码、收藏项目、fork项目到自己的仓库或者分享该项目。在详情页下方,还可以留言互动,讨论与该项目有关的问题,同时还提供了关注发布者的功能。
优点分析
优点1:设计美观大方,将项目预览窗口放大置于中间位置,用播放按钮提示用户点击运行项目,很好的实现了项目可视化。
优点2:用户可以查看项目的源代码,还可以将喜欢的项目直接fork到本地仓库,方便用户学习。除此之外还提供了评论区,供用户之间交流或者直接向项目发布者提问。
缺点分析及改进建议
缺点:项目的源地址链接没有做成链接的形式,用户需要自行复制链接到浏览器打开,比较麻烦。

改进建议:可以为项目源地址提供链接功能,使得用户点击链接就能直接跳转到相应地址打开项目。
InsCode创建项目的方式有两种,一种是从平台提供的模板创建,一种是导入GitHub中的项目。
从平台提供的模板创建

“创建项目”后进入项目信息编辑界面填入相关信息后跳转到项目编辑界面,用户可以在这里编写代码并运行可供选择的模板,为用户搭建了基本的框架,使用起来较为便捷模板不够全面,本来一开始想找java模板,发现没有,还是比较不理解的。不断扩充可供用户选择的模板,去除掉一些用户很少会用到的模板(比如markdown项目),并将实用的模板放到列表前面显示,提升用户体验。速度慢。在排除掉网络影响的前提下,项目创建时间比较长,平均在二十秒左右。如果只是创建一个html的基本页面结构却让用户等十几秒钟,或许会影响用户积极性。提高创建项目的速度,避免影响到用户积极性。导入GitHub中的项目

正确填写GitUrl,然后填写相关信息后完成项目的创建。可移植性高。“项目创建失败,请联系客服”。本学期的作业都要求保存在GitCode上,很多用户也有将自己的代码从GitCode导入InsCode的需求,如果不能直接导入,用户还需要先上传到GitHub后再导入,比较麻烦。(如果这样的话,不如直接使用GitHub,可能会影响用户使用gitcode的积极性)

“发布项目”,即可将编写完成的项目发布到社区。发布的项目需要经过审核,通过审核的项目将会被发布到社区共所有人学习交流。方便快捷。此外,可以确保项目的正确性,用户在线运行成功后再发布到社区,确保了浏览该项目的用户也能正常运行。
| 严重程度(从低到高) | 详细描述 |
|---|---|
| ★ | 建议,不会影响系统功能,只是增强用户体验方面的建议 |
| ★★ | 轻微系统故障,对产品外观和下道工序可能会有轻微影响的缺陷。 |
| ★★★ | 一般系统故障,不影响产品的运转和运行,但对产品的外观和下道工序影响较大的缺陷。 |
| ★★★★ | 严重系统故障,影响系统功能或操作,但不会影响到系统稳定性。 |
| ★★★★★ | 致命系统故障,可能会造成程序瘫痪。 |
+关注”后,在页面不刷新地情况下,关注者数量没有增加。
+关注”触发点击事件后,只是处理了数据库的部分(发送请求将数据库里的关注数+1),忘记了要同时渲染下方关注者的数量。此时,用户需要刷新网页,才能看到实际的关注者数量,用户体验感较差。立即更新,增强用户交互体验更新渲染放到点击事件的监听函数中。具体描述
当点击头像后,头像栏向下弹出,接下来如果点击通知栏,通知栏向下弹出,但被头像栏遮挡住。此时,用户无法正常使用通知栏中的功能,只能重新点击。

可复现性:必然发生
具体分析
没有让其他元件隐藏,导致遮挡住接下来点击的通知栏。BUG预期及改进建议
不会遮挡住通知栏的正常使用。通知栏的点击事件中编写逻辑,使得当通知栏被点击时,头像栏隐藏。具体描述
当用户点击创建项目的"+"号时,主菜单栏向右侧位移;当用户取消创建项目时,主菜单栏向左侧位移。

可复现性:必然发生
具体分析
BUG预期及改进建议
padding,使得滚动条消失/隐藏不会影响到主菜单的正常显示。经过以上的体验以及bug的发掘,我对InsCode的评价是d) 好,不错。接下来从以下几个方面对InsCode进行打分。



“点击运行”后,代码开始执行,执行的结果将打印在下方文本框区域。嵌入到自己代码中的在线工具,便于用户开发自己的程序。
快速切换语言。**缺点1改进建议**:可以让用户`自由选择代码编辑区和输出区域的位置`。如果用户代码量和输出结果偏多,可以选择将代码编辑区和输出区并排放置,方便查看。
**缺点2**:`广告`占据了页面的很大一部分
**缺点2改进建议**:在线运行的页面`去除`掉广告,避免打扰到用户。
缺点3:只能运行单独的java文件,而不能运行java项目,使用范围较小运行整个项目,拓展使用范围。
下拉菜单选择需要查看的分类,可供选择的有JAVA、C/C++、Python、前端开发、移动开发、数据库、C#/.NET、PHP。点击分类即可进入相应的问答板块。可以选择利用右上角的搜索功能搜索网站内容,也可以选择自己感兴趣的内容点击进入问答详情页。分类清晰,用户可以根据自己的需要选择合适的分类浏览。登录复杂,用户使用起来不方便。**缺点1改进建议**:可以使用`微信扫码登录、短信验证码登录`等这一类方便快捷的登陆方式。
**缺点2**:在问题描述等区域放置了`醒目的广告`,影响用户浏览文章。
**缺点2改进建议**:去除掉这部分广告或者不要用黄色突出显示,避免严重影响用户浏览。
| 严重程度(从低到高) | 详细描述 |
|---|---|
| ★ | 建议,不会影响系统功能,只是增强用户体验方面的建议 |
| ★★ | 轻微系统故障,对产品外观和下道工序可能会有轻微影响的缺陷。 |
| ★★★ | 一般系统故障,不影响产品的运转和运行,但对产品的外观和下道工序影响较大的缺陷。 |
| ★★★★ | 严重系统故障,影响系统功能或操作,但不会影响到系统稳定性。 |
| ★★★★★ | 致命系统故障,可能会造成程序瘫痪。 |
具体描述
在选择在线工具时,选中的在线工具类别没有像其他页面一样突出显示。

可复现性:必然发生
具体分析
a标签增添“yellow"类。开发人员或许是在开发过程中忘记了这个步骤。
BUG预期及改进建议
高亮显示,增强交互体验。增加yellow类。菜鸟教程”,点击切换内容时,右上角搜索框会自动填充提示用户搜索相关内容。但是点击后发现搜索不到结果。模糊查询的语句,查询语句过于具体,导致用户只能搜索类似”java"、“c++"、“前端”等一类的关键词。经过以上的体验以及bug的发掘,我对InsCode的评价是b)不推荐。接下来从以下几个方面对IT屋进行打分。
综合来看, IT屋 能够满足用户的基本需求,但是在界面上过于老旧且广告很多 ,影响了用户体验。可能大部分用户都是在搜索引擎搜到相关内容后,才会点击到该网站,很少一部分用户会收藏并持续关注此网站。用户使用起来较为不便,界面、功能和内容都有待提高。

Run"运行代码,下方出现“编译中”的加载圆圈,加载完成之后在下方控制台输出结果。简单,用户能快速上手。没有代码提示功能,用户编写代码的时候容易出错。**缺点1改进建议**:建议`增加代码提示功能`,用户编写代码的时候可以提示单词或结构 ,避免拼写错误。
**缺点2**:有广告的植入 ,但是看看起来会比IT屋的广告舒服许多,没有那么夸张。
**缺点2改进建议**:建议`缩小广告的位置`,将代码编辑区的位置扩大 。

各个语言编写的模板,需要复制下来粘贴到自己的代码编辑器里使用。免去了编写 一些基础语句的麻烦。
**缺点1改进建议**:设置一个按钮可以直接`跳转到代码编辑区`,范例的内容也直接复制过去,用户就可以直接开始编写代码。

查看最近通过的代码,可以看到不同人的成果,从而从中学习。用户还可以复制到自己的代码编辑区里进行编辑。| 严重程度(从低到高) | 详细描述 |
|---|---|
| ★ | 建议,不会影响系统功能,只是增强用户体验方面的建议 |
| ★★ | 轻微系统故障,对产品外观和下道工序可能会有轻微影响的缺陷。 |
| ★★★ | 一般系统故障,不影响产品的运转和运行,但对产品的外观和下道工序影响较大的缺陷。 |
| ★★★★ | 严重系统故障,影响系统功能或操作,但不会影响到系统稳定性。 |
| ★★★★★ | 致命系统故障,可能会造成程序瘫痪。 |
经过测试暂未发现bug
经过以上的体验已经bug的发掘,我对Online Compiler and IDE的评价是c) 一般。接下来从以下几个方面对Online Compiler and IDE进行打分。
综合来看,Online Compiler and IDE是一个为用户提供在线编程的平台。功能比较专一,但是界面简洁大方,能满足用户的基本需求。希望后期能不断完善功能,继续为用户提供良好的服务。
以下是对同学的采访

6人团队,均为计算机相关专业毕业的本科生,分别具备前端、后端、UI基础,通过以往经验以及查找资料能够自主开发项目。
通过对以上三个技术社区的使用和测评,我对技术社区的功能有所了解,他们在功能上
结合团队成员水平,我发现对于这样的网站,在开发商可能会遇到以下几个困难:
困难一:美观并且合理的UI设计(在本科阶段的教学过程中,并没有接触到UI设计相关的知识,所以在UI设计上所花费的学习事件可能会比较长)
困难二:复杂数据库的建立以及大批量数据的处理(以往的数据库实践课程只是建立了类似图书管理系统的简单系统,而如今要开发的系统功能上要复杂许多,缺乏开发经验的开发者要花更多时间在数据库设计与实现上)
困难三:开发完成的测试(网站上线之前的测试是至关重要的,这关系到用户的体验以及网站的影响力,但是目前为止具备的测试能力是不足以完成各功能测试的,因此在测试上大概要花费掉很多时间)
综合以上的困难和对技术平台的了解分析,我认为敏捷开发更适合现在这种条件的小团队。因为团队成员对技术还不是很熟练,所以可以先开发一些基础功能,后期不断更新迭代。开发基础功能的时间预估如下:
|阶段 | 预估时间(天)|
|--|--|
| 学习相关知识(穿插进行) | 30 |
| 原型设计 | 15 |
| 需求分析 | 15 |
| 数据库设计 | 15 |
| 开发 | 90 |
| 测试 | 30 |
| 合计 | 195 |
预估需要6~7个月的时间完成基础功能的开发,后期还需要不断运营维护。
在此基础上,对以上三款产品的开发时间估计如下:
| InsCode | IT屋 | Online Compiler and IDE | |
|---|---|---|---|
| 界面设计的美观程度(20) | 18 | 10 | 18 |
| 用户的交互性 (15) | 13 | 10 | 10 |
| 功能完整程度(20) | 18 | 12 | 10 |
| bug没有影响正常使用(15) | 12 | 13 | 15 |
| 内容质量(15) | 10 | 12 | 10 |
| 整体活跃度(15) | 10 | 8 | 8 |
| 总分 | 81 | 65 | 71 |
综合来看,同类产品中的排名是InsCode > Online Compiler and IDE > IT屋
加强市场调研,分析用户需求。可以在csdn中创建InsCode相关社区,积极收集用户需求,对一些呼声很高的功能加以扩充。积极收集用户反馈。收集用户使用过程中遇到的bug以及问题,并及时加以修改完善。项目相关介绍的功能,使得对该项目感兴趣的用户能快速理解项目的大致内容,有利于学习。优化页面设计,吸引用户使用。可以利用现在比较常用的组件库,优化UI设计,使得布局更加合理。优化代码编辑器的摆放位置,使得用户可以自由调整代码编辑区和输出区域的位置。去除广告,避免过于打扰到用户浏览。增加交互效果,比如用户选中了一个分类,当前标签应该高亮显示。不断完善功能,增加一些代码编辑相关的功能(如代码提示、范例自动导入等)在细节方面加以注意(如为最近通过的代码添加分类功能),增强交互体验。BUG1(项目详情页关注数不增加)分析:开发人员粗心大意,点击事件的处理不够全面,要同时渲染页面数据,而不是等待下一次的刷新。
BUG2(通知下拉框被遮挡)分析:开发人员粗心大意、测试把控不严。开发的时候逻辑设计不够缜密,没有注意到头像下拉框和通知下拉框两者是互斥的关系;在测试的时候测试用例设计的不够全面,从而忽视了这个漏洞。
BUG3(点击/取消“创建项目”主菜单栏位移)分析:具体设计质量不高。代码设计阶段没有考虑到滚动条对页面布局的影响,在后面的测试中可能也找不到很好的办法解决。
开发人员粗心大意、测试把控不严。开发人员在开发测试工具功能的时候忘记像前面的页面一样增加yellow类;测试人员在测试的时候没有注意到这个功能,测试用例不够全面。对用户需求掌握不好。在设计数据库时没有意识到用户可能需要模糊查询,从而影响到了用户体验。暂未发现BUG

IT从业者、未来打算从事IT相关职业的学习者。2023年求职期望从事行业情况,从图中可以看出,希望从事IT行业的求职者数量庞大
不同于IT从业者以及正在学习IT技术的求职者,技术交流平台的潜在用户主要是一些对IT感兴趣的人群,他们的工作领域与IT无关,但是却喜欢关注行业内的最新走向以及最新技术。
以下是高考搜索关键词数量统计图。从图中可以看出,IT专业的搜索比例是很高的,也就是说大部分的高中毕业生选择专业的时候都会考虑IT专业。但是因为录取人数的限制,很多对IT感兴趣的同学并没有办法进入IT相关专业学习,他们或许会通过转专业的方式在大学进入IT专业,又或许会自学技术,毕业后找到一个适合的工作或者通过考取研究生的方式转向IT专业。

除了做评测的三个产品以外,还有一些IT技术平台也不错,包括:CSDN、博客园、51CTO、Product Hunt等等。
知识传播、在线学习、职业发展等全生命周期服务。界面美观、无广告。界面上更能被用户接收,简洁美观;并且网站内部是没有广告的,不会影响到用户正常浏览。“在线编程工具”和“菜鸟教程”内容丰富。当用户想要格式化json或者学习java知识汇总时,IT屋是个不错的选择。操作简单,满足那些仅仅需要运行自己代码来验证结果的用户的需求。模板不够丰富、社区内容大量重复。可能是因为刚开始运营的问题,InsCode的模板不够丰富,一些比较常见且重要的模板还没有添加到其中;其次,社区内容重复较多,并且因为都是学生在测试,内容质量低。界面老旧、广告多。IT屋的界面设计比较简陋而且不够美观,可能会造成用户不想继续浏览;其次,点击测试工具、菜鸟教程、问答都会弹出广告,严重影响体验,大部分用户可能会直接关掉另找网站。功能不够强大、代码编写不够方便。Online Compiler and IDE的功能比较单一,比较适合刚接触语言的人群学习,网站会提供一些模板,使得学习者能快速创建代码。但是代码编辑器不带代码提示功能和错误检测,使得学习者很容易犯错,不利于学习者的学习。IT交流平台,使用InsCode的用户可以在平台上发布或者fork项目来学习技术;使用IT屋的用户可以使用问答库提问、使用在线工具调试代码还可以浏览技术相关教程;使用Online Compiler and IDE的用户可以在线运行自己的代码,还可以看到同行的提交情况。在线运行代码的能力,所以在这个方面,三个产品互为竞品。在这个方面,排序的方式应该是InsCode > IT屋 ≈ Online Compiler and IDE,InsCode的呈现方式会略胜一筹。因为现在许多项目的运行都是有界面的,InsCode就很好的满足了这一需求,在展示效果上要比较好。其次,InsCode具有代码提示功能,这一点是其他两款产品都没做到的,用户编辑起来会非常方便。所以InsCode的效果会比较好。经过市场调研,我发现这个领域正处于风口阶段。随着GPT的发展,越来越多的人开始了解计算机技术,而大部分人了解计算机技术的方式则是浏览技术博客。像csdn这样的交流平台,每天都有关于新技术的交流,计算机开始被越来越多的人重视。
学习者或者从事IT相关职业的从业者。围绕以上两种核心用户展开正在学习IT的学习者
| 刻画指标 | 结果 |
|---|---|
| 学历 | 大三在读 |
| 年龄 | 21 |
| 专业 | 软件工程 |
| 爱好 | 打游戏、看电影 |
| 收入 | 无 |
| 表面需求 | 想要毕业后找到一份合适的计算机相关工作 |
| 潜在需求 | 要学会计算机相关技能 |
从事IT相关职业的从业者
| 刻画指标 | 结果 |
|---|---|
| 学历 | 211本科毕业 |
| 年龄 | 25 |
| 专业 | 计算机科学与技术 |
| 爱好 | 打游戏、旅游 |
| 收入 | 10000+ |
| 表面需求 | 想要年底跳槽到工资更高的公司 |
| 潜在需求 | 需要继续磨练自己的专业技能 |
产品的用户群体之间存在着联系,他们都有提升自己技术能力的需求。从业者因为具有工作经验,可以给予学习者一些专业上的指导和知识的分享;学习者因为对知识掌握的不太牢固,所以犯错是难免的,这些错误又能帮助从业者从中吸取教训,从而更好的磨练技能。
比如CSDN和InsCode,他们两者之间可以形成互补关系。CSDN上的内容是一些技术博客,主要是一些理论知识,而InsCode偏向于代码的分享,学习者可以直接运行项目。可以在CSDN的博客里写下可运行的InsCode项目地址,这样一来学习者可以很好的掌握知识。
以InsCode为例,我的建议是新增一个互动板块,用户可以选择话题在这里讨论研究。
|关键点| 分析 |
|--|--|
| N(need,需求) | 很多用户对一些技术还不是很了解,如果让他们一开始就接触一些实际的项目可能会难以接受。用户或许有先了解该技术的需求,增加互动板块可以满足用户的需求。 |
| A(Approach,方法) | 建立互动板块,并创建分类,用户可以在这里畅所欲言。每个分类里 还可以收集一些学习资料,方便用户查阅。|
| B(Benefit,好处) | 这样一来 ,用户是在了解该技术的情况下查看项目文件的,不会出现因为不了解 而造成的一头雾水。懂技术的人肯定是有的,但是如果没有相关入门资料的话对一些新手来说就不太友好。所以如果有这样一个板块能够接纳新人,让新学习的用户能快速入门,那么网站的浏览量应该会有所增加。 |
| C(Competition,竞争) | 主要的竞争应该是其他的IT社区平台中的交流功能,他们的交流内容有可能也是使用InsCode用户关系的。
| D(Delivery,推广) | 可以通过CSDN进行推广,利用公告或者弹窗的形式提示用户新开发的InsCode网站以及相关功能。 |
我认为比较合理的配置是1人美工,2人前端,2人后端,1人测试
| 周数 | 计划 |
|---|---|
| 1 | 项目启动 |
| 2 | 原型设计 |
| 3 | 原型设计 |
| 4 | 原型最后审查、需求分析 |
| 5 | 需求分析 |
| 6 | 数据库设计 |
| 7 | 数据库设计 |
| 8 | 召开小组会议,分配前后端任务 |
| 9 | 前后端开发 |
| 10 | 前后端开发 |
| 11 | 前后端开发 |
| 12 | 前后端开发,基本功能完成 |
| 13 | 阶段测试,发现程序漏洞 |
| 14 | 修改漏洞 |
| 15 | 发布前的内测 |
| 16 | 正式发布 |