使用编译语言(我使用Delphi和FreePascal)时,总是有一件事情是繁琐的编辑,编译,调试循环。它最近变得越来越糟糕,现在我开始害怕整个过程,只要我做一些更改,特别是当它们只是微小的GUI更改时。
我必须等待现在接近60Mb的调试启用的exes,每次在调试开始之前生成,我恐怕我开始显示ADD的迹象。我倾向于在烹饪过程中用平均时间做的事情来进行开发。
问题是持续时间太长而无法盯着屏幕,而且太短暂而无法在回到它之前给予别人注意。
我想对于编译语言而言ObjectPascal并不坏,我相信对于C ++程序员来说更糟糕。
我可能必须得到一个带有24Gb RAM的十六进制核心CPU,以及最快的SSD,以使该过程可以容忍。一些托管服务提供商每个月大约需要100欧元。
现在开始营业
很简单,我正在考虑一种在部分中创建应用程序的方法,以便包含新功能的部分可以作为独立程序单独开发,甚至可以作为控制台程序。
这提出了如何传递过程参数和结果的问题,这些是最初想到的选项。
找到一种方法可以将简单变量,记录结构或对象自动转换为文本,并通过命令行或管道传递它们。也许这里可以使用JSON,XML或简单的名称 - 值对。将参数设计为流式传输为文本形式的TPersistent对象可能是更好的选择。
而不是使用命令行,使它们成为网络服务并以这种方式传递参数,或者可以使用所有新的webby东西使它们成为RESTful / XML-RPC(我现在正在研究其中的一些内容)
最初将它们设计为DLL - 我怀疑会带来一系列不同的问题。
一旦经过充分测试,我可以将它们合并到主要的可执行文件中。
我怀疑其他人之前遇到过这个问题,使用ObjectPascal和其他语言,并找到了解决问题的方法。
如果我必须像往常一样开展业务,会使用类似接口的东西吗?
我真的需要一些帮助,否则我可能不得不诉诸PHP(喘息!!)甚至Java(更大的喘息!!震惊!!恐怖!)或Zen(不是编程语言)
答案 0 :(得分:1)
将解释语言集成到您的应用程序中。如果你有一个C兼容的语言(我不是Delphi或FreePascal的专家),你可以轻松地集成许多常见的解释语言,如Lua,Python或JavaScript。
同样,我会说,如果你因为你做了一个GUI更改而重新编译整个事情,那么是时候改变你的构建过程了。将不同的模块编译到不同的库中,只重新编译有问题的库。这也有助于强制封装,因为一个DLL不可能使用非导出函数调用另一个DLL。