我开发了当前的项目架构,并开始自行开发(达到revision 40
)。
我们正在开发一个简单的地铁路线框架,我的设计似乎做得非常好- 几个主要模型,相应的视图,主要逻辑和数据结构均按“应有的方式”建模,并且与渲染完全分离,并且还实现了算法部分除了主要模型之外,交叉点数量很少。
我将这种设计称为可扩展,可定制,易于实现的设计,它主要基于“黑匣子交互”进行交互,而且很好。
现在,完成了什么:
- 我开始了相应接口的一些实现,移植了一些方便的库,并为一些应用程序部分编写了实现存根。
- 我有描述编码风格的文档以及该编码风格用法的示例(我自己的书面代码)。
- 我强迫使用或多或少的现代
C++
开发技术,包括no-delete
代码(通过智能指针包装)等。 - 我记录了具体接口实现的目的以及应如何使用它们。
- 单元测试(大多数情况下是集成测试,因为没有很多“实际”代码)和所有核心抽象的一组模拟。
我缺席了12天。
我们现在拥有什么(该项目是由团队的其他4位成员开发的):
- 3个不同的编码风格遍布项目(我猜,他们两个人同意使用相同的样式:),同样适用于我们的抽象的命名(例如
CommonPathData.h
,SubwaySchemeStructures.h
),它们基本上头宣布了一些数据结构。 - 绝对缺乏有关最近实施的零件的文档。
- 我最近称之为“
single-purpose-abstraction
现在”的事件至少可以处理2种不同类型的事件,与其他部分的关系紧密等等。 - 现在,一半的已使用接口包含成员变量
(sic!)
。 - 原始指针的用法几乎无处不在。
- 单元测试已禁用,因为“
(Rev.57) They are unnecessary for this project
”。 - ... (可能不是全部)。
提交历史记录表明,我的设计被认为是一种过大的技巧,人们开始将其与个人自行车和重新实现的车轮结合起来,然后在集成代码块时遇到了问题。
现在-该项目仍然只执行其少量工作,我们存在严重的集成问题,我假设有一些内存泄漏。
在这种情况下有什么办法可以做?
我确实意识到我的所有努力都没有任何好处,但是截止日期很快就到了,我们必须做些事情。有人有类似情况吗?
基本上,我认为为该项目做好一个良好的开端(好吧,我已尽力)可能会带来一些好处,但是,我知道我错了。