软件案例分析——VS、VS Code
软件案例分析——VS和VS Code
第一部分 调研,测评
一、使用10–30分钟这个软件的基本功能(请上传使用软件的照片)
VS code
Visual Studio
二、主要功能和目标用户有何不同,描述使用这个产品的过程,解决了用户的问题么?
VS是个一系列开发套件,vscosde是一个编译器
VS是Microsoft 开发的一系列的开发套件,是一个完整的开发工具集,包含了软件开发中所需要的大多数工具,例如UML工具,代码管理工具,IDE等。
vscode是一个单纯的编译器,专注于开发者最常用的功能:编译器+代码理解+调试。并通过使用海量插件来满足不同用户的需要。
跨平台能力上的区别
VS只能在Windows上运行,不能进行跨平台的编辑。vscode支持跨平台,例如:Win、Mac、Linux等平台
软件大小的差别
VS大小10G+,内置了编译工具,调试工具,各种语言的开发工具,全部都已经配置好了,可以做到开箱即用。vscode是一个简介的文本编辑器,占用的内存不超过100M,刚安装时相当于一个文本编辑器,需要安装各种插件才能开始使用。
目标用户的区别
VS致力于成为世界上最好 IDE,它的确也配得上这个称号。它巨大的体量保证了功能的完整性,实际体验的感觉也很不错,上手非常快。在我刚开始编程时使用的就是VS,它可以说是我编程的启蒙老师,无论是学习还是开发都非常方便。而vscode是最近流行的编辑器,它对mac和Linux环境下的用户非常友好,但在Windows上体验不如VS,它小巧的体型也预示着它要安装大量的插件才能适应各种开发环境。
总而言之,他们的功能有交叉,也有不同。VS有很多的高级功能,也许只有专业的开发人员才会用到,甚至在用过以后就产生了依赖,成为了它的付费用户。而vscode是轻量级编辑器,能够在各种平台上适应各种工程的开发。只是用VS一小部分功能的用户可能会选择更轻便的vscode来开发。
三、两个功能性BUG
- 我在使用VS写结对项目时需要下载插件,但是在扩展下载的时候会卡死不动,无法下载。在网上查找解决办法时发现这是一个普遍性的问题,据说是因为微软在国内的服务器很不稳定,解决方法是打开右侧了解详情去到浏览器中下载。
-
在使用QT+VS编写工程时,我才了解到了VS中Release和Debug两种调试功能的不同
- Debug通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,以为开发人员提供强大的应用程序调试能力。
- Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。所以不保存调试信息,同时,它往往进行了各种优化,以期达到代码最小和速度最优。为用户的使用提供便利。
但是在debug模式和release模式下程序执行的结果可能会不一致,这是因为在Release版本会对程序进行优化处理以提高代码的运行速度,对于错误的处理也没有debug编译时的全面,所以在debug编译时不是问题的问题都会暴露出来。例如:内存分配问题:变量未初始化;以及最为严重的“DLL的灾难”,当人们将不同版本的DLL混合在一起使用所造成的不一致称被称为“DLL Hell”。这种不一致只能在写代码时自己注意。
四、对产品有什么改进意见
微软作为计算机界的龙头之一,所开发的产品质量当然是毋庸置疑的。VS是我最喜欢使用的IDE,界面美观,使用方便。而VS code是我刚刚接触到的新编译器,所以两个软件能提供的建议都十分有限。
- VS在编译一个巨大的工程时可能会花费大量的时间,有时会显得十分卡顿,当程序较为复杂时语法检测的速度可能会更不上编程的速度,如果优化一下可能会更加优秀。
- VS code在今天下载好一打开就让我眼前一亮,他的界面十分简洁。但当真正使用起来时,对于环境的配置和插件的下载略显复杂。对于刚刚接触这款编译器的萌新来说很不友好,需要一些适应期才能熟悉。
五、软件评价
描述 | VS | VS Code | |
---|---|---|---|
功能(20) | 编译器的强大性, | 19 | 18 |
界面(10) | 界面的美观 | 10 | 10 |
用户体验(10) | 用户使用时的舒适度 | 10 | 9 |
辅助功能(10) | 优化用户的使用体验的功能 | 10 | 9 |
扩展功能(10) | 支持插件扩展的程度 | 9 | 10 |
软件效能(10) | 启动速度,运行速度 | 8 | 10 |
软件的适应性(10) | 跨平台性 | 5 | 10 |
用户有控制权(10) | 让用户方便地从错误中恢复工作, 快捷操作键可调整。 | 9 | 9 |
软件的上手难度(10) | 10 | 8 | |
总分 | 90 | 93 |
两个软件我都十分推荐使用,而我自己在今后的学习工作中肯定离不开他们了。
第二部分 分析
1.使用此服务的所有功能,估计这个软件/网站/服务做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI支持)。
对于VS来说仅仅使用六人的计算机大学毕业生,我认为是非常困难的项目。VS背后应该是一个接近千人的团队共同开发的产品,它的许多功能我甚至都没有接触过,甚至以后也不会接触到,所以难度可想而知。我估计至少得需要五年的时间,才能开发出一个基本的结构,能够有一些基本的功能,例如IDE。想要彻底完善,可能需要更久的时间。
VS code:据我了解,VS code因其体量小的缘故,它的开发团队只有20多个人,大部分功能都是依赖插件,而插件都有对应的团队在开发,不用自己去操心。所以VS Code的开发相对于VS来说比较容易,我估计大概一年的时间就可以开发出可发行版。
2.分析这个软件目前的优劣(和类似软件相比),这个产品的质量在同类产品中估计名列第几?
作为VS的“老用户”,我认为它给我带来的体验是比较好的,无论是界面还是编写程序时的体验都很好。当然其他的同类工具例如:IDEA,Eclipse等,都有他们各自的优势,是好是坏都需要使用者自己去评判。但VS应该是这几年里我心中的业界第一,再加上微软这个靠山,我相信它带给用户的体验不会逊色与其他同行。
VS code据说是因为微软看不下去同类软件做的糟糕至极,所以要自己来开发一个。虽然这种说法具有夸张之意,但短短的体验也带给了我莫大的震惊,它如同万能拼图,想要什么形状都可以,使用过的人都连连称赞。所以,虽然交情不深,但我还是把它排到业界第一。
3.你在第一部分发现的bug,为何软件团队不能在发布前修复?他们是不知道,还是有意不修复?你觉得是什么原因?
第一个BUG可能是无法更根治的问题,也可能是因人而异的而问题,如果要彻底解决服务器不稳定的状况可能需要大量的投入,况且还有备用方案可以使用,所以解决它不是很大的问题。
第二个称不上是BUG,但在出现时微软也对它束手无策,但随着使用者的约定几乎解决了这个问题,只要将DLL的版本号写入文件夹中,识别到版本不同的DLL就拒绝编译。当大家都遵守编程规范时,这个问题就不是问题了。
第三部分 建议和规划
1.首先,市场有多大?潜在的用户有多少?
对于VS和VS Code来说,几乎所有接触到编程的人,上至项目经理,下至刚刚接触的小学生,都是潜在用户,可以说市场如大海般广阔。
2.目前市场上有什么样的产品了,它们的优势劣势在哪里?和它直接竞争的产品在那里?
因为这是一个很大的市场,所以竞争也相当的激烈。
VS和VS Code
本公司的明星产品。
NetBeans
NetBeans是一个免费开源的Java集成的开发环境软件,主要用于Java开发。适合从零开始或者对已有工程进行开发。NetBeans支持多种编译器,如CLang/LLVM、Cygwin(GNU)、MinGW和Oracle Solaris Studio。
NetBeans是一款跨平台的IDE,支持Windows,Linux,OS X等多种平台。
PyCharm
PyCharm是著名的PythonIDE,有知名的IDE开发商JetBrains出品。除了最常用的IDE功能支持外,PyCharm特别对Python Web开发进行优化设计(Django、Flask、Pyramid、Web2Py)。PyCharm还支持Google App Engine和IronPython/Jupyter。除了Python之外,它还支持其他Web开发语言:JavaScript、Node.js、CoffeeScript、TypeScript、Dart、CSS、HTML。它可以很容易地与Git,Mercurial和SVN等版本管理(VCS)工具集成。
IntelliJ IDEA
IntelliJ IDEA由Jet Brains出品的另外一款IDE。主要用于JAVA开发,集成了广泛的工具,可以用于Web和安卓移动应用程序开发。除了Java、Sass和Ruby之外,它还支持与Pycharm相同的语言。同样的它也支持Google App Engine,IDEA目前开源,有免费的社区版本,但是重要功能的版本是收费的。
Eclipse
被广泛应用的免费开源的Java编辑器和IDE。可以灵活的适用于初学者和专业人。有很好的插件机制,支持各种各样的扩展和插件。最初是一个Java IDE。现在扩展到支C/C ++,Java、Peri、PHP、Python、Ruby以及更多的语言。Eclipse也是一个跨平台的IDE,支持Windows、Linux和Mac OS X。
Code:: Blocks
Code:: Block免费开源的自由软件,是一款支持高度定制跨平台IDE,并坚持所有平台上执行始终如一地的效果。对于经常在不同平台切换的开发人员而言,非常方便。它主要支持C、C ++语言。还支持很多预设和定制插件。
3.作为新的项目经理,这个产品的核心用户群是什么样的人,典型用户长什么样?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?
本用户的核心用户群应该是软件的开发者和学习者,学历是本科及本科以上,年龄从18岁到38岁居多,专业大多是是计算机和软件,爱好是自己写代码、与他人一起写代码和阅读学习他人的代码,收入普遍较高。表面需求是寻找一款适合自己做软件开发和学习的工具,一定要用起来舒适方便。潜在需求是能够快且正确的写出尽量多还要清晰的代码。
4,如果你有钱可以招聘6个人,有4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?描述你的团队在16周期间每周都要做什么,才能在第16周如期发布软件的改进版本,并取得预想中的成绩。
时间 | 开发 | 测试 | 美工 |
---|---|---|---|
1-8周 | 4 | 1 | 1 |
8-14周 | 2 | 2 | 2 |
15-16周 | 2 | 3 | 1 |
一个项目最终要的就是开发,开发者必须思路清晰,分工合理,最后的成品才能经得住检验,所以开发者之中一定要有一个先锋角色来引导团队的开发。在前8周,必须快而好的拿出一个半成品,需要许多人力,而测试和美工不需要太着急。在8-14周要抓紧时间完善美工,同时推进测试的进行,软件开发进入收尾阶段。12-16周,最后的时间里要确保软件处于最佳状态,测试成为了重中之重同时开发者要修复之前犯下的错误。我相信16周之后一定能取得好的成绩。