我一直在为我的(深奥的,如果你想要的话)编程语言开发一个C ++解释器。我注意到的主要问题之一:我从一个灵活的概念开始,进一步的I代码(Tokenizer-> Parser-> Interpreter)整个系统的灵活性越低。
例如:我最初没有实现include
函数,但解释器已经启动并运行 - 我在实现它时遇到了极大的困难,这就像之后的“修补一些东西”。我的系统很快失去了灵活性。
答案 0 :(得分:1)
如果你需要保留
C ++项目在开发过程中尽可能灵活且可扩展
那么你没有产品规格,你没有真正的目标,没有办法定义成品。
对于商业产品来说,这是最糟糕的情况。用一位知名博主(不记得是谁)来解释“在你定义不打算做什么之前,你还没有产品。”
对于个人项目,这可能不是问题。用它来体验并记住以备将来参考。重构并继续前进。
答案 1 :(得分:0)
在开始编码之前定义项目的结构。概述您的主要目标并思考如何实现这一目标。
对标题进行编码。
看看是否可以使用这组接口实现每个功能
如果没有 - >回到(2)
如果是 - >代码.cpp文件
享受。
当然,这不适用于真正的大型项目。但如果您的设计是模块化的,那么将项目划分为单独的部分应该没有任何问题。
答案 2 :(得分:0)
不要害怕进化(重构)。
如果有许多类适合主题,请创建一个公共基类。
不使用硬编码数据成员,而是使用指向抽象基类的指针
例如,不要使用std::ifstream
使用std::istream
。
在我的项目中,我有阅读和写作的抽象课程。支持读写的类使用这些接口。我可以将专业读者传递给这些类而无需更改任何代码。数据库阅读器将继承自基础Reader类,因此可以在使用阅读器的任何地方使用。