BUAA_2021_SE_Case_Analysis

案例分析作业

项目 内容
这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健)
这个作业的要求在哪里 案例分析作业
我在这个课程的目标是 通过课程学习,完成第一个可以称之为“软件”的项目,同时了解软件工程中用到的方法,确定自己的职业目标
这个作业在哪个具体方面帮助我实现目标 学习业界经典软件,找到软件工程之法
学号后四位 5044

在本次作业中,我选择微软公司两款"显示代码"的工具进行横向对比。

1. 调研与评测

首先,我们先看看微软展示这两款产品的一个页面

可以看到,这两款产品目标用户的最大的区别就是:Linux用户

  • 对于Visual Studio 则完全不支持linux,
  • 而Visual Studio Code 则是全平台支持,下文我将详述体验报告。

1.1 Visual Studio Code

首先,本人是这款软件的重度用户,几乎每天都至少在一个平台上打开这款软件,这款软件几乎成了我的第二备选的文本编辑器[为什么是第二呢,因为第一可能是windows下的记事本或是linux下的vim]

它的安装程序体积十分小,在windows平台上甚至不到70MB,这丝毫不影响它的强大之处

打开软件,非常明显,微软特征:

如果我们什么插件都不安装,那左边应该没有下面几个图标,他所能做的,也就是打开一个文件,然后改一改,或是打开一个文件夹,然后改一改里面的文件,然后保存。

听起来它和我们平时所用的记事本没什么区别对不对,知识加了一个深色/或是浅色的皮肤,看起来更有逼格hhhhhh

但是,当我们打开它的扩展商店时,我们会被它数不胜数的插件震撼到

是的,它的功能强大,完全是取决于他有十分良好的生态链,商店中除了一些核心插件是由微软自身研发以外,其余都是由活跃的社区开发者所维护,这就像是编辑器界的iPhone一样,单独一个没有网络,没有app的iPhone,它除了打电话发短信拍照片,几乎什么都做不了,而一旦连接网络,它几乎可以做你想做的任何一件事情。

此外,当我们打开一种没有插件支持的文件类型的时候,微软会在右下角弹窗,让你安装一个插件,以便更好地进行编辑。

Visual Studio Code 是一款开源软件,也就意味着,我们每个人都可以投入到它的开发中,如果我们发现其存在bug,可以随时在其github页面上提出issue,当然,你也可以直接修改代码,并向微软提出pull request,通过后,你的代码也将进入下一个版本。

Visual Studio Code 提供了代码调试,编译,运行的接口,但它本身并不包含这些功能,插件也不包含,而它的调试编译,运行,连接远程主机等操作,全靠的是插件调用你本机配置好的环境,也就是说,如果你本机配置环境出现问题,你什么都没法做。许多初学者安装了它之后又卸载了,是因为使用它需要具备一定的基础知识,你得知道你想用它干什么,才能更好的把他当作一个工具去实现你得目的。

同时由于它是一款开源软件,自然就能又跨平台运行的能力,理论上,你有合适的编译器,你甚至可以把它移植到你自己写的cpu平台上,再移植一些插件过去。

关于bug:由于有时候我也搞不清到底是插件还是编辑器本身的问题,在我使用中,我发现了以下两个问题:

  • 在每次版本更新后的第一次打开,有很大概率[!=100%]出现语言插件失灵的情况
  • 在WSL2 REMOTE环境下,Java插件选择的JDK版本失效,还得靠ubuntu的update-alternatives --config java进行配置
    以上使我在日常使用中发现的问题

在我大二时,采访过大一的同学,为了完成数据结构作业,让我推荐编辑器,由于他之前使用过Visual Studio,我就推荐了VSCode,在他试用的前提下,我得到了一些反馈

  • 他主要为了使用这款编辑器完成数据结构的作业[C语言]
  • 他实际使用了C/C++插件
  • 他在初次配置编译器和调试器时遇到了很大的麻烦,和他之前使用的VS不同,VSCode时基于命令行的运行,所以他必须配置好路径[或环境变量]
  • 但在成功配置好后得到的反馈是:好用,轻量化,不卡,简单

也就是说,VScode作为一个编辑器来说,是很好的的,虽然vscode在官方给了一些文档指引(https://code.visualstudio.com/docs),但是初学者很少有人愿意去看英文的原文文档,再加上插件繁多,不可能每个插件都有那么简明的指引。但是它核心要用户做的是,打造一个你自己的工作空间,每个人可能有每个人不同的工作,而你使用Vscode去打造一个最适合你的工作环境就OK了。Vscode给你提供的东西很多,即使没有提供,你也可以自己创造。因为它的一切都是开放的,你在作为一个用户的同时,你也是一个开发者。

最后给个评价:好

1.2 Visual Studio

这时就来说说微软老牌的IDE Visual Studio。本人使用的是2019版本

它被称为:宇宙最强IDE。倒也不负其名,光看看它完整安装所需要的磁盘空间就知道它有多牛了

曾经有个说法:你在安装VS的时候,把所有的勾全勾上,那就没有什么不能写的东西了。

这句话是真是假我不知道,但是,这句话很明显,说明了它和VSCode定位不一样,这两个东西基本上没有可比性。在说Vscode的时候,我更多的是说它能编辑,而其他的东西就是为了编辑进行服务的,为了你更好的编辑,就像我现在在写博客一样。而VS就是为了开发一个程序,一个项目而生的,看看它的界面:

看起来和Vscode有点像,但是感觉按钮是不是多了不少,自带的东西多了不少。

我们打开Vscode只需要新建一个文件,而打开VS则需要新建一个项目或者导入一个已将创建好的项目

从本质来说,VS更侧重项目的开发于管理,VScode更专注"编辑"

由于我本人仅在编译课程中用过十几小时的此软件,接下来介绍一下本人发现的一些"bug"

  • 自动补全习惯非常反人类,居然不是enter[或许是feature]
  • 微软老声常谈的汉字编码问题,都nm2021年了,还在用GB2312,命令行运行汉字都是乱码[如果不经过调整]

不可否认,VS在开发Win32[64]应用程序时,有着举足轻重的地位,特别是这款IDE已经发行了二十余载,肯定是积淀了一些东西,但是对于平时不怎么开发window应用,主力机是linux的我来说,它的存在好像就没那么必要,与其请个爷回家供着,不如使用更人性化的Jetbrain IDE,开发C/C++就用CLion,开发Jvm相关就用idea,开发python项目就用pycharm

VS它最大的优点就是能让一个人快速投入开发之中,对于windows应用来说,环境不那么多变,你也无须考虑什么,只需要安装VS,把勾都点上,等条走完,就可以开始开发了,而无需考虑那么多开发无关的事情,比如woc,xxx怎么找不到,xxx怎么出问题等等。

最后给个评价:也很好 但是并不适合我个人。

2.分析

2.1 预估时间

  • 针对这两个软件,如果不考虑[普通]学生的成长和外界高人指点,我觉得没有十年脑血栓问不出这问题
  • 如果仅靠六个本科生,给他三五十年怕是都难以开发出像VScode这样的软件,微软和全世界的开发者,用了6年时间做出现在这样,靠六个[普通]大学生那应该比较难。
  • VS同理,VS技术团队,二十多年开发的一款软件,是几个大学生几个几年能搞出来的么?

2.2 排名打分

  • VSCode
    同类产品:sunlime,vim,notepad++,记事本等
    体积:不大
    插件生态:巨多
    缺点:难以在命令行<无gui环境下>运行
    打分:9.8/10
    排名:前1
  • VS
    同类产品: Jetbrains IDE
    体积:大
    功能:较全
    使用便捷性: 方便,但不够人性化
    独特处: 用于windows应用开发
    市场占有率:高
    打分:9.5/10
    排名:和jetbrans 很难比,目标客户有重叠,但不完全一致

2.3 建议

  • Vscode
    社区化已经足够好了,但是对于不同国家,不同语言的用户来说,参与体验就没有那么好了,提高了使用者的门槛。

  • VS
    安装过于臃肿,可选项应该再多一些,同时将一些操作做的更加人性化,同时修复一些历史遗留性的问题。

2.4BUG分析

  • Vscode
    • 使用语言包的人不多,且该bug可以容忍,故修复优先级不高
    • 插件bug
  • VS
    • 开发团队对于用户调研不够充分
    • 历史遗留问题

3. 建议和规划

针对VScode

  • 市场概况
    • 市场很大,每一个会编辑文本的用户都是潜在的用户
    • 直接的用户就是已经安装了的用户,潜在的用户是正在使用其他编辑器/IDE的用户,或将来从事可能有关编辑文本相关的工作的人。
  • 市场现状
    • 市场已有vim sublime notepad++ 记事本等产品
    • 上述产品大多是free软件与开源软件,定位是希望定制自己的编辑器的用户,以开发人员居多
  • 市场与产品生态
    • 典型用户
      • 计算机相关从业人员
      • 计算机专业学生
      • 自由开发者
      • 其他可能使用编辑器的人员[论文写作者等]
  • 产品的子产品多由产品的用户进行开发,同时产生产品生态链
  • 现在用户也是潜在的开发者
  • 产品规划
    • NABCD
      • N:用户往往需要自己安装工具链,对于一些新手用户很不友好,我们需要一个tutorial插件来帮助新手用户快速入门,并帮助他们完成一些简单的工具链配置
      • A:通过不同系统的包管理插件和一些文档来实现
      • B:对新手用户更加友好,同时简化了工具链配置
      • C:许多同类编辑器都没有此功能
      • D:能将一大部分潜在客户直接变成客户
    • 大约需要三个开发,一个测试,两个文案
周数 规划
1 立项
2 需求分析和调研
3 功能设计
4 外观设计
5 文案编写
6-11 程序编写
7-12 单元测试
13 整体测试
14 加入内容
15 回归测试
16 发布BETA版本
posted @ 2021-04-08 16:16  BUAA-City  阅读(178)  评论(2编辑  收藏  举报