组织代码,分段文件的逻辑布局

时间:2010-03-28 04:20:12

标签: project-management project-planning code-organization

我已经对编程有足够的了解,让我陷入困境大约10年了。我没有接受过正规教育,虽然我已经阅读过很多关于这门课程的书籍。我现在主要关注的语言是PHP,至少对于我现在正在做的事情的规模。

我已经使用了一些OOP课程,但从未深入了解幕后原理。我仍然没有达到我希望表达方面的水平,但是我最近阅读的这本书The OOP Thought Process让我想要提高我的编程技巧。

在新概念的激励下,我开始了一个新项目。我编写了一些可重用的类来处理用户身份验证,用户配置文件,数据库接口以及我在大多数项目中经常使用的其他一些东西。

现在已经将我典型的乱码意大利面条混乱分解成有些有组织的文件,在确保文件全部包含在需要时,我遇到了一些问题,如何在逻辑上划分脚本进入课程,以及我应该如何细分每个班级。

我真正要求的是建议或建议的阅读,不是关注代码的特定功能和格式,而是关注比业余爱好项目更大的项目的逻辑布局。

我想学习如何正确地做事,虽然我还在某些领域学习,但除了创造性和试验/错误之外,这是我不知道的事情。大多是错误。

感谢您的回复。这个地方很棒。

1 个答案:

答案 0 :(得分:0)

我会尝试从以前的项目中表达我的经验,也许他们会帮助你。

如果您尝试细分项目,请尝试查找可能有用的组件。如果你写,例如在数据库层,考虑如何使数据库层独立于应用程序的其余部分(实用程序类和配置除外)。如果您编写了一个访问数据库层的RichClient,请尝试将您需要的内容准确地放入其中,从Web层访问它时也需要这些内容。现在你有了一个在命令行客户端甚至可能有用的组件。

或者,如果您想从较低级别看到这一点,请将您的应用程序拆分为小单元,不要让这些单元具有循环依赖关系! !!如果两个组件具有循环依赖关系,则它们不能被拆分,并且实际上应该是单个组件。我知道,有些时候我违反了这个规则,因为你总是无法忍受它,但是了解你的应用程序的构建块是一个很好的规则。

应用程序的另一个流行的划分规则是模型 - 视图 - 控制模式(MVC),它指出Model(数据类),Control(程序的逻辑)和View(图形用户界面) )应该拆分成不同的包。虽然我坚持这一点,但我会像这样划分我的代码。在每个包中,我有不同的模型,视图和控件类,但模型类对控制层一无所知,控制层对GUI没有任何了解。

由于GUI开发总是很乏味,因此通常是应用程序中经过最少测试的部分(至少在单元测试中),将它从控件中分离出来使得编写商务逻辑变得更加容易。实际上,它可以让您专注于您必须做的事情,即完成工作,您可以在商务逻辑中进行编码。如果这部分有效,你可以花时间为它编写一个漂亮的GUI。当然,GUI和易用性通常会给控件带来自己的要求,但至少它的松散耦合。

在我目前的大型项目中,我们有一些组件,我们现在将其视为独立产品,真正用于产品。这使得负责人更容易测试和编写独立组件,并为每个人提供更稳定的组件。

只是我的2¢。