需求调查人员(以下简称A):你好,我看了你的需求,我们会尽量使我们的系统会快一点,尽量快点。
客户(以下简称B):你用过VScode吗?
A:没有,我用过VS。
B:你既然用过VS,你是不是觉得VS的速度有点慢,比如说刚启动的时候。我觉得我想要的IDE最好快那么一点。
A:对,通常来说我们VS要载入一些库函数,一些文件——头文件之类的,就会需要一点时间。至于速度,我们可以对你的程序,我们会提前在你写的过程中就已经完成载入的一个过程,通过这些我们可以提升速度,除了速度以外还有什么需求?
B:既然你用的是VS的话,你会发现VS好像不能开发Java。那么我希望我的IDE可以开发这个世界上大部分流行的语言,流行的语言,我们不是有一个编程语言的使用的频率榜单,榜单的前十位差不多支持可以吗。
A:简单的去支持这几个语言的话,目前还是可以操作的,但是通过把你的CPP代码,我们平台直接转换成其他语言的代码。。。
B:这个需求我暂时还不需要。
A:那你就是不同的语言自己不同的写相关的代码,对吧。
B:就是这个IDE就要像VS和IDEA结合在一起一样,可以在我建立工程的时候选择我建立Java,还建立CPP的工程,甚至建立一个python的工程。 这些可以吗。
A:可以,我们会提供多语言界面平台,跨平台多语言。 贵公司是准备多少人同时运用这个软件?
B:大概30到50人,然后我们说到这个,我想起来就是我们公司不是在生产服务器上直接写代码,当然大部分公司都是这样子的,所以我希望我们的IDE最好支持在本地编辑代码,在一个能够在测本地直接连接到一个测试服务器上去,把我们的代码直接放上去编译。这样的话可以在本地进行一个跨平台那边,也可以放在服务器上编译,但我希望最好在本地进行编译,除非项目特别大,这个时候我们又可以有一个选项,特别大的项目,我们把它放到一个特别的生产集群上去编译,然后在提交到测试服务器上进行运行。
A:对,在IDE上编程的话,你们是不是有需求要几个人不同的编程,然后比如编写函数分别的部分,个人在自己的本地上写完,然后再弄到一起再编译,有没有需求。
B:这个需求的话——我们基本上是不会让两个人同时编辑一个文件,这次也许可以实现,当然这不是一个非常重要的需求,你们可以实现也可以不实现。支持两个人可以同时对一个文件进行编辑,看起来有点困难,我觉得也不是特别必要,但是对于同一个文件夹下的两个文件肯定是要支持的对吧。
A:好的,那你们对于环境的一些外观之类的,或者是。
B:你是指UI)界面吗,UI界面的话至少要有一个自定义的功能,如果能够根据当前的天气节日什么的信息进行一些自动的更换,我觉得是可也应该是不错的,这样就可以让我们的程序员心情好一点。
A:好的。每个人的代码风格不一样,我们是不是要提供一下。
B:这个服务当然是最好的,但是我们公司是有代码审核的需求的,不合审核的需求,我们代码都会打回去的,所以这方面的要求也不是特别高。你看说到这样子的话,我们是不是可以比如说我们公司里规定一个格式的文件,然后让IDE来检查这个文件,如果不合这个格式的话,直接有IDE提示,比如说画一条黄线,告诉你这边格式不大对。这个规则是我们可以自定义的。比如说Google的风格这样子。
A:对于团队协作来说,我们以前做过的项目有一些是提供一些聊天界面,或者交流界面。
B:聊天界面好像有点奇怪,我觉得这个没必要。 那一些功能性需求,比如说什么防疲劳或者是一些比如说我在一个文件上编辑了一个小时之后,它会弹出来一个提示条,让我们程序员休息一下,这个我觉得也是可以的。
A:屏幕使用时间提示。 那对于编辑界面来说,您觉得编辑界面对程序员的一些优化,需要吗?
B:你能说说大概有什么方向的优化吗?
A:比如说如果不做优化的话,就跟比如VS一样,全是由程序员来写,我们可以提供的优化,有一些对代码的算法的自动检测,然后是调试界面可能会更自动化,自动化调试。比如白盒测试、黑盒测试。
B:集成自动化测试?作为一个调试器的选项,我觉得最好是可以加上去。
A:贵公司需要我们多久提供你第一次检查或者是最终提交,或者每个月?
B:你觉得你们大概需要多长时间?
A:我们觉得至少需要半年时间才能写完。 写完嘛,然后提供一个最基础的可以运行的原型。
B:那么你们打算是用什么语言来进行程序的编写?
A:我们程序的编写会主要使用CPP或者Java之类的一些。
B:使用Java的话,这个程序效率如何呢?
A:目前还不知道。应该会慢一些。但是如果用Java,那么好像更省事。对于IDE运行的平台,你们有没有要求,只能pc还是要加上手机?
B:我希望能够提供这样,我希望的IDE是这样的,比如能在windows上实现完整功能,而在Linux上能够实现远程链接到一个地方以实现完整功能,也就是在离线的时候,他得至少是个编辑器,能用的编辑器,就像VScode remote一样。
A:那就是这个东西写出来之后,我们公司大概需要对你们提供多久的代码维护大概。就这个产品你们大概需要多久的使用年限,我们来进行维护。
B:后续和windows我们当前使用的主版本的结束维护时间再加两年。 你们能不能为你们的IDE提供一个比如说手机上的查看器,这样我们就可以在手机上使用这个东西直接查看,这样我们在外面的时候,也可以用我们手机进行简单的办公。
A:好的,跨平台查看。这个,你们这个跨平台IDE一般给哪些人用?初学者还是编程十年经验的适用人群?
B:通常而言,我们公司的程序员基本上都是两年经验。对于市面上基本IDE都有了解,他们至少对有一款IDE熟练掌握。对了,还得有可拓展性需求。
A:那么你们的计算机配置如何呢?我们要讨论一个系统占用的电脑资源大小。
B:比较宽松——跳过具体配置描述 比如说每一个代码的自动补全提示出来的时间必须在一百毫秒之内。 在典型的运行场景下,六小时能够六小时内出现的,比如说响应时间比较长的,大于300毫秒的,要少于几次
对话整理完毕 以下为需求整理 注意 显示出smart之处以斜体标出
-
目标需求
- 用户可以有效地基于这个smartIDE进行高效的多种流行代码编辑,调试与部署,能满足用户的业务需求以及提高用户的工作效率。
-
业务需求
- 具体而言,这个IDE应该支持全平台的代码查看,跨平台的编辑器,基于某个具体平台提供的交叉编译工具链。
- 它能提供有效的智能的代码自动补全。
- 它能有效地自动保存,不会因为意外断电导致严重损失。
- 它的调试器能够有效找到代码中问题。
- 多人合作,同时编辑。
-
功能需求
- 自动生成日志帮助具体调试。
- 兼容vim快捷键设置,允许自定义。
- 跨平台。
- 允许开发者自行开发插件。
- 自动补全。
- 自动保存。
- 自动内存泄漏检出。
- 兼容多种人机接口设备。
- 允许多人同时编辑同一工程,合并规则参见GitHub。
- 自动根据天气信息,节日信息更换UI风格,亦可自定义。
- 使用时间提示与统计。
- 系统要支持未来的升级——支持更多语言
- 提供简易代码模式,即可以通过自然语言的描述来让IDE进行自动代码构建的尝试
- 编译器检出代码错误后自动尝试根据以往相同错误码所对应的可能解决方案列出修补方案列表
- 自动代码风格匹配
- 根据个人代码命名风格提供更好的自动补全体验
-
性能需求
- 具体内存占用。。。
- 冷启动在2秒内完成。
-
约束与限制
- 开发在6月内完成,3月时应有原型出现。
- 编写使用Java。
- 支持大约5年的维护时间。
- 使用人群是相对有经验的人群。