首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是好的(整洁的)架构,在编程一个简单的网站,例如一本联系书?

什么是好的(整洁的)架构,在编程一个简单的网站,例如一本联系书?
EN

Software Engineering用户
提问于 2011-04-19 19:06:23
回答 10查看 7.9K关注 0票数 28

当我构建一个简单的网站,例如我可以添加、删除和更新联系人的联系人簿时,我会创建一个index.php文件,在该文件中,如果用户没有登录,将被请求输入密码,如果他输入了正确的密码,则分配给他一个会话,并可以对这些联系人执行某些操作。

我有两份文件:

  1. 第一个(contacts.php)是要显示的HTML代码。在HTML代码之上,我包含了第二个文件并创建了类。
  2. 第二个(contacts_class.php)包含所有添加、删除和更新的方法。

我认为这没关系,但当涉及到实施一个大项目时,我应该如何去做呢?我是否必须为每个页面创建文件夹并将文件放入其中(如上面的HTML和类),我应该如何做呢?什么是一个好的、整洁的架构来构建每个其他程序员都能完全理解的大型项目?

EN

回答 10

Software Engineering用户

回答已采纳

发布于 2011-04-26 17:00:09

你提出了一个非常有趣和基本的问题。有关大型项目体系结构和文件夹结构组织的问题(这是体系结构的次要问题)。

今天,构建CMS框架体系结构的最常用方法是使用MVC模式。有一些关于构建您自己的MVC框架的好文章,其中之一是用构建MVC框架

MVC代表模型、视图、控制器。您可以将这些方法称为任何您喜欢的方法- MVC、HMVC、MVP。其本质是隔离系统的各个组件。"Controller“从”模型“中检索数据,并将它们发送到"View",后者呈现最终的HTML。您已经在contacts.php中实现了"V“,在contacts_class.php中实现了"MC”。因此,您已经将视图与模型和控制器隔离开来。现在,您可以轻松地更改您的“视图”,使其他部分保持原样。

我不是建议你盲目地遵循MVC,MVP或其他"MV“模式。这是适当的、有效的和品味的问题。

通用动态网站应用程序可以包括以下组件:

  • 入口点,比如index.php
  • 辅助库/类
  • 请求路由器
  • 模块、组件或控制器
  • 模板引擎或可能是单个视图

真正的web应用程序可能包括任何其他组件,如事件处理程序、事件调度程序和钩子,但这些实际上是细微差别。好吧,让我以我想要的方式呈现它:

共同框架操作例程如下:

  1. 浏览器请求直接发送到入口点可执行/脚本(index.php)。
  2. 入口点脚本加载助手库、类,并对我们的编程环境执行一些进一步的初始化。
  3. URL被传递给请求路由器实例。这个步骤可以是步骤2的一部分。
  4. 请求路由器解析URL并将操作分派给特定的组件、模块或控制器。
  5. 组件(或控制器)处理路由请求并将数据发送到要呈现的视图。

图表中显示了相应的项目文件夹结构。

我建议您研究其他框架是如何实现的。推荐的CMS /框架首先是CodeIgniter、OpenCart、Joomla1.5和Tango。

票数 68
EN

Software Engineering用户

发布于 2011-04-23 17:53:29

为了了解需要问的问题和可用的解决方案,我推荐Martin的企业应用体系结构模式书。你可以从读他的网站的书中了解到什么

请注意,这本书已经相当古老(在IT领域),但许多原则仍然有效,或者你应该学习他们的学习。(这说得通吗?)

(软件)架构是一门非常广泛的学科,不要指望有一个银弹,但总是有更多的问题和更多的疑问,直到时间和金钱耗尽,你必须坚持到目前为止最好的解决方案。

票数 2
EN

Software Engineering用户

发布于 2011-04-29 15:25:04

首先,看一看发展良好的项目。Wordpress是代码结构的一个非常简洁的例子:它简单易懂,但提供了大量的“插件”。所以wordpress很容易通过“插入”来建立。

第二,检查体系结构的一种非常简单的方法是尝试编写单元测试。例如,如果类"Card Deck“有一个”霉运()“方法,您必须能够创建一个预定义大小的Card Deck (即5张卡片1,2,3,4,5),调用混洗并以一种简单的方式验证结果(I.D)。1,4,2,5,3)

您必须能够在不实例化整个项目类的情况下完成测试,并且测试必须非常清晰。

如果您不能这样做,您必须在类之间添加层,重新构造它们,直到找到一种简单的方法。

然后,对项目的所有核心类重新设置此步骤。

最后但并非最不重要的一点是:一个好的体系结构在非核心类上可能“懒惰”(这是一个经济问题:设计得很好的东西在现实世界中花费太多)。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/80136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档