我一直在为我(如果愿意的话)编程语言开发C ++的口译员。我注意到的主要内容之一是:我从一个灵活的概念开始,而i编码(tokenizer-> parser->解释器)越远,整个系统的灵活性较小。

例如:我没有实施 include 起初功能,但解释器已经启动并运行 - 我在实施它方面遇到了极大的困难,就像以后“打出东西”一样。我的系统很快就失去了灵活性。

  • 我如何学会在开发过程中保持相对较小的C ++项目尽可能灵活和扩展?
有帮助吗?

解决方案

  1. 在开始编码之前,请定义项目的结构。概述您的主要目标,并考虑如何实现这一目标。

  2. 编码标题。

  3. 查看是否可以使用这组接口实现每个功能

  4. 如果没有 - >回到(2)

  5. 如果是 - >代码.cpp文件

  6. 享受。

当然,这不适用于真正的大型项目。但是,如果您的设计是模块化的,则不应该将项目分为单独的部分。

其他提示

如果您需要保留

C ++项目在开发过程中尽可能灵活和扩展

然后,您没有产品规范,您没有真正的目标,也无法定义成品。

对于商业产品,这是最糟糕的情况。用一位知名的博客作者(不记得谁)来诠释“您没有产品,直到您定义您不会做什么。”

对于个人项目,这可能不是问题。将其粉笔以体验并记住以备将来参考。重构并继续前进。

不要害怕进化(重构)。

如果有许多适合主题的类,请创建一个共同的基类。

而不是硬编码数据成员,而是将指针用于抽象基类。
例如,而不是使用 std::ifstream 采用 std::istream.

在我的项目中,我有用于阅读和写作的抽象课程。支持阅读和写作的类使用这些接口。我可以将专业的读者传递到这些课程的情况下,而无需更改任何代码。数据库读取器将从基本读取器类中继承,因此可以在使用读取器的任何地方使用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top