• 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版本
  • 相关阅读:
    python 模拟(简易)音乐播放器
    Python中的多态如何理解?(转)
    mysql踩得坑
    python简单模拟博客园系统
    04 信号量
    02 事件
    01 管道
    32 管道 事件 信号量 进程池 线程的创建
    02 验证进程之间是空间隔离的
    01 进程的其他方法
  • 原文地址:https://www.cnblogs.com/BUAA-City/p/14632887.html
Copyright © 2020-2023  润新知