如何在实现和接口声明通常位于同一文件中的语言中有效地组织代码

时间:2012-08-13 08:52:08

标签: code-organization

我通常使用C和C ++编写代码,其中实现和声明位于不同的文件(.c / .h和.cpp / .hpp)中,但我经常在Haskell / Python / D中编码,而这种区别不存在。< / p>

我的问题是当我的代码趋于增长时,我很难清楚地了解文件内部的内容。我想念“通过观察.h而知道会发生什么”,并且会因为混乱的感觉而变得不知所措。

我解决这个问题的最佳方法是将折叠放入文件中,但我想知道你们是怎么做的?你有一些我还没试过的神奇解决方案吗?这只是一种心态吗?

4 个答案:

答案 0 :(得分:2)

我继续使用像你在C ++中那样的单独文件,就像Java在其他语言中强制执行一样,并且大量使用import / require / etc。仅仅因为它没有被语言强制执行并不意味着你无法系统地组织你的文件名和内容^ _ ^

答案 1 :(得分:1)

我认为没有神奇的解决方案,但以下提示可能有效

  • 使用班级
  • 为每个班级描述他们的责任
    • 记下每个班级中使用的数据
    • 记下每个班级使用的功能
  • 从小班开始,他们最终会成长
  • 当课程变得太大时,将它们分开。
  • 每个班级使用一个文件。
  • 拆分public / private中的方法/数据(使用约定_)

答案 2 :(得分:1)

对于Java,maven结构有点帮助。

src/main/java

表示您的主要代码 和

src/test/java

代表您的测试代码。

除此之外,我还遵循这个包结构。

构成核心api的所有接口都将位于以api结尾的包中。

实现将在以impl结尾的包中。

答案 3 :(得分:0)

我使用Java约定将给定名称的类和接口放在具有该名称的文件中尽可能多。我也使用Maven,它有一个默认的目录结构,如果你不得不查看其他人的项目,这是一个很难开始但非常有用。

  

你有一些我尚未尝试的神奇解决方案

我建议越简单越好。少记住。 ;)