个人博客作业-软件案例分析

项目 内容
北航2020软工 班级博客
作业要求 具体要求
我的课程目标 通过案例分析提升自己对于软件工程的认识
课程收获 分析软件,了解软件的定位

第一部分 调研,评测(VS 和 VS Code)

调研评测:

微软对于Visual Studio系列的整体定义是:面向任何开发者的同类最佳工具

其中VS:更快地进行代码编写。 更智能地执行操作。 使用同类最佳 IDE 创建未来。一向有着“宇宙第一IDE”的美称!

而VS Code是免费(大杀器),跨平台和基于开放源代码构建的一个编辑器,就是一个编辑器,莫得编译的功能。当然,得益于其强大的插件系统,我个人认为在使用上已经不输很多的IDE,也因此被遍布985、人均百万年薪的知乎er的狂热爱好者的疯狂安利!

  • VS的主要目标用户应该是各种团队开发者,主打一条龙服务的团队合作开发模式,替你考虑各种方面,真父母般的关怀,因此会帮你做很多事情。就拿C++为例,如果你(新手)不小心打开了cmake项目,想着吃第一只螃蟹,结果你会发现,事情可能没那么简单,一旦项目复杂起来,你会首先遇到编译不过的难题。即VS帮我们做了很多东西,隐藏了很多细节,可以让我们专注于代码层面,岂不美哉?而如果你想深入了解工程的内部逻辑等等,还留了cmake的坑给你使用。如此全心全意的为用户考虑,所以VS的体量就很宽广,全部模块预计需要不下50G的硬盘,不过根据需要下载不同的模块也支持,总之是很不错的,对于新手的支持个人感觉很友好。

  • VS Code的目标用户应该更多倾向于个体用户和轻量级使用的用户,而且目前在JS领域的使用者已经无人能挡,依据插件功能,VS Code可以变成几乎任何一个你想要的IDE,甚至是音乐播放器、知乎等等,打开VS Code,各种各样的插件供你选择,已然形成一个良好的生态。当然,因为是一个编辑器,不具备编译运行等功能,就需要自己配置,对于新手来说一定程度不友好(不过现在各种教程当道,也不存在配不出来的问题)。总之,VS Code更像是一个个性化十足的私人使用物,彰显着不同大佬的不同品味和B格!

所以我个人的理解是VS是专业化的需求,而VS Code更多迎合的是个性化的需求!

下面是使用:

  • VS:运行的是结对项目。VS很适合工程化的项目,管理起来比较简单,更多的关注逻辑和代码实现层面!对于这种需要一定管理和测试的项目很友好,用户体验很不错。

  • 但是如果运行一个hello world,VS就显得十分的臃肿,其本身主要是适用于大型项目,而对于较小的程序,在打开VS的时候,我已经在其他的环境下编译完成并且运行了。

  • 在功能上,VS没得说,几乎满足了用户的全部需求。但正是因为复杂的功能,在深度使用时没有一定的经验会因找不到需要的功能而感到迷惑。

  • 个人建议:

    • 我个人在使用过程中对于错误和警告往往不得要领,不太会用微软的错误处理的论坛,感觉通过链接跳过去也往往无法获得有效的信息,有时候错误框的信息更是令人头大,没有重点,令人伤心。希望这方面有加强!

  • VS Code:如图,想要用个C++,往往需要配置一些文件,不过之后的使用流畅感让人直呼“知乎诚不欺我!”

  • 轻量级,个人感觉界面设计比VS更加令人舒适,可扩展性强,插件众多,功能也越来越丰富,缺点是管理大型的项目较为不利,不过通过cmake也有奇效。

  • 个人建议:因为使用很舒适,目前没有!


那么问题来了,对标的某全家桶,如何呢?我个人都有使用过,不得不说全家桶的IDE也是真香,感觉更像是介于二者之间,没有体量大到让电脑望而却步,但是提供的功能相差无几,自定义方面也是有模有样!

Bug:

  1. 如下图,在VS中,如果我想要修改项目名字,直接右键重命名后,VS中对应的名字得到修改,文件夹中却莫得任何变化,但是,编译却可以正确的执行?若是我把文件夹中的名字对应的改过来,反而会报错!这个问题的解决需要更改一堆的名字才可以得到正确解决(参考),而我只是想修改项目名而已,要是没有注意到这个,存在着手动误删文件的可能性,我不是,我没有。

    当然我不太清楚这算不算一个BUG,但是我个人十分不理解这个设计,也没有找到关于这个设计的好的解答。

  2. VS Code中对一个文件做了修改,但是没有保存,直接关闭VS Code,不会有保存确认信息,而且再次打开也是上一次做了修改的样子,但是本地用其他的编辑器打开文件并没有得到修改。即VS Code似乎在帮我记录修改的文件,但是之间关闭VS Code的时候不会提醒我修改没有保存。

    当然,我也同样不确定这个是bug还是我对VS的理解有问题,但是个人实验结果如下:

    修改后,直接关闭VS Code,用VS Code和VIM打开同一文件。结果如上图。

推荐指数:

VS:d)好,不错!

VS Code:e)非常推荐!!

VS我个人使用不是很频繁,主要是因为在自己电脑上运行比较吃力,而VS Code的轻量级给我带来了不错的体验,所以从个人观点出发,强推VS Code!

第二部分 分析

1. 使用此服务的所有功能,估计这个软件/网站/服务做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI支持)。

以VS Code为例,我在知乎上了解到这个研发团队是一个20多人的小团队,但是其中不乏大佬;不考虑众多的插件,就是一个裸版的VS Code,我觉得算上各种学习成本,3年的时间或许可以研制出来。

但是如果是VS,那么就不一样了,其所有的功能都实现,这六个人或许得007工作20年以上吧!毕竟VS已经2019了......

2. 分析这个软件目前的优劣(和类似软件相比),这个产品的质量在同类产品中估计名列第几?

如下,VS和VS Code名列前茅,可见微软“同类最佳工具”的说法不是空穴来风。

优劣分析

  • 优:

    • VS的最大优势就是一条龙服务,尽管体量大,看起来臃肿,但是这一整套都帮你安排的妥妥当当,自然受众会很多,而且几乎主流语言都支持,各种开发需求都满足,当然,最最重要的是,只要使用.net,那么VS就绕不开,整体走的是“宇宙级IDE”的道路!
    • VS Code因其插件的强大,现在不仅仅是一个简单的编辑器,更是一个除了不能生孩子,什么都能干的编辑器,打开知乎随便一搜就能找到许多各种各样的配置文章,而且其生态圈越来越好,使用者越来越多,适用范围也逐步扩展,简直是走的“一力(插件)降十会”的猛男道路!(作为一个编辑器在IDE排行中位列第四就说明了一切)
    • VS和VS Code的整体优势就是全面且不失效率。从两个角度出发,针对不同定位的用户,不论是团队还是个人,都很容易成为粘性用户。而且,其致力于打造一个无所不能的编辑器和IDE的想法也是越来越成功了,就说VS Code,甚至都支持了VIM,从某种角度,有了VS Code,你就有了VIM,进一步,你就有了一切,哇偶!
    • 我觉得还有就是历史遗留用户的粘性,很多人习惯了使用VS,就不太愿意再使用新的工具,不太愿意去增加学习成本,更愿意选择之前使用的IDE和编辑器。
  • 劣:

    • 如果用户不需要这么全面的功能,只需要一个方面,那么VS的体验或许就没有单纯的良好,jetbrains家族中的IDE是单一语言向,个人感觉其使用也更加丝滑,尤其是pyCharm。
    • 个人感觉VS的劣势主要是在对Java的支持上,所以才会被Eclipse夺去那么多用户,不过如果把所有的语言都支持了,那VS要上100G了。

4. 你在第一部分发现的bug,为何软件团队不能在发布前修复?他们是不知道,还是有意不修复?你觉得是什么原因?

  • 第一个bug:

    我猜测是没有注意到或者是有其设计的目的,一般不会有人有改了名字后看到旧文件就要删除的强迫症吧,然后发现文件全没了。

    对于第一个问题,我个人猜测是VS的设计理念就是想改名字就得一整套来,否则这些背后的工作就很难自动化,我在google上找到了类似的经历,不过也没有说明这样子设计的目的何在?

  • 第二个bug:

    第二个bug我更倾向于我不理解VS Code,因为如果直接关闭文件,会提醒保存,但直接关闭VS就不会,如果真是一个bug,那么我猜测是可能是被漏掉了

第三部分 建议和规划

市场

这个市场应该是巨大的,就目前而言,IT界的火热发展,使用编辑器和IDE的人不胜枚举。而且在目前盛行的编程思想下,学习和从事与编程相关的人员越来越多,市场也就越来越大。并且随着技术的发展,人们对于电脑的使用要求越来越高,IDE和编辑器可能也会慢慢被普通人所使用(其实编辑器已经在被广泛使用),这种情况下面向新手良好的IDE和编辑器我觉得会有很大的优势。各种新性行业的从业者都可能是潜在用户,所以市场前景应该是光明的!

目前市场上的产品

目前市场上的产品就是上面的TOP排序图(不全)中的各种IDE和编辑器,每一种都有其具体的受众,其中VS和VS Code合起来占比30%多,可以说占据绝对优势,不过,因为VS不支持Java,所以这块市场莫得办法,但是VS Code在这方面开始发力,支持Java,估计也会被更人多使用,所以整体上看微软的IDE和编辑器貌似处于大优势。

直接的竞争产品主要是Jetbrains的IDE系列和Eclipse,其中Eclipse目前占比17%多,除非微软能够显示出其IDE和编辑器巨大的优势,不然我估计这些用户大概率是一些历史遗留用户,陷于习惯,不想改变。

核心人员

使用IDE和编辑器的人大多是程序员(码农),他们往往是高学历,爱好技术,收入较高,表面的需求是IDE和编辑器工具时候好用,是否能够满足基本要求,甚至有超出预期的功能,这一点会很吸引用户。

而潜在的需求,我认为是对个性化和审美的需求,很多的程序员对于主题和定制有着强烈的需求,比如说我舍友,主题必然是暗色系,普通风格能逼疯他,也常常会加入一些自己的定制化,使得IDE与自己高度相配,透露出浓浓的B格!

这一点,我觉得VS Code就很棒,各种插件以及配置,完全打造自己需要的编辑器,尽管看起来有难度,但是网络上有的是教程,直接拿过来用也能获得很好的体验,我想这也是其越来越受欢迎的原因吧!

16周的开发

我会配置2个开发人员,2个测试人员,2个美工。

这里我更看重美工,因为我认为当前的文化,偏向于花里胡哨,技术做的很硬,但是没有人欣赏,不能吸引人的目光,那么就是很失败的。

按照正常的流程走:

前两周充分调研和设计开发计划(尤其调研用户的审美需求);

之后两轮的迭代开发:两周开发,两周测试;期间进行内测,改进项目;

剩余的六周,前两周用于全面测试和软件布置;

最后四周进行公测,根据反馈修改,完善项目。

公测期间进行增量维护和测试,同时进行市场调研,根据反馈来调整美工的任务。

当然,对于VS和VS Code,其基础的软件维护肯定是更重要的,不过我个人希望改善一下VS的界面会令人更加舒适。

2020BUAA-个人博客-案例分析的更多相关文章

  1. Linux内核分析第三周学习博客——跟踪分析Linux内核的启动过程

    Linux内核分析第三周学习博客--跟踪分析Linux内核的启动过程 实验过程截图: 过程分析: 在Linux内核的启动过程中,一共经历了start_kernel,rest_init,kernel_t ...

  2. json与api- 天气api 博客词频分析

    一.json基础 1.1 json的介绍 json现在成为各种程序与语言之间交互的一种数据格式,本质是文本,字符串. json有两种格式: 1.  类似字典  {k:v,k,v} 2.  类似列表 { ...

  3. [技术博客] BeautifulSoup4分析网页

    [技术博客] BeautifulSoup4分析网页 使用BeautifulSoup4进行网页文本分析 前言 进行网络爬虫时我们需要从网页源代码中提取自己所需要的信息,分析整理后存入数据库中. 在pyt ...

  4. “深度评测官”——记2020BUAA软工软件案例分析作业

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任建) 这个作业的要求在哪里 个人博客作业-软件案例分析 我在这个课程的目标是 完成一次完整的软件开发经历并以博客的方式记录开发 ...

  5. WebGIS博客文本分析(词频分析)手动扒取 去除格式 词语分割 统计分析

    1.      [置顶](一)开篇—杂谈WebGIS 摘要: 文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.前言 ...

  6. SQL优化之博客案例

    问题背景:博客首页随着数据量的增加,最初是几百上千的数据,访问正常,这是开发环境,当切换测试环境(通过爬虫已有数据六万多),这时候访问非常缓慢,长达一分钟. 问题SQL: SELECT DISTINC ...

  7. nodeJs学习-19 个人博客案例-(1)数据字典

    智能社视频27.28 数据字典: 定义: url 300字 admin_table 管理员用户表 ID username varchar(32) password varchar(32) banner ...

  8. nodeJs学习-17 博客案例

    源码:智能社视频20节课件 const express=require('express'); const static=require('express-static'); const cookie ...

  9. 如何写出高质量的技术博客 这边文章出自http://www.jianshu.com/p/ae9ab21a5730 觉得不错直接拿过来了 好东西要大家分享嘛

        如何写出高质量的技术博客?答案是:如果你想,就一定能写出高质量的技术博客.看起来很唯心,但这就是事实.有足够愿力去做一件目标明确,有良好反馈系统的事情往往很简单.就是不停地训练,慢慢地,你自己 ...

随机推荐

  1. 攻防世界 reverse 进阶 12 ReverseMe-120

    程序流程很清晰 1 int __cdecl main(int argc, const char **argv, const char **envp) 2 { 3 unsigned int v3; // ...

  2. Hi3559AV100 NNIE开发(6)RFCN中NNIE实现关键线程函数->SAMPLE_SVP_NNIE_Rfcn_ViToVo()进行数据流分析

    前面随笔给出了NNIE开发的基本知识,下面几篇随笔将着重于Mobilefacenet NNIE开发,实现mobilefacenet.wk的chip版本,并在Hi3559AV100上实现mobilefa ...

  3. kubernetes 降本增效标准指南| 容器化计算资源利用率现象剖析

    作者:詹雪娇,腾讯云容器产品经理,目前主要负责腾讯云集群运维中心的产品工作. 张鹏,腾讯云容器产品工程师,拥有多年云原生项目开发落地经验.目前主要负责腾讯云TKE集群和运维中心开发工作. 引言 降本增 ...

  4. Activiti工作流学习笔记(四)——工作流引擎中责任链模式的建立与应用原理

    原创/朱季谦 本文需要一定责任链模式的基础,主要分成三部分讲解: 一.简单理解责任链模式概念 二.Activiti工作流里责任链模式的建立 三.Activiti工作流里责任链模式的应用 一.简单理解责 ...

  5. CentOS 7.6部署Vue + SrpingBoot + MySQL单体项目

    对于独立的项目(前端.后台单体服务.数据库),部署到新服务器上时,常常需要繁琐的配置与环境安装,这里介绍Centos 7.6下如何搭建基于Docker的环境,以及如何使用docker部署一套Vue + ...

  6. Spring Authorization Server 全新授权服务器整合使用

    前言 Spring Authorization Server 是 Spring 团队最新开发适配 OAuth 协议的授权服务器项目,旨在替代原有的 Spring Security OAuth 经过半年 ...

  7. 「一站式」兼容所有云厂商文件存储Spring Boot 实现

    背景 在互联网发展的今天,近乎所有的云厂商都提供对象存储服务.一种海量.安全.低成本.高可靠的云存储服务,适合存放任意类型的文件.容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本. 当我们 ...

  8. 如果你的application.properties中还存在明文密码----加密Spring Boot中的application.properties

    1 概述 什么?都2020年了还在Spring Boot的配置文件中写明文密码? 虽然是小项目,明文也没人看. 明文简单快捷方便啊!!! 你看直接用户名root密码123456多么简单!!! ... ...

  9. 在IntellJ中查看JavaDoc

    1. [perference--Editor--General--Code Completion] 勾上Show the documentation popup in ** ms  2. 快速显示Ja ...

  10. Python 元编程 - 装饰器

    Python 中提供了一个叫装饰器的特性,用于在不改变原始对象的情况下,增加新功能或行为. 这也属于 Python "元编程" 的一部分,在编译时一个对象去试图修改另一个对象的信息 ...