因此,我在研究支持遗留系统的困难方面进行了研究,并且发现了一个显而易见的观点,我完全没有注意到这一点。
IDE用户和IDE开发人员在理解其工具时遇到问题。 直观地使用,无论如何。 令人惊讶的是,这种使用几乎与无知相抵触,尽管它在论坛上引起了相应的嘲讽。
现在,我们将分析使用工具开发事物的方式,“ IDE”概念出了什么问题以及应该出现但尚未开发的工具。

Ë
不会发现不同项目的环境会有所不同。 即使它们在一个堆栈上工作。 可以使用:
- 与用户进行交互的方式不同,这在项目的开始方式和测试方式上存在很大差异。 (CLI,TUI,Web枪口,Qt,GTK等意义上的GUI)
- 不同的测试框架(在Python中,一个项目中的unittest,在相邻项目中的pytest)。 多级测试的绑定(例如,将独立测试的结论结合在一起,并通过TAP进行集成)也落在这里。
- 不同的VCS,但是在某些地方可能有混合动力(Git,在特殊情况下作为Subversion的客户端)。
- 可以使用同一项目,包括各种编辑器。 例如,Vim或nano用于在Git中编辑交互式重新编制脚本,用于编辑带有部分更改注册的块。 或从根目录下编辑配置。
而且这些都不是所有选择,我认为任何有两个或两个以上项目经验的开发人员都可以抛出更多类似的示例。 我经常以“我如何花两天时间为新工作设立项目”的故事形式听到他们的声音。
由此我们可以得出结论, 开发环境的布局和配置在任何情况下都取决于用户。
整合?
鉴于以上所述,考虑不是“集成”环境,而是“可集成”环境是有意义的。
然后,从用户的角度来看,一个好的集成工具是:
- 环境设置很快。
- 其配置可以存储和传输。
- 能够提高“一键式”工作环境的能力。
例如,经验丰富的Unixoid通常会将“过渡到工作模式”减少到一个团队。
这里的“快速”并不意味着“对于初学者来说容易”。 我个人在这个问题上的立场是: 问题解决方案的复杂性对任务本身的复杂性的依赖性至少应该是线性的。
另一个不明显的地方:界面可能不统一。
最常见的示例是在项目中同时使用GUI和CLI。
我谈到了在一个项目中的相同环境中使用多个编辑器的情况。
发展历程
现在,我们可以直接使用工具本身。
反应堆浏览器
仅仅因为有条件地没有重构,就不可能创建功能强大且通用的浏览器重构。
毕竟, Fowler的书是围绕Java构建的,只需要很少的步骤即可。 此外,重构技术还附加到“样式语言库”上下文中 ,以至于每个程序员都在现场生成重构技术。
我相信可以从遍历代码段中的数据树的角度来描述重构的基本原理,并且已经可以从中汲取具体技术 。 为此,浏览器重构实现应具有:
- 易于扩展的界面 (以显示开发人员为满足其特定需求而创建的技术)
- 必须隐藏分析器,基础(上述原理)和编辑方案,以使开发人员有机会扩展技术集,而不必进入编辑的胆量。 也就是说,DSL用于描述重构技术。
- 由于可扩展性之后将急剧增加接收数量,因此对于显示来说,必须考虑上下文范围,以便在选择菜单中仅显示适用于特定情况的操作。
运行时数据树分析。
这个方面是关于结合调试和文本编辑的。 实际上,对于绝大多数语言而言,为了检查更改如何影响程序,必须显式重新启动程序。 更容易,更直观(从而减少了可能的错误),有可能在单个空间中看到代码的调试部分中的整个数据数组如何 随代码的编辑而变化 。
这种针对不同语言的工具的开发在复杂性上差异很大,这不仅是语法,类型系统和性能特征的问题,而且还涉及每种语言的本质。 对于数据驱动语言,构建它要容易得多。 示例:正则表达式构造函数,在此过程中,您可以立即查看正则文本覆盖文本的哪些部分。
我认为,此不完整列表中最重要的项目。
我们将开发人员直接进行编程所需的所有信息分为两大类
首先, 为了简化程序员的工作,应直接从编辑器窗口访问文档。
各种IDE和编辑器都能很好地解决此问题:Microsoft,Emacs及其信息模式的特定于语言的IDE,Frescobaldi,Sunny Builder; 既可以集成到源中,也可以集成到外部。 但是,许多库和框架现在仅在网络上上传其文档和/或使用不同的格式来存储文档,这使得可能集成到单个界面中变得复杂。
第二组更有趣。
它涵盖了整个编程和开发方面的知识,以及特定于特定语言/堆栈的方法。 目前,Stack Overflow几乎完全抓住了这一利基,甚至将其集成到IDE中,但是那里的专业知识质量通常很低 。 永远来说,选择正确的决策,错误,把戏并将其减少到用户需要解决自己的问题时可以联系的特定基础,效率将大大提高。
此外,现代的分析仪还可以警告可能的,尚未落实的错误。 也就是说,实际上,从技术角度来看,我们拥有为开发人员创建专家系统所需的一切,从而为他们在编写/编辑代码时提供解决方案。 缺少的只是决策基础/方法/错误本身。
结论
因此,摘要:
- 重构浏览器的开发应基于对数据树的操作,并简化为类似于DSL的脚本描述,以进行自动代码编辑。
- 运行时分析器应在编辑和编写程序期间即时显示数据更改。 也就是说,JAI方法可以应用于其他编程语言。
- 从用户案例中删除Web浏览器,作为搜索和阅读文档的一种方式。
- 我们需要开发插件(由于环境是多种多样的)专家系统,以帮助开发人员在流程中做出决策。