【问题标题】:How can I reduce the edit, compile, debug cycle?如何减少编辑、编译、调试周期?
【发布时间】:2010-11-26 20:43:03
【问题描述】:

在使用编译语言时,我总是遇到一件事情,(我使用 Delphi 和 FreePascal)繁琐的编辑、编译、调试循环。最近变得更糟的是,现在我开始害怕任何时候我必须进行一些更改,尤其是当它们只是轻微的 GUI 更改时。

在调试开始之前,我必须等待现在接近 60Mb 的启用调试的 exe 生成,我担心我开始出现 ADD 的迹象。我倾向于在做饭的同时做我能做的事情来进行开发。

问题是持续时间太长而无法盯着屏幕,又太短而无法在返回之前将注意力集中在其他东西上。

我猜对于编译语言来说,ObjectPascal 还不错,我相信对于 C++ 程序员来说更糟。

我可能必须获得具有 24Gb RAM 的六核 CPU 和最快的 SSD 才能使过程可以接受。一些托管服务提供商每月的费用约为 100 欧元。

现在开始营业

很简单,我正在考虑一种方法来分段创建应用程序,以便包含新功能的部分可以单独开发为独立程序,甚至可能是控​​制台程序。

这提出了如何传递过程参数和结果的问题,这些是最初想到的选项。

  1. 找到一种将简单变量、记录结构或对象自动转换为文本并通过命令行或管道传递它们的方法。也许这里可以使用 JSON、XML 或简单的名称-值对。在这里将参数设计为流式传输为文本形式的 TPersistent 对象可能是更好的选择。

  2. 与其使用命令行,不如让它们成为网络服务并以这种方式传递参数,或者可以使用所有新的 webby 东西使它们成为 RESTful/XML-RPC(我现在正在研究其中的一些东西)

  3. 最初将它们设计为 DLL - 我怀疑这会带来一系列不同的问题。

一旦它们经过良好测试,我就可以将它们合并到主要的可执行文件中。

我怀疑其他人以前遇到过这个问题,使用 ObjectPascal 或者其他语言,并且已经找到了缓解问题的方法。

如果我必须像往常一样做生意,使用接口之类的东西会有帮助吗?

我真的需要一些帮助,否则我可能不得不求助于 PHP(喘气!!)甚至 Java(更大的喘息!!震惊!恐怖!)或 Zen(不是编程语言)

【问题讨论】:

  • 不可以只重新编译改变的部分吗?至少在 Java 中,这是可能的:P
  • c# 中也存在增量编译 en.wikipedia.org/wiki/Incremental_compiler 。此外,c# / JAVA 的调试文件夹比 c++ exes 小一光年。这是因为 c++ 输出是原始 asm,需要 exe 文件中的大量内容才能被调试器成功解码。
  • 现在每个人都在抨击我:我使用 Smalltalk/X:它将各个方法的交互式即时字节码编译与批量编译相结合,以生成独立的 exe。它们在 Linux 和 Windows 上运行相同。
  • smalltalk 是我正在研究的东西。在编译之前,Smalltalk/X 是否像解释器一样工作?

标签: xml json debugging compilation xml-rpc


【解决方案1】:

将解释语言集成到您的应用程序中。如果您有与 C 兼容的语言(我不是 Delphi 或 FreePascal 方面的专家),您可以轻松集成许多常见的解释语言,如 Lua、Python 或 JavaScript。

同样,如果您因为更改了 GUI 而重新编译了整个东西,那么是时候改变您的构建过程了。将不同的模块编译到不同的库中,并且只重新编译有问题的库。这也有助于强制封装,因为一个 DLL 不可能调用另一个具有非导出函数的 DLL。

【讨论】:

    猜你喜欢
    • 2011-01-22
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    相关资源
    最近更新 更多