这个作业属于哪个课程 | 2022年福大-软件工程、实践-W班 |
---|---|
这个作业要求在哪里 | 软件工程实践——软件评测 |
这个作业的目标 | 通过分析其他软件的优劣之处来学习软件工程 |
其他参考文献 | 无 |
文章目录
Bug严重性量化标准
等级 | 后果 |
---|---|
★ | 轻微错误,易用性及建议性问题 |
★★ | 一般错误,界面、性能缺陷 |
★★★ | 严重错误,影响系统功能或操作,主要功能存在严重缺陷,但不会影响到系统稳定性 |
★★★★ | 紧急错误,系统容易崩溃;功能设计与需求严重不符;内存泄漏;系统无法登陆;循环报错,无法正常退出 |
第一部分 调研,评测
用户调研
- 采访对象背景:福州大学19级软件工程龚某某,他是一个热衷于技术和框架的计算机相关专业学生,有着丰富的开发经验,他很有可能使用过代码托管平台,并用于学习和项目中。
GitCode(原CODE.CHINA)
基本介绍
- GitCode 是 CSDN 为开发者提供的基于gitlab的开源项目创新服务平台,具备比较完善的权限管理、组织管理、分支管理、强大的 Merge Request 以及精巧实用的 WebIDE 功能;支持CI、CD;同时充分考虑中国用户的使用习惯,为广大开发者提供开源软件开发、运营、学习全方位服务。
体验
软件的基本使用
首页
- 体验描述:首页是一个比较传统的支持响应式的两列式布局,左列是页面的主体部分,主要是一些跟开源项目有关的事件和新秀项目等文档型的数据,在移动端则把所有内容作为列表项呈瀑布型展示。右列是一些热门tag和引流到csdn的和开源项目有关的文章。
登录
- 体验描述:登录注册是目前比较常见的手机验证码和密码登录,还提供了第三方账号登录的方式,以及使用微信扫码登录。
浏览代码仓库
- 这里选了gitcode高星开源项目mall-swarm
界面和各大代码托管网站的效果相似,主体部分为代码内容,侧边栏是项目简介等项目相关信息,代码下方是readme文件内容,是用户最快理解本项目概述的途径。布局依然支持响应式,侧边栏挺好看的。
可以查看代码的提交记录。
以及有关该项目的issue,不过该项目目前还没有人提出issue,国内各大代码托管平台都有这个问题,高星项目的issue量比较少,提供给作者的反馈信息很有限。
提供了代码分析的功能,可以可视化浏览一些有关提交的信息。
项目成员信息。
个人代码仓库
- 界面布局和浏览他人的仓库相比没有太大差异,但是添加了一些仓库配置接口。
也可以进行项目设置,可以进行一些成员添加,权限管理等操作。
WebIDE功能
- gitcode提供了在线编辑文件的功能,而且可以以类似IDE的形式进行编辑,而且支持审阅的功能。可以很清楚的看到各文件变化的地方。
代码片段功能
- gitcode还提供了代码片段的功能,是一种可分享的小项目,可用于分享开发经验、展示组件和 API 的使用、复现开发问题等等。
可以像这样写一段简单的代码给别人看,是一个很利于开发人员探讨的小功能。
优缺点分析
优点:
- 页面布局的响应式做的很不错,比较美观又不缺实用性。
- 国内访问的速度比较快。
- 提供了WebIDE在线编辑器,而且支持审阅功能。
- 提供了代码片段的编写功能。
缺点:
- 使用的人比较少,很多高星开源项目的issue都没有人在讨论,给创作者的反馈就很少,不利于项目的迭代和进步。
- 代码仓库的可视化数据方面做得不够好,仅仅只有提交次数,没有仓库的流量信息和克隆或下载次数信息等,创作者的更新欲望只来自于star数,加上很少人在issue进行讨论,对于创作者的创作热情很有影响。
对产品的改进意见
- 仓库的可视化数据部分可以添加一些跟流量有关的,可以让创作者清楚的看出自己项目是否受人欢迎。
- 作为开源代码平台的创新功能之一:WebIDE,其实可以多下一些功夫,例如加入代码的自动联想、查找功能可以加入正则表达式匹配、加入全局替换功能、文件树查找等,另外IDE可以使用的快捷键也应该放在显眼的地方给用户提示。
- 代码片段的功能也需要改进,可以参考市面上常见的短代码分享工具,加入失效时间和访问密码等,分享功能也应该具体化,目前的代码共享我只能手动分享链接来实现,应该给用户提示。
BUG
- 在个人资料页面不能够正常退出登录,会自动重新登录。
- 测试环境:win10、Chrome 99.4
- 可复现性:必然发生
- 复现步骤:登录csdn账号,登录gitcode账号,跳转到gitcode的个人资料页面,点击下拉栏的退出登录按钮。
- 具体情况描述:在登录完csdn账号且未退出csdn账号的情况下,在gitcode的个人资料页面下不能退出登录,会自动重新登录,而在其他页面点击退出登录后,虽然不会自动重新登录,但登录状态还在,点击右上角的登录后不需要输入账号密码即可登录,当用户仅仅只想退出gitcode的登录状态时不会如愿以偿地注销。如果用户不知道这个问题,仅仅退出了gitcode,计算机的其他用户如果利用这个bug,可以随时盗取仓库里的所有代码。
- Bug分析:
- 可能成因:gitcode在设计时与csdn的账号耦合度过高,可能是使用到了csdn的cookie信息保存用户状态,或者是服务器的会话没有被关闭,又或者是登录的token没有被删除,导致用户在csdn的登录状态保持到了gitcode上,gitcode无法以正常注销的逻辑退出登录。如果在多用户的计算机登录gitcode账号,则对用户的仓库安全有很大的危害。
- 严重性:★★★
- 建议:单独编写gitcode用户的登录状态逻辑,不要复用csdn的用户状态信息。因为不知道具体的后台业务逻辑,不能给出具体的设计方案。
结论
评价:一般
类别 | 描述 | 评分(满分10分,良好6分, 及格4分,聊胜于无1分, 很差-3分) |
---|---|---|
核心功能 | 分析三个核心功能,功能设计和质量。 | 7 |
细节 | 有什么为用户考虑的细节? | 8 |
用户体验 | 当用户完成功能时,不干扰用户 (例如: 是否不断弹出不相关广告)。 | 6 |
辅助功能 | 一些辅助功能如皮肤等 | 7 |
差异化功能 | 这个软件独特的功能. 它对用户的吸引力有多大? | 7 |
软件的效能 | 占用内存, 启动速度, 内存泄漏情况 | 7 |
软件的适应性 | 在联网/断网, 大小屏幕, 没有鼠标的情况下都可以顺畅操作. 和不同平台的软件能流畅协作 | 7 |
成长性 | 记住用户的选择, 适应用户的特点,用户越用越方便 | 5 |
用户有控制权 | 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 | 7 |
内容丰富度 | 问答内容是否全面,能否解决用户的需求问题 | 5 |
- gitcode是国内前列的代码托管平台,可以支持国内大多数的开源项目的托管,而且有着美观的界面,还能和csdn起到相辅相成的作用,同时还有几个独有的小模块能够协助程序员进行开发。总而言之是一个很不错的面向国内的代码托管平台。
GitHub
基本介绍
- GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。
体验
软件的基本使用
首页
- github的首页很直接就是让你注册一个账号。
- 往下滑可以看到github团队以git分支线的形式介绍其平台的功能和优势。不得不说作为全世界最大的程序员交友平台,github主页的页面效果做的真的很棒,简洁美观的同时又充满着动态交互效果,从主页的表现中就可以感觉到代码的魅力,吸引人继续浏览下去。
登录
- github的登录也是秉持着简洁的特点,仅仅使用邮箱和密码进行登录,和目前流行的三方登录不同,github没有和谷歌等账号进行绑定登录,是一个很纯粹的平台。
浏览代码仓库
- 可以看到github浏览高星项目默认是基于推荐算法选取出用户可能会感兴趣的项目。但是我们为了保持单一变量,我们仍然选择一个高星的java后台框架项目mall-swarm进行浏览。
- 可以看到github的仓库页面和gitcode的十分相似,主体部分是代码,右边的侧栏部分是项目的简介的tag以及release信息和使用到的语言等,比较简单。
- readme文件的目录和gitcode相似,也是在左上角以下拉式呈现。
- github的分支切换也比较简单。
- 查看项目的issue条目,github是以列表形式进行分页展示。
- 查看某一具体issue,可以看到owner解决issue的方式也是通过评论和设置issue状态来回应用户的issue。
- 查看仓库的分析图表,可以看到github提供了很多的图表供用户进行查看,用户可以清楚的看出owner对该仓库的重视程度以及项目的迭代次数和维护次数。
个人代码仓库
- 可以看到个人仓库也是多了仓库设置的按钮
- github的设置项明显更丰富,提供给owner可选的操作也更多。
- github没有提供webIDE,只有编辑的功能,但是支持正则表达式的全文搜索功能。
优缺点分析
优点:
- 开源项目数目庞大,程序员可以找到几乎所有自己想要参考的代码。
- 功能最为丰富,而且有很多的第三方插件支持CI/CD,辅助程序员开发。
- 仓库的数据分析图种类也很丰富,用户可以清楚的了解仓库的活跃程度。
- 界面很简洁,用户可以快速入门平台的使用。
缺点:
- 国内访问很不方便。
- 私有仓库需要交钱,而且不便宜。
对产品的改进意见
- 如果能对国内有多一些支持就更好了
BUG
无
结论
评价:非常推荐
类别 | 描述 | 评分(满分10分,良好6分, 及格4分,聊胜于无1分, 很差-3分) |
---|---|---|
核心功能 | 分析三个核心功能,功能设计和质量。 | 10 |
细节 | 有什么为用户考虑的细节? | 8 |
用户体验 | 当用户完成功能时,不干扰用户 (例如: 是否不断弹出不相关广告)。 | 10 |
辅助功能 | 一些辅助功能如皮肤等 | 7 |
差异化功能 | 这个软件独特的功能. 它对用户的吸引力有多大? | 10 |
软件的效能 | 占用内存, 启动速度, 内存泄漏情况 | 7 |
软件的适应性 | 在联网/断网, 大小屏幕, 没有鼠标的情况下都可以顺畅操作. 和不同平台的软件能流畅协作 | 7 |
成长性 | 记住用户的选择, 适应用户的特点,用户越用越方便 | 9 |
用户有控制权 | 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 | 9 |
内容丰富度 | 问答内容是否全面,能否解决用户的需求问题 | 10 |
- github作为代码托管平台的始祖级角色,有着丰富的功能和难以撼动的地位,有着最活跃的社区,可以看到许多的世界名企提供的开源代码,给程序员带来了很大的帮助。
Gitee
基本介绍
- Gitee 是由开源中国(OSChina)推出的基于Git的代码托管服务。旨在帮助开发者/团队/企业更好的管理代码,让软件研发更高效。
体验
软件的基本使用
首页
- 体验描述:未登录时的首页是介绍gitee的概览,包括介绍gitee的优点以及列出了使用gitee的各大企业,可以看出首页的目的是为了吸引用户使用这个代码托管平台,而且UI也比较美观,有许多动态的交互效果,给人带来一种新鲜感,有想要浏览下去的欲望。
- 同时在移动端也支持响应式,首页很美观,给人的感觉很清爽。
登录
- 登录页面和gitcode的有点相似,同时也是支持手机密码/验证码登录,支持部分第三方登录。
浏览代码仓库
- 浏览仓库的首页相比gitcode的纯列表式也显得比较美观,支持的分类比较人性化。
- 这里选择了热门项目ruoyi-vue-pro。
- 大体结构和其他的代码托管平台差不多,但是右边的侧栏还有一个gitee指数的雷达图,可以给用户展示项目的活跃情况。
- 下方是readme文件
- 接下来查看issue栏。
对比gitcode,同样是高星的后台框架项目,issue数目就有了很大的差距,说明gitee的用户量相比gitcode还是多了不少的。
- 查看某个具体issue详情
可以看到创作者对某个issue具体的处理流程,也可以加深自己对项目的了解。
- 查看项目的统计图
可以看到游客并不能看到具体的访问次数或者提交图表,只能看到提交记录,可能是考虑到非项目参与者对于提交次数的数据分析图没有太大意义所以没有加入。
个人代码仓库
- 个人代码仓库的页面和浏览第三方的差异不大,这里主要查看统计和管理界面。
可以看到仓库拥有者是可以看到下载量、访问数据和线形分析图的,owner可以清楚的看出自己项目受欢迎的程度。 - 仓库的管理界面
可以发现gitee还是支持转移仓库的。
很符合现实情况,代码仓库有可能被转移至企业内部。
同时gitee还支持代码审查管理可以感觉出来gitee是站在企业和现实开发的角度很全面的思考代码托管平台应该提供的各种功能了。
WebIDE
- 发现gitee也是支持WebIDE功能的
界面和谷歌的colab有点相似,而且支持全局查找和全局替换,这点比gitcode做的要好。
并且支持根据文件类型变换字体颜色,这点也比gitcode的WebIDE做的更人性化。
同样也支持代码审查。
优缺点分析
优点:
- 国内使用的人数比较多,社区和高星项目的讨论区比较活跃,问的问题容易得到解答。
- 热门仓库的分类更完善,开发者更容易找到想查看的开源项目。
- 私有库是完全免费的。
- 提供了WebIDE在线编辑器,而且功能比较完善,而且更人性化。
- 仓库更符合实际的需求,有仓库转移、镜像、审阅等功能。
- 仓库的分析数据更合理,提供了浏览量,下载量等信息供owner查看。
- 国内的访问速度更快。
缺点:
- 主要使用用户还是国内,对于国外的热门的开源项目镜像还是比较少。
对产品的改进意见
- 希望官方可以提供多一些国外热门开源项目的镜像仓库,而且最好是有人维护的。
- 第三方服务devops可以再多一些,有助于开发者进行CI/CD。
BUG
未发现
结论
评价:好,不错
类别 | 描述 | 评分(满分10分,良好6分, 及格4分,聊胜于无1分, 很差-3分) |
---|---|---|
核心功能 | 分析三个核心功能,功能设计和质量。 | 9 |
细节 | 有什么为用户考虑的细节? | 8 |
用户体验 | 当用户完成功能时,不干扰用户 (例如: 是否不断弹出不相关广告)。 | 7 |
辅助功能 | 一些辅助功能如皮肤等 | 7 |
差异化功能 | 这个软件独特的功能. 它对用户的吸引力有多大? | 8 |
软件的效能 | 占用内存, 启动速度, 内存泄漏情况 | 7 |
软件的适应性 | 在联网/断网, 大小屏幕, 没有鼠标的情况下都可以顺畅操作. 和不同平台的软件能流畅协作 | 7 |
成长性 | 记住用户的选择, 适应用户的特点,用户越用越方便 | 8 |
用户有控制权 | 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 | 8 |
内容丰富度 | 问答内容是否全面,能否解决用户的需求问题 | 9 |
- gitee作为个人使用几乎全免费的代码托管平台,真的是非常良心了,国内的访问速度快,使用人数也比较多,提供的功能也比较全面,甚至还有企业专用版和学校使用版提升服务等级,比起github虽然稍有不足,但github有的基本上gitee也都有了,而相较于gitcode,gitee还是更加成熟一点,在国内使用gitee是基本没有什么问题的。
第二部分 分析
开发时间估计
假设团队内有高级架构师以及技术专家,并且技术能力支持整体架构和各业务模块的设计。
分为三个阶段进行开发:设计阶段 30%、开发阶段 60%、测试阶段10%
- gitcode 9个月
- github 14个月
- gitee 10个月
同类产品对比排名
- 分析:
- gitcode是非常优秀的代码托管平台,背靠着csdn做引流,而且有着很大的发展潜力,国内排在第二位没有问题。
- github几乎没有缺陷,甚至于其他的竞品都是以他为标杆进行模仿和创新,只能说他第一的位置真的很难被撼动。
- gitee作为国内兴起的托管平台新秀,以极其迅猛的速度占领了国内的市场,在国内除了他能称第一的恐怕再也没有谁了。
- 排名:
排名项目 | 软件排名 |
---|---|
国内市场占有率 | github > gitee > gitcode |
国内访问速度 | gitee ≈ gitcode > github |
优秀资源丰富程度 | github > gitee > gitcode |
综合排名 | github > gitee > gitcode |
软件工程方面的建议
- gitcode:
希望可以进行更多的推广,抢占国内的市场,同时也要注重产品的迭代更新,加入更多可视化分析的数据和第三方服务等功能。 - github:
希望可以加强对国内访问的支持,提高国内的访问速度。 - gitee:
要加入更多核心功能和创新点,不要一味的模仿github和过度商业化
BUG存在的原因分析
- 针对gitcode无法正常退出的Bug分析:
可能是因为gitcode使用到了csdn的cookie信息保存用户状态,或者是服务器的会话没有被关闭,又或者是登录的token没有被删除,导致用户在csdn的登录状态保持到了gitcode上,gitcode无法以正常注销的逻辑退出登录。
第三部分 建议和规划
市场概况
- 2021年,GitHub发布年度代码报告,目前在 GitHub 上的全球开发者用户共有 7300 万+,其中来自中国的开发者用户已达 755 万,位居全球第二,而国内的IT从业者必备网站CSDN,注册用户超过了3000万。国内开源实现跨越式发展,国家政策的引导、基础软件的崛起、企业的大力投入等等。毫无疑问,代码托管平台的用户量是非常庞大的,而且程序员对其的依赖性很高,具有很强的平台粘性。
- 同时考虑到国内的潜在用户主要是计算机专业的学生,按照计算机专业目前在国内的就业情况分析,全国计算机应用专业人才的需求每年将增加100万人左右,他们也很可能会依赖于代码托管平台,因此这个市场的潜力也是很大的。
市场现状
- 目前市场中主流的代码托管平台有以下几个:
- Github:github的市场占有率自然不用多说,作为全世界最大的同性交友网站,github独具顶峰,几乎不可一世,但是在国内的访问速度和成功率很低,这也给了国内其他厂商发展壮大的机会。
- Gitlab:国内一般情况下不能访问,所以一般用于二次开发,自建本地仓库。
- Gitee:国内市场的领军人物,占据国内大部分市场,但也有许多新起之秀与之竞争。
- Codeup:新起之秀,阿里云开发的团队代码托管平台,有着完整的代码审核流程和开发流程,和传统的仿github式的代码托管平台有所不同,而且界面很美观,对市场有一定的冲击力。
- Gitcode:背靠csdn的代码托管平台,所有来自csdn的程序员都可能是他的潜在用户,市场潜力不小。
市场与产品生态
- 用户群体分析:
平台 | 核心用户 | 专业 | 年龄 | 收入 | 表面需求 | 潜在需求 |
---|---|---|---|---|---|---|
gitee | 国内计算机相关专业或领域的学生和工作者 | 计算机相关 | 20~50 | 1w~10w | 代码托管、协同工作、访问速度快 | 合作、交流 |
github | 全球计算机相关专业或领域的学生和工作者 | 计算机相关 | 20~50 | 1w~20w | 代码托管、协同工作 | 合作、交流 |
gitcode | 国内使用csdn程序员用户 | 计算机相关 | 20~50 | 1w~10w | 代码托管、协同工作、访问速度快 | 合作、交流、配合博客的代码 |
gitlab | 想要自建本地仓库的企业或学校 | 计算机相关 | 20~50 | 1w~10w | 代码托管、协同工作、安全性高 | 安全 |
codeup | 阿里云相关产品忠实爱好者、国内用户 | 计算机相关 | 20~50 | 1w~10w | 代码托管、协同工作、企业级工作流程管理 | 合作 |
- 竞品间用户的上手能力比较容易,用户粘性主要依赖于平台提供的高质量资源数目和社区活跃人数。
产品规划
- 我希望可以在gitee中加上敏感信息文件和依赖包漏洞信息检测的功能。
因为在实际开发中程序员可能会忽略敏感信息文件的提交,比如配置文件的密码泄露、私钥泄露等造成不必要的损失,如果自写检测逻辑和维护会很麻烦,希望平台可以为用户提供检测敏感信息文件的功能。
还有依赖包漏洞信息的检测,因为小团队很难分出漏洞库的管理人员进行依赖库的漏洞管理,如果平台能够提供就就可以减少维护人员很大的工作量,及时修复项目中依赖库的漏洞或者是升级依赖。 - NABCD分析:
表示 | 名称 | 分析 |
---|---|---|
N | Need, 需求 | 开发人员去注意敏感文件是否泄漏和依赖库漏洞信息的维护是很花时间的,所以希望平台能够提供这些功能 |
A | Approach, 做法 | 每个仓库都要加上是否开启自动检测敏感文件和依赖库漏洞信息查找的功能 |
B | Benefit, 好处 | 减少开发人员的维护成本和工作量 |
C | Competitors, 竞争 | 主流的代码托管平台还没有这些功能,但是阿里云的codeup已经提供了,但是codeup面向的是小团队,而作为大型代码托管平台是可以借鉴的 |
D | Delivery, 推广 | 可以做一些广告推广 |
- 角色分配
角色 | 人数 |
---|---|
前端 | 2 |
后端 | 3 |
测试 | 1 |
- 详细规划
周数 | 任务 |
---|---|
1 | 需求分析、市场调研 |
2~3 | 原型设计、后端架构设计、后端接口设计 |
4 | 后端架构复审、后端接口复审、前端架构设计 |
5~13 | 前、后端完成基本功能 |
14~15 | 前后端对接、黑、白盒测试、压力测试、debug |
16 | 产品发布 |