Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实验IDE概念_Ide - Fatal编程技术网

实验IDE概念

实验IDE概念,ide,Ide,我对为一个辅助项目构建一个新样式的IDE感兴趣。主要是为了消除普通记事本上的类固醇IDE。我正在寻找一些灵感,这些灵感来自于已经尝试过的东西,或者您已经看到(或者没有看到)的东西,它们看起来很酷,并且在IDE中很有用。我能想到的是: Andrew Ko(以前是CMU,现在是华盛顿大学的教授)在他的论文中,大部分内容都是通过询问“为什么会发生某些事情”或“为什么他没有”来让人们进行调试。该项目被调用,他甚至有一个Java版本 跨网络的交互式代码更改如何?因此,您对代码进行了更改,并且更改会自动更

我对为一个辅助项目构建一个新样式的IDE感兴趣。主要是为了消除普通记事本上的类固醇IDE。我正在寻找一些灵感,这些灵感来自于已经尝试过的东西,或者您已经看到(或者没有看到)的东西,它们看起来很酷,并且在IDE中很有用。我能想到的是:


Andrew Ko(以前是CMU,现在是华盛顿大学的教授)在他的论文中,大部分内容都是通过询问“为什么会发生某些事情”或“为什么他没有”来让人们进行调试。该项目被调用,他甚至有一个Java版本

跨网络的交互式代码更改如何?因此,您对代码进行了更改,并且更改会自动更新到房间内好友的机器上。可能会产生一些有趣的开发技术。可能会导致完全的混乱,但是嘿!这是个好主意

编辑:我将对此展开讨论。当前的存储库系统(如SVN或TFS)在处理冲突时可能会变得非常烦人。如果另一个开发人员所做的更改可以立即反映在您的系统中,可能会以某种方式突出显示,那么就更容易知道什么不会弄乱


此外,当我编辑一个类的一个函数,而另一个开发人员向该类添加一个函数,以便TFS检测到冲突,我必须手动解决冲突时,这是一个真正的难题。最酷的是能够获得一个锁,而不是一个特定的文件,而是一个特定的范围。因此,我可以签出一个函数,并将文件的其余部分保留为可编辑状态

谈论这一点,我可能是一个很糟糕的人,因为我发现使用IDE就像在我的手臂上用铅锤编程一样,但我认为了解这一方面的情况可能会有用。人们提出的任何有趣或实验性的想法仍然需要处理开发人员工具的基本需求

IDE通常是某种类型的编辑器、调试器和编译器。由于这是该工具的三个不同部分,我将分别介绍它们

这是我想从一个编辑那里得到的
  • 快点。我从来都不想等待事情的进展。永远
  • 给我一些强大的方法来操作和跳转代码。我不在乎学习曲线,因为这是一个我平均每天使用10小时的工具,另一方面,我不想浪费时间去学习那些功能不强的工具
  • 给我一个打开文件的好方法。打开文件对话框不够好,项目树也不够好
  • 对同时打开多个内容的良好支持。我有一个27英寸的屏幕,标签是远远不够的。目前我住在分裂,但它不会很难想出更好的东西
  • 编辑代码时不要让我碰鼠标。再说一次,我不在乎学习曲线,我想要的是速度、效率和功率
  • 如果你给我一个可视化设计器,它会让我比打字更有效率,同时生成代码的灵活性与我用文本生成代码的灵活性相同。我还没有找到一个可视化设计器可以做到这一点,我使用过的每一个可视化设计器基本上都降低了学习如何做某事的门槛,但会让你在以后的工作中付出代价可维护性和灵活性。我把编程的每一个例子都看作是一个失败的图片,如果用于严肃的目的(即不只是敲打一些东西而不关心质量)
  • 自动重构。我现在正在使用vim,我错过的一件事是能够从其他方法中提取方法,或者点击一个按钮重命名某个对象,并对该工具的功能感到安全
  • 代码分析。我希望看到语法错误发生时,看看我是否输入了多余的代码,或者看看是否有更好的方法来做某事的建议
  • 优秀的测试跑步者。我练习TDD,而糟糕的测试跑步者会让我发疯,因为它对我做的每件事都有很大的影响
  • 我想从调试器中得到什么
  • 一个REPL。当我被困在visual studio时,这让我发疯,我可能在即时窗口中花费的时间比团队中的任何人都多。调试器的全部意义在于能够探索执行过程中发生的事情,如果我不能键入任意代码并查看其计算结果,我会觉得我的一只手被束缚在了我的后面背
  • 动态更改代码的能力,尽管有一个合适的REPL和语言,这类功能可以自行完成
  • 在执行过程中前后移动的能力
  • 速度,别让我等
  • 在代码中跳转的好方法。如果我在第1行,并且想跳转到第500行看看发生了什么,我应该能够做到这一点
  • 我想从编译器得到什么
  • 速度,至少在开发模式下是如此。谷歌go能够在笔记本电脑上以毫秒的速度编译500000个loc,这就是我所说的。如果需要编译语言,每秒钟盯着编译器输出都会让你做任何事情变得更加困难(跟踪bug、测试功能、运行测试等)
  • 您需要某种方法来连接任意方法以进行预执行和后执行,或者以更通用的方式预处理代码文件(想想lisp reader宏)。如果您不能使用该语言,则需要能够使用编译器来完成
  • 很好的分析。如果你以前不能理解的话,告诉我编译时我在哪里搞砸了
  • 透明度。我真的不想知道它在那里,除非我直接与它互动
  • 我所拥有的 目前,我使用vim,它给了我1、2、3(带有fuzzyfinder.vim/rails.vim)、4、5和一个非常差的8(带有syntastic.vim)。我没有重构或代码分析,我真的很怀念它,但在我看来,它更值得权衡

    对于调试,我使用ruby debug,这真的不是很好。基本上你可以得到1,2(ruby的原因比ruby debug多),和3,但就是这样

    任何时候都不要使用编译器