软件评测--开源代码托管平台


作业基本信息

这个作业属于哪个课程 2021春软件工程实践|W班(福州大学)
这个作业要求在哪里 作业要求
这个作业的目标 通过对各种案例分析,评测,思辨,总结,看到软件工程的原则在实践中的种种体现,学好软件工程,帮助自己在实践中做得更好。
其他参考文献 《构建之法》第三版,《软件工程》
  • 作为一名程序猿,一定要有良好的灾备意识。代码托管服务(Code Hosting Service)就为我们提供了有效的备份。代码托管服务通常是企业或者组织基于版本控制工具提供的一种研发流程管理工具。它的可协同性,可集成性都为开源开发者们提供了巨大的便利。本篇博客将对三个代码托管平台进行评测分析比较,以及一些建议规划。

第一部分 调研、评测

采访

采访了一位同级的计算机同学李某,他平时应该需要代码托管管理,也有软件工程这门课,需要使用相应产品
image
image

评测环境:

Windows 10家庭中文版 浏览器:Firefox 88.0(32位)

Bug量化指标

星级 评判标准
建议性问题。错别字,文字排版整齐性,界面不规范,不影响操作
⭐⭐ 轻微。界面交互缺陷,大数据操作没有限制,边界条件错误
⭐⭐⭐ 一般。操作无反应,次要功能不完善,但是不影响系统稳定性
⭐⭐⭐⭐ 严重。系统的主要功能未实现,用户不能使用一级功能菜单,刷新错误。相关的调用无法启动。
⭐⭐⭐⭐⭐ 崩溃。系统死机死循环,不能正常推出,登陆问题,数据丢失,服务器连接错误

评分表

类别 描述 评分
CODE.CHINA GitHub Gitee
功能 核心功能 分析三个核心功能,功能设计和质量。 8 10 9
细节 有什么为用户考虑的细节? 8 9 9
用户体验 当用户完成功能时,不干扰用户 (例如: 是否不断弹出不相关广告)。 9 10 9
辅助功能 一些辅助功能如皮肤等 10 10 9
差异化功能 这个软件独特的功能. 它对用户的吸引力有多大? 9 10 9
软件的效能 占用内存, 启动速度, 内存泄漏情况 10 10 10
体验 软件的适应性 在联网/断网, 大小屏幕, 没有鼠标的情况下都可以顺畅操作. 和不同平台的软件能流畅协作 10 9 10
成长性 记住用户的选择, 适应用户的特点,用户越用越方便 9 10 9
用户有控制权 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 9 10 10
bug 包括界面缺陷和网络连接 从含量与含金量分析 6 8 9
总分 88 96 93
参照(http://www.cnblogs.com/xinz/p/3308608.html)

CODE.CHINA

2020 年 9 月 10 日,中国专业 IT 开发者社区 CSDN 正式推出全新升级的开源平台 CODE.CHINA(codechina.csdn.net)。面向国际化市场,具备使用 GitLab 最新高可靠部署方案、独立第三方平台等特点,拥有海量用户基础和品牌加持。

体验

  1. 基本功能介绍和使用
  • 注册登录
    进入官网进行注册登录,无注册键。点击登录跳转到CSDN页面,可选多种登录方式。若选择手机免密登录需要手机接受验证码,这里我选择了最快速的QQ登录,登录后再绑定常用邮箱即注册成功。
    image
    image
    如果选择推荐的微信扫码关注公众号登录的方式较为繁琐。需要关注官方公众号。

  • 开源项目浏览
    点击项目栏进入浏览,选取了热门项目Krenel Liteos A.
    image这是代码管理的主要信息。往下翻就是正常的自述文件。
    image这是一些开发者们对本项目提出的问题(均处于开放中状态,暂时没有已关闭问题),浏览人员可以以新建Issue或者将已有的Issue添加到待办事项(在右上角进入),或者在Issue下和其他人互动。合并请求就是对本项目的提出的更改并与他人进行讨论(此项目暂无),wiki则是本项目的维基百科界面(此项目暂无)。
    仓库分析可以分析本仓库所使用的编程语言百分比以及仓库的提交统计(一个月内每天,一周内每天,一天内每小时),均用柱状图展示.
    image
    最后是本仓库的成员和Pages(在CODE CHINA上为静态网站提供网页服务)。imageimage
    右侧边栏则是对项目的简介,发行的版本,贡献者展示和所用编程语言概览
    image

  • 核心功能体验
    在右上角可以查看本项目最近查看人、star数量,fork到自己的仓库。image
    如果是自己创建项目则选择右上角的加号。输入项目名称,生成项目仓库,可以选择添加文件信息等。
    image
    自己仓库内的项目就拥有的更高的操作权限。首先是Issue,可以将已完成的Issue关闭,可以指派人,添加里程碑,编辑截止日期,进行标记,修改私密性,选择是否锁定Issue等。
    image
    可以对合并请求进行处理(在本地进行),一般合并到master分支。
    image
    还有就是项目设置,可以设置项目的基础配置信息,管理项目成员,使用webhooks以及项目访问令牌(用于使用gitlab Api)
    image
    最后是个人资料管理和设置之类的,可以根据自己的偏好对网站进行设置,非常人性化
    image

  1. 优缺点分析
    优点:
  • 界面很有年轻感,但又不会特别花哨,有足够的吸引力。
  • 使用快捷键让管理过程更加便利(如果熟练以后简直是飞速)image
  • 弹出的菜单(包括其他页面的相同控件)会跟随网页的滚动而调整位置。
  • 基于全球顶级代码托管平台 GitLab 的最新版本搭建而成,完全继承了 GitLab 炉火纯青的 Git 仓库管理的功能,完善的权限管理、组织管理、分支管理、强大的 Merge Request 以及精巧实用的 WebIDE 功能
  • CODE.CHINA 还采用了 GitLab 最新版本高可靠的部署方案,即前端部署 Web 服务、GitLab-Shell、Gitaly 仓库存储服务分离,保证系统弹性扩展,高可用、仓库数据安全。
    缺点:
  • 中文化程度不够,很多地方中文英文参杂在一起,比如仓库选项栏就有三个英文五个中文image发起合并请求错误时image,很影响用户体验。
  • 首页下拉菜单按钮不规范。image项目和组织的下拉菜单都是鼠标点击出现的,鼠标悬停时只会变色,点击子栏目能跳转相应页面,而开源广场一项,悬停时直接弹出下拉菜单,点击则有页面跳转(到欢迎页面)。
  1. 改进意见
  • 去除许多不必要的中文化,最好整个模块有统一的语言,或者完全中文化
  • 统一形式,把欢迎页面做成一个子项嵌到开源广场的下拉菜单中。下拉菜单也悬停变色,点击弹出的形式。

bug

bug1 注册登录

  • Bug发生时的测试环境:Windows 10家庭中文版 浏览器:Firefox 88.0(32位)

  • Bug的可复现性和复现步骤:可稳定复现,进入注册界面界面,选择微博/百度/Hbuilder/Github/领英注册登录中的一种。进行相关操作后最终限制不支持注册.
    image
    image

  • Bug分析:
    可能的成因:公司还未接入相应的第三方服务,但是又先把饼画好。
    Bug的严重性:⭐⭐
    系统功能:登录功能不能正常使用
    安全性:无影响
    用户体验:体验极差,其他登录方式的限制导致登录方式匮乏,且其中一种需要关注公众号。
    对于Bug的预期及改进建议

速速接入各方登录服务,尤其是GitHub。且在未完成此项工作前不要把别的登录注册入口放到界面上。以求用户在登录时有良好的体验

bug2 关于通知和关注者

  • Bug发生时的测试环境:Windows 10家庭中文版 浏览器:Firefox 88.0(32位)

  • Bug的可复现性和复现步骤:可稳定复现,进入主界面,选择一个仓库,在右上角找到通知设置按钮。点击图标是设置通知,但是点击数字却是进入浏览最近关注者,含义模糊,数字会让人误以为这是通知的数目。这与其他平台完全不同。imageimage

  • Bug分析:
    可能的成因:开发人员对两者并没有做区别。
    Bug的严重性:⭐
    系统功能:无影响。
    安全性:无影响。
    用户体验:界面交互缺陷会让用户一头雾水。
    对于Bug的预期及改进建议

设置两个按钮用以区分关注者和通知。让用户能准确达到自己的目的。

bug3 项目可见性问题。

  • Bug发生时的测试环境:Windows 10家庭中文版 浏览器:Firefox 88.0(32位)
  • Bug的可复现性和复现步骤:可稳定复现,进入主界面,点击导航栏里的项目,选择浏览项目,右边的筛选按钮是“可见...”,用开发者工具才知道那个是“可见性:”,怎么调(包括更换浏览器)都无法使其完全出现。在全部和最多Star里点击私有/公开,出现自己的相应项目,在热门里点击却空空的,对热门的定义没有一个评判标准,0星,仓库只有一个目录或者只有一个介绍的项目成为热门项目的原因让人不得而知imageimage
  • Bug分析:
    可能的成因:开发人员对按钮的显示情况未作检查,分类逻辑有问题。
    Bug的严重性:⭐⭐
    系统功能:与软件交互得不到预期的结果。
    安全性:无影响。
    用户体验:体验很差。
    对于Bug的预期及改进建议

对于按钮,修改按钮大小或字体大小使其完全显示。对于分类,应该详细说明排序标准,且不能把自己的项目取消显示

结论

CODE.CHINA是一款新产品,它的出发点极好,但现在还处于冉冉上升阶段,潜力极大,我们要给它时间。一般。

GitHub

gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。gitHub于2008年4月10日正式上线,除了git代码仓库托管及基本的 Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby on Rails、jQuery、python 等。

体验

  1. 基本功能介绍和使用
  • 注册登录
    进入官网,首页充满了科技感
    image
    往下拉还简单介绍了一下它自己,比如给你的代码一个云端的家证明你不渣,下面的动态展示过程也向我们展示了它是一个很“高大上”的网站image
    用邮箱注册账户后就可以进入使用,以后就可以直接进入此页面无需再次登录。

  • 开源项目浏览
    选择一个热门项目进行浏览(googletest)
    image
    code:同CODE.CHINA,代码管理页
    issue:在GitHub上,可以将它作为软件开发者之间的交流工具。可以用于:
    发现软件的BUG并报告
    有事想向作者询问、探讨
    事先列出今后准备实施的任务
    pull&request:同CODE.CHINA,合并请求。
    Discussions:开发者有专门的交流地方,使用线程格式来启动,开发者可以很快地响应和组织非结构化对话。并可将问题标记为已回答,如此一来,将丰富社区的知识库,还可用来维护常见问题解答和协作其他文档。image
    Actions: Github持续集成,比如抓取代码、运行测试、登录远程服务器,发布到第三方服务等等。很多操作在不同项目里面是类似的,完全可以共享,开发者把每个操作写成独立的脚本文件,存放到代码仓库,使得其他开发者可以引用。
    如果你需要某个 action,不必自己写复杂的脚本,直接引用他人写好的 action 即可,整个持续集成过程,就变成了一个 actions 的组合.
    Security:项目的安全措施。
    Insight:同CODE.CHINA,对仓库的分析。

  • 核心功能体验
    创建仓库,填写仓库的名字和描述image
    创建好了之后,点击“main”,创建分支——在文本框中输入分支名称和描述,然后点击确认image
    点击创建一个新文件image
    输入想要提交的代码以及下方的文件名和描述后,点击最下方的Commit new file即可。image
    修改&保存修改在github上,提交&保存修改的操作是commits。每一次的commit都会被记录,可以被其他用户查看。image点击铅笔图案即可修改,修改后点击Commit changes即可。
    提交Pull requestimage点击New pull request,选择你所做的分支,编辑你想修改的内容,经过与原来内容的对比,确认后提交请求。然后@特定的人或者团队,请求他们review,并反馈给你(还可以请求把你的代码加入他们的分支)。
    合并修改历史image点击绿色按钮,将自述编辑合并到main。image>
    合并成功后可以删除该分支。

  1. 优缺点分析
    优点:
  • 页面简洁易上手
  • GitHub拥有巨大且日趋完备的开发生态,基于此,我们可以接触到最热门的、最独特的、最新的技术,这是软件开发人员都梦寐以求的。
  • 没有广告,GitHub 通过私有版本库托管、面向企业的版本库托管和项目管理平台、人员招聘等付费服务获得了商业上的成功,这种运营方式让GitHub 不需要接广告赖以生存。
    缺点
  • 国内访问速度太慢,经常出现connect time-out
  • 私有仓库超过三个协同操作者需要收费。
  1. 改进意见
  • 网络问题一直被大家所诟病,如果能改进GitHub在国内的发展必将突飞猛进。解决办法:修改host,挂vpn,刷新碰运气,三种办法使用,一般成功一次仅支持进行一回合的操作,所以叫做一张门票理论,一次操作消耗一张门票,下次还想操作?对不起,门票。
  • 付费其实并不是它的缺点,而是我的问题。

bug

bug1 关于状态设置

  • Bug发生时的测试环境:Windows 10家庭中文版 浏览器:Firefox 88.0(32位)

  • Bug的可复现性和复现步骤:可稳定复现,进入主界面,点击头像,set status时,下面有四个备选状态,自带图标的image选择一个之后添加文字,之后再像修改图标,无法操作,需要把输入完全删除才能再次选择。image

  • Bug分析:
    可能的成因:开发人员粗心大意
    Bug的严重性:⭐
    系统功能:无影响。
    安全性:无影响。
    用户体验:对爱设置状态的用户不友好。
    对于Bug的预期及改进建议

在图标设置下拉菜单可以选择相应图标。

结论

作为世界上最大的开源网站,Github已经成为了管理软件开发以及发现已有代码的首选方法题。抛去网络问题,一旦你掌握了 GitHub 这个强大的工具,你的 IT 技术水平或者职业发展就进入了快车道。总结,约等于神,但网络是它飞升的最后一块拼图。非常推荐

Gitee

码云 Gitee (最新独立域名)是由开源中国出品,旨在树立国内代码托管和协作开发的行业标杆,灵活便捷地支撑个人、团队、企业的开发需求的产品。

体验

  1. 基本功能介绍和使用
  • 注册登录,选择一种方式进行登录注册,我在这里选择了GitHub注册,进入填写登录信息界面填写后进入主页
    imageimage

  • 开源项目浏览
    image这个界面就和CODE.CHINA非常像了,许多功能是是一样的。Gitee对项目的简介多了一项Gitee指数,image这项指数具体展示了这个项目从五个方面立体的展示了项目的热门并不是没有道理的,这是别的平台所没有的,加分加分。

  • 核心功能体验
    建立仓库可以从Github导入,选择刚刚创立的仓库导入(gitee对仓库名有要求)image
    Gitee的统计功能深得我心,对整个仓库的建立修改情况进行了统计,还绘制了仓库的网络图,整个仓库的情况一览无遗imageimage
    同样支持Web IDE
    image

  • 企业版
    image注册需要真的企业,所以我选择体验DEMO,进入后首页是自己的项目,还包括任务看板和一些项目内的文档,有点类似于任务协作软件。
    imageimageimage
    最后是对仓库的统计,有助于管理者,开发者们对仓库的提交情况,任务完成情况进行查看监督。image也可以按成员查看image

  • 高校板
    image高校版演示需要老师认证,这里就观看了演示视频。可以说高校版是青春版的企业协作,专门为软件类班级所准备的,把老师的教学过程总结分步,形成教学管理闭环。方便老师对学生们进行管理,这一点还是非常可取的(视频最后的简历制作纯属打广告)image

  1. 优缺点分析
    优点
  • 全中文。
  • 私有库完全免费。
  • 接入了Github和Gitlab
  • 将版本分化,便于自己选择需要的版本。
    缺点
  • 界面比较普通,整了个主题色,到开源软件页面颜色大变,点了另外两个界面也是如此,配合不是很好image
    imageimage
  • 一小时只能上传20个文件
    image
  1. 改进意见
  • 开源软件界面改成主题色,另外两个界面可能是相应版本的颜色。
  • 可能是防止恶意上传软件,希望可以提升上限或者取消限制。

bug

bug1 隐私页面

已在Gitee Feedback 提出Issue(https://gitee.com/oschina/git-osc/issues/I3SG1Y?from=project-issue)

  • Bug发生时的测试环境:Windows 10家庭中文版 浏览器:Firefox 88.0(32位)
  • Bug的可复现性和复现步骤:可稳定复现,进入开源软件页面,在网址后面加上/r就会出现一个奇怪的页面image
  • Bug分析:
    可能的成因:阴差阳错地进入了这个页面,可能是想做一个推荐项目的搜索?但是打开调试工具又发现它的class名为selection,整个页面除了框架其他地方都是空白,还是说测试人员测试的时候源代码忘记删除,界面上有一句啥也没有和额,这里啥也没有呢。最后打开正常界面发现相同的class名,证明这是一个未做好的新页面被不小心放了出来。打入/加其他的字符都会进入父级所在的网址。
    Bug的严重性:⭐⭐
    系统功能:无影响
    安全性:涉及隐私界面泄露
    用户体验:正常用户进不去,巧合情况下进入了会降低对网站的观感。
    对于Bug的预期及改进建议

在云端删除该页面。

结论

Gitee可以说是国内最大的平台了,很多功能都是免费的,虽然广告多但是瑕不掩瑜,且体量十分庞大。非常推荐

第二部分 分析

开发时间估计

需求分析1周
界面设计1周
数据储存2周
建立个人仓库管理10周
对仓库的协同操作20周
个人账户2周
基于账户的仓库权限4周
持续集成功能5周
安全防护2周
附加功能(webIDE2周 第三方服务4周 )
共计:CODE.CHINA和GItee为49周,GitHub51周,留出百分之五的时间做修改,这类项目怎么看没有一年都弄不出来个1.0版本,还是在开发人员没有假日的情况下。(一周代表七个工作日,每天工作八小时。)

同类产品对比排名

  • CODE.CHINA有csdn和gitlab做靠山,虽然现在还是个孩子(生态不成熟),但还是能排到前五。
  • GitHub,整个的系统的完善让人挑不出毛病,NO.1当之无愧。
  • Gitee,国内的领跑人物,由于本土化的关系我能给他No.2。

[软件工程方面的建议]

  • GitHub,可以引入WebIde功能
  • CODE.CHINA和Gitee,和各大公司接触,争取像GitHub一样可以在vs,jetbrains旗下产品直接进行代码的版本控制管理。

[BUG存在的原因分析]

CODE.CHINA:
bug1和bug2:开发人员粗心大意
bug3:测试把关不严,敷衍了事,没有注意在特殊的配置或环境下测试
GitHub:
bug1:开发人员粗心大意
Gitee:
bug1:开发人员粗心大意和测试把关不严,敷衍了事,没有注意在特殊的配置或环境下测试

第三部分 建议和规划

市场概况

  • 首先市场有多大?
    这是GitHub今年年初的年报咨讯image,可知使用此类产品的用户是以千万计的。GitHub预计到2025年用户将超过一亿.而2020 年 Gitee 上托管的代码仓库超过了 1500 万,用户总量超过 600 万。附gitee2020年报
  • 其次直接的用户有多少?潜在的用户又有多少?
    按每三个人用户有一个活跃来算,约有两千万的用户经常使用此类项目。潜在的用户则是未使用代码托管的从事软件行业的所有人员,学习相关知识的大学生,退休后的纯兴趣爱好者。

市场现状

  • 目前市场上有什么样的产品了?
    GitHub,gitlab,Bitbucket,码云(Gitee),码市,Code.china等等

  • 上述产品的定位、优势与劣势在哪里?
    |产品|优势|劣势|
    |GitHub|系统最完善,体量最大|网络不好|
    |gitlab|对企业更加友好|不注重个人|
    |Bitbucket|同时支持 Git 和 Mercurial 这两个版本控制软件,免费提供无限制的私人和公共仓库|市场被前面两个哥们占了|
    |码云(Gitee)|国内最大的代码托管系统,免费|国外市场不大|
    |码市|云端服务|醉翁之意不在酒,志向在于外包服务|
    |Code.china|背靠CSDN|不够成熟|

  • 上述产品之间呈现什么样的关系,哪些为竞品关系?以及竞争中的各方态势如何?
    都是竞争关系,总体来看GitHub一家独大,但是Gitee在国内异军突起,在企业服务方面又是Gitlab和Gitee逐鹿市场。其他的产品还须努力,我看好CODE.CHINA。

市场与产品生态

  • 这个产品的核心用户群是什么样的人?典型用户是什么样的?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?
    核心用户群就是软件开发人员们,包括公司内的,个体,学生,兴趣爱好者们
    典型用户:a,30岁,博士毕业于电子信息,爱好围棋,年入百万,表面需求:使用Github发布自己的科研成果,潜在需求:获取最新技术。
    b,21岁,本科大三软件工程,爱好动漫,收入负数,表面需求:用gitee完成老师布置的作业。潜在需求:培养开源思想。
    c,15岁,初三毕业,无专业,爱好编程,收入负数,表面需求:浏览各大热门项目满足自己的好奇心,潜在需求:入门编程各种技术

  • 产品的用户群体之间是否存在一定的关系?是否有利用其相互作用二次构成特定用户生态的可能性?
    存在,全世界的开发人员们联合起来!如果不是兴趣,谁愿意选择计算机和软件工程,毕业后从事相关行业还是远大于进入销售部门。

产品规划

  • 你要在当前软件的基础上设计什么样的新功能?为何要做这个功能,而不是其他功能?为什么用户会用你的产品/功能?你的创新在哪里?可以用NABCD分析。
    计划在CODE.CHINA加入从各大开源平台导入热门仓库的功能
    N: 需要通过引流才能迅速壮大自己。借势。
    A: 与各大平台协商。并与仓库开发人员们联系
    B: 既然是开源,就要做到人人为我我为人人,。
    C: 这是CODE.CHINA的劣势,目前欠缺的就是生态的完善,一旦成功核心竞争力将大大增加。
    D:可以预料到CODE.CHINA的迅猛势头,通过各大新闻席卷整个行业

  • 如果你是项目经理,可以招聘6个人,并且有4个月的时间,你认为应该如何配置角色(开发,测试,美工等等) 才能在第16周如期发布软件的改进版本,并取得预想中的成绩。
    和平台接触人员:2人
    开发:3人(1前端)
    测试:1人

  • 请为你的团队设计16个周期每周的详细规划。

1 分析可行性
2需求分析
3拟定计划和平台洽谈
4指定开发计划,任务分发
5认领任务搭建框架
6前端完成任务并测试
7将自己的接口开放
8接入GitHub
9测试成果
10继续接入其他平台
11集成测试
12Alpha测试并修复Bug
13Beta测试,修复Bug并听取反馈
14收到反馈修复Bug并测试
15压测
16上线

posted @ 2021-05-21 20:31  至沁  阅读(735)  评论(4编辑  收藏  举报