案例分析作业

项目 内容
这个作业属于哪个课程 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版本

BUAA_2021_SE_Case_Analysis的更多相关文章

随机推荐

  1. css & clip-path

    css & clip-path https://developer.mozilla.org/en-US/docs/Web/CSS/clip-path https://tongqu.me/ tw ...

  2. vue页面切换过渡

    <!--<transition name="slide-left">--> <router-view></router-view>& ...

  3. 死磕以太坊源码分析之EVM指令集

    死磕以太坊源码分析之EVM指令集 配合以下代码进行阅读:https://github.com/blockchainGuide/ 写文不易,给个小关注,有什么问题可以指出,便于大家交流学习. 以下指令集 ...

  4. 【HTB靶场系列】靶机Carrier的渗透测试

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) Hack The Box是一个CTF挑战靶机平台,在线渗透测试平台.它能帮助你提升渗透测 ...

  5. TERSUS无代码开发(笔记03)-常用快捷键

    常用快捷键 1.a 普通行为元件调用 2.b 判断输入的值是什么值 3.c 有条件的传值处理 4.e 输出元件 5.f 传值或流程 6.t 输入元件 7.p 调用元件查询 8.x 判断是否有输入值 图 ...

  6. PythonPEP8 风格规范指南

    PEP是Python Enhancement Proposal的缩写,通常翻译为"Python增强提案".每个PEP都是一份为Python社区提供的指导Python往更好的方向发展 ...

  7. vue项目配置 `webpack-obfuscator` 进行代码加密混淆

    背景 公司代码提供给第三方使用,为了不完全泄露源码,需要对给出的代码进行加密混淆,前端代码虽然无法做到完全加密混淆,但是通过使用 webpack-obfuscator 通过增加随机废代码段.字符编码转 ...

  8. 微信小程序:添加全局的正在加载中图标效果

    在发送请求的时候,显示一个正在加载中的小图标.在加载下一页的时候也显示正在加载中.同时数据请求回来了,把加载中进行关闭. 开发----API-----界面 在哪里添加这两段代码会比较方便呢?一个项目有 ...

  9. 剑指 Offer 10- II. 青蛙跳台阶问题

    剑指 Offer 10- II. 青蛙跳台阶问题 Offer 10- II 题目描述: 动态规划方程: 循环求余: 复杂度分析: package com.walegarrett.offer; impo ...

  10. 【转载】关于grad_tensors的解惑

    转载:https://www.cnblogs.com/marsggbo/p/11549631.html 平常都是无脑使用backward,每次看到别人的代码里使用诸如autograd.grad这种方法 ...