软件案例分析——VS和VS Code
软件案例分析——VS和VS Code
项目 | 内容 |
---|---|
这个作业属于哪个课程/ | 2020年春季计算机学院软件工程(罗杰 任健) |
这个作业的要求在哪里? | 软件案例分析 |
我在这个课程的目标是? | 提高代码水平,熟悉团队合作 |
这个作业在哪个具体方面帮助我实现目标? | 分析成熟软件的优缺点,从中学习软件开发、设计经验 |
第一部分 调研,测评(软件的bug,功能测评,黑箱测试,第8章用户调研,12章软件的用户体验)(必答),如有必要,可以配图。
使用10-30分钟这个软件的基本功能(请上传使用软件的照片),它们的目标用户,主要功能有何不同?为何要有两个编辑器和开发环境?请用这两个编辑器/IDE写出一个简单的C/C++/Python程序,描述你的发现。
VS Code运行截图(输出字符串)
VS2019运行截图
VS Code是一款功能强大的轻量级代码编辑器,它提供了主流编程语言的语法高亮、代码补全等功能,与之相似的产品有Sublime Text、Atom等。同时VS Code有着丰富的插件,可以让一个代码编辑器变成一个轻量级的IDE。在刚接触编程时我使用的编译器是DEV-C++,VS Code通过安装插件完全可以实现DEV-C++的所有功能。VS Code非常适合前端开发 为什么我选择使用 VS Code进行前端开发?
很显然,VS Code针对的是轻量级编码,比如我们去做一些OJ上的题目,用VS煞费苦心地创建一个项目显然是不合适的。这时候我们使用VS Code进行编程就会方便很多。针对软件工程团队,VS Code多用于前端开发。VS Code简洁的外观和丰富的插件让它在众多代码编辑器中脱颖而出
VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境等等。
VS是一个庞然大物,各种功能一应俱全,但缺点也很明显——慢。当然这也是无可避免的。首先VS打开就要经过漫长的加载,电脑配置稍差的话,从打开到新建项目得花上十分钟时间。
微软推出了两款编辑器和开发环境,是为了满足不同程度的编程要求。针对代码规模较小的程序、前端开发等VS Code更适合;VS更适合大规模开发,更适合在软件工程对项目进行管理、测试、优化等。同时VS Code手动配置编译环境也给了程序员更多的自由发挥的空间。
我在两款软件上运行了C++代码,VS Code更快更便捷。但针对多文件编译,VS更方便。
描述使用这个产品的过程,解决了用户的问题么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题吗?找出至少2个功能性bug。用专业的语言描述(每个bug不少于40字),如有必要,可以配图。
我在VS Code上编写了一个简单的helloworld程序,并安装插件,配置
launch.json
和tasks.json
文件进行了了编译、调试等工作。我在VS2019上完成了个人项目作业,并进行了单元测试、代码分析等工作。
二者之间的比较:
VS Code很好的支持代码补全等功能,其代码补全功能的使用体验要优于VS。VS Code解决了用户快捷编码的需求,丰富的插件也满足了用户自定义一个IDE的需求。
VS2019解决了软件工程开发团队的大部分需求,从测试到性能分析不一而足。VS更适合管理千行以上的代码。
VS Code界面美观,简洁大方,更支持多种插件进行界面美化,可以根据个人喜好进行配置。功能上通过插件能基本满足代码开发,但仍然很难进行单元测试、性能分析等功能。此外VS Code还支持linux、mac等平台。
VS2019功能窗口繁多,但支持拖动窗口自定义窗口位置,插件比较少,外观修改插件效果都不是很好。但VS2019功能强大,真正意义上的工作站。
VS Code的用户体验不错,但在界面的设计上延续了VS的传统,不如Sublime Text美观,好在丰富的插件吸引了了更多的用户。
VS2019体验不算很好,虽然它提供了许多功能,但在上次作业进行单元测试和代码分析时,这两个功能我都没能顺利使用。性能分析功能我删除了重装VS2019得以解决,代码覆盖率分析的问题直到博客发布之日才解决(bug部分)。
VS Code我使用的比较少,没有碰上什么bug,下面是我使用VS时碰上的bug:
bug 1
在个人项目作业中,我使用VS2019 Enterprise版本进行代码覆盖率测试,遇到了如下问题:
项目报错:生成了空结果:未检测任何二进制文件。此时单元测试可以顺利进行。
一开始我以为我的单元测试代码有问题,经过修改,将目标代码改成最简单的分支语句,进行单元测试,编译器仍然显示:生成了空结果。
转到VS2019 Community版本,使用OpenCppCoverage插件,仍然无法进行代码覆盖率测试:
浏览上次作业的班级博客发现,这个问题并不是偶然的,也有其他同学Enterprise版本无法进行单元测试。上网查阅资料发现,这个bug在VS2017 15.3版本中就存在代码覆盖率在15.3中不起作用
论坛中有人给出如下解决方法(论坛中给出了多种解决办法,但这个方法解决了我的问题):
UPDATE: It was a problem with the VC++ Unit Test Project configuration. Under Project Properties -> Configuration Properties-> Linker->Debugging, the "Generate Debug Info" option should be set for "Optimize for debugging (/DEBUG)" in order to enable code coverage.
开发人员也表示将会修改:
the issue that you are mentioning is with C++ CodeCoverage, where to get code coverage user has to generate Full pdb, by changing the linker proper as you did. This is a know issue to us, we also tried to investigate doing code coverage with default(fastlink) C++ pdb configuration, but the pdb files generated does not contain sufficient information for us to do code coverage.
With release of VS 2017.5 we also plan to document this limitation for C++ projects.
但是这个bug在VS2019版本中依旧存在,进行代码覆盖率测试依旧要手动修改项目属性。同时,VS2019的官方文档(代码覆盖率疑难解答)中也给出了这个解决方法。
community版插件的问题目前还没有解决。git上已经有人提出了这个问题,但作者尚未给出回复。
bug 2
VS在进行项目属性设置时(项目->属性),使用
Alt+Tab
键切换到其他程序界面(浏览器),再切回后会导致VS“最小化”失效,此时再使用Alt+Tab
键进行切换将不起作用。使用win+D
键显示桌面也没有效果。关闭VS重启会恢复正常。对产品有什么改进意见
我认为这两款产品都是十分优秀的,况且我对这两款产品并没有非常深入的了解,贸然提意见显得不够稳妥。但就我使用时的一些体验,我还是建议:
VS
VS的功能相当丰富,但对于学生以及个别开发团队来说,有些功能是不是显得有些冗余?建议可以推出“青春版”,把性能分析等一些使用较少的功能作为可选择插件。
VS Code
希望VSC可以出一个官方的中文文档。插件管理略显混乱,可以提供插件的分类管理功能。
结论:
VS:d) 好,不错
VS Code:d) 好,不错
评分 (满分 10 分, 良好 6 分, 及格 4 分,聊胜于无 1 分, 很差 -3 分)
VS VS Code 功能 8 7 细节 8 8 用户体验 7 9 辅助功能 9 6 差异化功能 6 9 软件的效能 6 8 总分 44 47
第二部分 分析(参考8.6节对工作的估计,和14.1节软件工程的质量)
使用此服务的所有功能,估计这个软件/网站/服务做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI支持)。(必答)
VS需要5年甚至更长时间。VS要完成一个编译器,还要完成庞大的测试、版本管理、代码分析功能。我估算一年时间能完成一个编译器,两年时间完成测试、代码分析等等功能,一年时间前端,,一年时间测试。
VS Code需要2~3年。VS Code相对来说比较简单,实现一个代码编辑器所用时间要小于VS。但要是由团队完成现有插件,时间可能会延长。
分析这个软件目前的优劣(和类似软件相比),这个产品的质量在同类产品中估计名列第几?(必答)
VS
VS的同类产品有:IDEA、Eclipse、Android Studio。这几款产品我都用过,VS的使用体验要优于其他三款。在上文中我吐槽VS加载太慢,但跟IDEA和AS相比那VS的体验不要好太多;S的界面设计也要更优秀一点(窗口自定义位置)。加上微软的名头,我估计VS应该是IDE中名列第一的,PYPL 1 月 IDE 榜单:Visual Studio Code 猛追 IntelliJ 一文也给出了2019年1月的排名,VS市场占比23.05%,位列第一
VS Code
VS Code的同类产品有:Sublime Text、Atom、Vim等。VS Code的优势在于免费以及丰富的插件,支持linux、macos平台也为它加分不少。但就我的实际体验来看,我认为VS Code的市场排名应仅低于Sublime。在上面给出的链接中可以看出,VS Code的市场占比(4.26%)略微高于sublime(4.12%)
你在第一部分发现的bug,为何软件团队不能在发布前修复?他们是不知道,还是有意不修复?你觉得是什么原因?
针对代码覆盖率测试的bug,我猜测这个bug的出现率并不是很高。开发者也提到了自己并不能复现这一bug。开发者可能觉得并不值得为了这样一个bug去修改项目属性的默认值,可能其他功能在<DebugType>full<DebugType>的情况下并不能正常使用。故开发团队将这一bug的解决方案放在了文档中,而没有进行修复。
第三部分 建议和规划(参考《构建之法》第8章功能的定位和优先级;第九章项目经理)
软件市场有多大?潜在用户有多少?
VS和VS Code的软件市场涵盖了整个软件开发领域,从互联网公司到计算机科学相关学生、教育工作者都是VS的户。VS Code的潜在用户不仅仅是程序员、学生,许多文字工作者也用VS Code代替文本编辑器,这样便于管理庞大的文档(小说、企划书等)。另外,VS Code的插件越来越丰富,已经有了取代VS成为IDE的趋势,这也为它带了潜在用户。VS的知名度高,所以潜在用户比较少。
目前市场上有什么样的产品了,他们的优势劣势在哪里?和它直接竞争的产品在哪里?
- IDEA
- 优点:版本稳定,Bug非常少。对代码重构有着强大的支持。代码补全功能体验舒适。
- 缺点:占用内存严重。右键菜单非常长,甚至超出了屏幕。
- Eclipse
- 优点:非常适合java语言,开发、编写、差错等方面非常方便。开源、免费。插件功能强大。
- 缺点:大工程是,吃内存耗cpu。插件对eclipse版本要求比较严格,插件更新速度跟不上eclipse更新速度。安装插件过多之后,速度变慢
- Sublime
- 优点:体积小,运行速度快。文本功能强大。内嵌python解释器支持插件开发以达到可扩展目的。界面美观,快捷键丰富。
- 缺点:插件下载不方便。收费。
- IDEA
作为新的项目经理,这个产品的核心用户群是什么样的人,典型用户长什么样?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?
VS和VS Code的核心用户都是程序员。程序员大多反应敏捷,思维灵活。面对工作时会比较严肃、细心。学历从大专到博士不等,年龄大多在25~35岁之间,专业为计算机专业或数学、物理专业,爱好不一而足,但6系学生人均二次元。收入相对其他职业较高。
程序员的需求也是分阶段的,初学者都希望能使用一款简洁、易上手的编译器,以便他们能迅速完成一些小规模代码的编写。当程序员面对的项目规模越来越大时,他们希望能有一款软件能集成所有的开发功能。当然前端程序员也希望有一款轻量级的代码编辑器来满足他们的需求。
软件案例分析——VS和VS Code的更多相关文章
- 软件案例分析——VS、VS Code
软件案例分析--VS和VS Code 第一部分 调研,测评 一.使用10–30分钟这个软件的基本功能(请上传使用软件的照片) VS code Visual Studio 二.主要功能和目标用户有何不同 ...
- 【BUAA软工】软件案例分析
项目 内容 课程:2020春季软件工程课程博客作业(罗杰,任健) 博客园班级链接 作业:BUAA软件工程结对编程项目作业 作业要求 课程目标 学习大规模软件开发的技巧与方法,锻炼开发能力 作业目标 个 ...
- 2020BUAA软工个人博客作业-软件案例分析
2020BUAA软工个人博客作业-软件案例分析 17373010 杜博玮 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业-软件案例分 ...
- BUAA2020软工作业(五)——软件案例分析
项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 软件案例分析作业 我在这个课程的目标是 进一步提高自己的编码能力,工程能力 这个作业在哪个具体方面 ...
- BUAA软件工程_软件案例分析
写在前面 项目 内容 所属课程 2020春季计算机学院软件工程(罗杰 任健) (北航) 作业要求 软件案例分析 课程目标 培养软件开发能力 本作业对实现目标的具体作用 对案例进行分析以学习软件开发的经 ...
- SE_Work4_软件案例分析
项目 内容 课程:北航-2020-春-软件工程 博客园班级博客 要求:分析软件案例 个人博客作业-软件案例分析 班级 005 这个作业在哪个具体方面帮助我实现目标 分析对比一类软件,学会规划分析软件的 ...
- “深度评测官”——记2020BUAA软工软件案例分析作业
项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任建) 这个作业的要求在哪里 个人博客作业-软件案例分析 我在这个课程的目标是 完成一次完整的软件开发经历并以博客的方式记录开发 ...
- BUAA SE 软件案例分析-CSDN
Q A 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业-软件案例分析 我在这个课程的目标是 系统地学习软件工程开发知识,掌握相关流程和技术,提升 ...
- [软工作业]-软件案例分析-CSDN
[软工作业]-软件案例分析-CSDN(app) 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业-软件案例分析 我在这个课程的目标是 ...
随机推荐
- .net中使用JSON
在.NET使用JSON作为数据交换格式 ASP.NET中JSON的序列化和反序列化 三种方式: 使用System.Web.Script.Serialization.JavaScriptSerializ ...
- SpringBoot异步使用@Async原理及线程池配置
前言 在实际项目开发中很多业务场景需要使用异步去完成,比如消息通知,日志记录,等非常常用的都可以通过异步去执行,提高效率,那么在Spring框架中应该如何去使用异步呢 使用步骤 完成异步操作一般有两种 ...
- JAVA安全基础之反射
JAVA安全基础之反射 在JAVA安全中,反射是一个经常使用的技术,所以熟悉使用反射是非常必要的.下面就简单的讲下JAVA的反射的用法 什么是反射 每个类都有对应的Class类对象,该Class类对象 ...
- go语言游戏服务端开发(一)——架构
五邑隐侠,本名关健昌,12年游戏生涯. 本教程以Go语言为例. 网络游戏程序分为客户端和服务端.客户端负责图形渲染.交互和一些简单校验处理,服务端负责业务逻辑处理.数据存储. 我们开发一个游戏de ...
- 2.1Java基础
2.1.9面向对象的三大特性(携程): 封装:把一个对象的属性隐藏在对象内部,外部对象不能直接访问这个对象的内部信息.但是可以提供一些可以被外界访问的方法来操作属性.就比如我们常常创建一个类,把他的属 ...
- centos7 未启用swap导致内存使用率过高。
情况描述: 朋友在阿里云上有一台系统为CentOS7的VPS,内存为2GB,用于平时开发自己的项目时测试使用: 他在上面运行了5个docker实例,运行java程序:还有一个mysql服务: 上述5个 ...
- 【PHP数据结构】栈的相关逻辑操作
对于逻辑结构来说,我们也是从最简单的开始.堆栈.队列,这两个词对于大部分人都不会陌生,但是,堆和栈其实是两个东西.在面试的时候千万不要被面试官绕晕了.堆是一种树结构,或者说是完全二叉树的结构.而今天, ...
- Centos8.X 搭建Prometheus+node_exporter+Grafana实时监控平台
Prometheus Promtheus是一个时间序列数据库,其采集的数据会以文件的形式存储在本地中,因此项目目录下需要一个data目录,需要我们自己创建,下面会讲到 下载 下载好的.tar.gz包放 ...
- ActiveQq的代码实现
]从java代码开始再过渡到springboot Java代码的实现 1.activemq这个消息中间件有两种形式 1. p2p(生产者,消费者) 特点: 生产者: package com.lqh; ...
- xadmin使用富文本
环境:pycharm django1.11.20 python2.7 后台xadmin(根据网络各种资料实现) 本教程接上篇如何安装 xadmin,如何不清楚,请看上一篇(django安装xadmin ...