Java 为每篇文章创建一个唯一的html文件是一个好的实践吗?

Java 为每篇文章创建一个唯一的html文件是一个好的实践吗?,java,mysql,jakarta-ee,Java,Mysql,Jakarta Ee,对不起,题目名称不好,我想不出更好的了 我正在从事一个新闻广播网站项目,利益相关者要求我为每篇文章创建一个唯一的html文件,并将其保存在磁盘上,而不是使用mysql之类的dbms,这样用户就可以直接访问该文件,而无需计算,这样就不会出现任何瓶颈。 我做到了。 我的问题是,这就是他问我的在编程方面的一个好的和流行的实践吗? 利与弊是什么 谢谢大家,也为我糟糕的英语写作感到抱歉:p如果你有一个模板,可以自动生成这些页面,这将是一个很好的练习。正如您所说,它可以防止服务器生成页面。它只需要通过普通页

对不起,题目名称不好,我想不出更好的了

我正在从事一个新闻广播网站项目,利益相关者要求我为每篇文章创建一个唯一的html文件,并将其保存在磁盘上,而不是使用mysql之类的dbms,这样用户就可以直接访问该文件,而无需计算,这样就不会出现任何瓶颈。 我做到了。 我的问题是,这就是他问我的在编程方面的一个好的和流行的实践吗? 利与弊是什么


谢谢大家,也为我糟糕的英语写作感到抱歉:p

如果你有一个模板,可以自动生成这些页面,这将是一个很好的练习。正如您所说,它可以防止服务器生成页面。它只需要通过普通页面

如果您需要更改布局,或者需要编辑文章,您可以重新生成页面

这是很常见的,尽管很多页面总是有一些动态内容,比如日期、用户信息或其他特定于会话或时间的数据。在这种情况下,不能缓存整个页面。当然你可以把两者结合起来。具有动态索引页和首页,并且只缓存实际文章本身。但我在你的问题中读到,这就是你现在所做的

优点:

更快地检索网页 减少Web服务器上的负载 减少数据库服务器上的负载 缺点:

当一篇文章被修改时,需要做一些额外的工作来更新缓存 页面中不能有任何动态内容 可能根本没有问题。大多数Web服务器都能够为大量动态页面提供服务过早优化是万恶之源。 还有其他方法可以加快速度,但没有上述缺点。您可以在Memcache中缓存查询结果和/或使用APC缓存来加速PHP代码并减少磁盘I/O。
但也有一些网站托管公司完全致力于提供静态内容。静态内容也可以从服务器内存中存储,这使得它比APC缓存的动态内容更快,因此,如果您真的需要性能,是的,这是一种方法。但是我很怀疑你会这样做。

如果你有一个模板,可以自动生成这些页面,这是一个很好的实践。正如您所说,它可以防止服务器生成页面。它只需要通过普通页面

如果您需要更改布局,或者需要编辑文章,您可以重新生成页面

这是很常见的,尽管很多页面总是有一些动态内容,比如日期、用户信息或其他特定于会话或时间的数据。在这种情况下,不能缓存整个页面。当然你可以把两者结合起来。具有动态索引页和首页,并且只缓存实际文章本身。但我在你的问题中读到,这就是你现在所做的

优点:

更快地检索网页 减少Web服务器上的负载 减少数据库服务器上的负载 缺点:

当一篇文章被修改时,需要做一些额外的工作来更新缓存 页面中不能有任何动态内容 可能根本没有问题。大多数Web服务器都能够为大量动态页面提供服务过早优化是万恶之源。 还有其他方法可以加快速度,但没有上述缺点。您可以在Memcache中缓存查询结果和/或使用APC缓存来加速PHP代码并减少磁盘I/O。
但也有一些网站托管公司完全致力于提供静态内容。静态内容也可以从服务器内存中存储,这使得它比APC缓存的动态内容更快,因此,如果您真的需要性能,是的,这是一种方法。但我很怀疑你会这样做。

肯定不是一种常见的做法,我也不会这样做。特别是由于瓶颈的原因,你不会有任何瓶颈。也没有任何性能问题。您的站点可能会获得多少独立访客?几十万

事实上,从磁盘读取更可能是一个问题。数据库操作可以优化,缓存在内存中,等等-数据库服务器执行各种优化。另一方面,每次读取文件或自己处理缓存

通常和首选的方法是:

从数据库存储和加载内容 具有页面的模板页眉+页脚,并且仅插入内容 有一个管理面板,里面有一个尽可能丰富的编辑器,你可以修改文章的内容
这绝对不是一种常见的做法,我也不会这样做。特别是由于瓶颈的原因,你不会有任何瓶颈。也没有任何性能问题。您的站点可能会获得多少独立访客?几十万

事实上,从磁盘读取更可能是一个问题。数据库操作可以被优化,缓存在内存中,等等 er执行各种优化。另一方面,每次读取文件或自己处理缓存

通常和首选的方法是:

从数据库存储和加载内容 具有页面的模板页眉+页脚,并且仅插入内容 有一个管理面板,里面有一个尽可能丰富的编辑器,你可以修改文章的内容
静态页面适用于小型网站。如果你有机会的话,去做吧,但是如果你需要复杂的操作,动态页面结构应该是一个不错的选择

对于一个文章站点,我会选择动态页面,因为这个概念是动态的,你需要更新站点,添加新文章,可能添加新功能,比如评论,用户活动等

直接从管理面板添加/删除/编辑文章更容易,使用静态页面时,您必须通过html代码找到方法


这个列表会一直持续下去……

静态页面对小型网站很有好处。如果你有机会的话,去做吧,但是如果你需要复杂的操作,动态页面结构应该是一个不错的选择

对于一个文章站点,我会选择动态页面,因为这个概念是动态的,你需要更新站点,添加新文章,可能添加新功能,比如评论,用户活动等

直接从管理面板添加/删除/编辑文章更容易,使用静态页面时,您必须通过html代码找到方法


如果没有一个像样的模板系统,你将不得不将整篇文章、页面布局和样式存储在一个文件中


这意味着,很难更新所有已发布文章的外观,如果您想查询文章列表并返回某个特定作者或特定类别的列表,您也会有点卡住。

如果没有半标准的模板系统,您必须将整篇文章以及页面布局和样式存储在一个文件中


这意味着,要更新所有已发布文章的外观是很困难的,如果您想查询文章列表并返回一个列表,例如来自特定作者或特定类别的列表,您也会有点卡住。

如果您认为它是数据库的替代品:不,这不是一个好的做法。你丢失了很多信息,以后编辑页面会更困难,同时设置索引搜索功能


如果您认为它是一种缓存解决方案:那么是的,这是一种很好的实践,也是一种常见的技术。但是,请考虑如何进行缓存,何时用新版本替换文件,并且仅当您对页面的写访问和读访问很少时才进行缓存,这对于文章站点来说是典型的^^

如果您将其视为数据库的替换:不,这不是一个好的做法。你丢失了很多信息,以后编辑页面会更困难,同时设置索引搜索功能


如果您认为它是一种缓存解决方案:那么是的,这是一种很好的实践,也是一种常见的技术。但是想一想如何进行缓存,什么时候用新版本替换文件,并且只有当您对页面的写访问和读访问很少时才进行缓存,这对于文章站点来说是典型的^^

我开始问自己为什么涉众会要求您以这种方式实现系统。只要您的系统满足要求,他/她为什么会在意?对此,有两种可能的答案:

利益相关者有点控制狂;e、 一个喜欢干涉开发者工作的前技术人员。 利益相关者过去有过不好的经历;e、 在以前的系统中,内容被锁定在数据库中,前端笨重,用户的生活陷入了地狱。 从这个角度来看,您将如何解决这个问题?我的理解是,你需要弄清利益相关者为什么要求这样做。他有什么真正的担心吗?你能在系统设计中解决这个问题吗

底线是,这一最佳实践并不是这里最重要的标准。可以说,客户想要什么或客户需要什么更重要

我认为你需要做的是:

找出利益相关者真正关心的是什么。 与他/她和其他利益相关者讨论解决这些问题的设计方案。向他们展示备选方案和对其影响的诚实评估,并让他们参与决策。
我开始问自己,为什么利益相关者会要求您以这种方式实施系统。只要您的系统满足要求,他/她为什么会在意?对此,有两种可能的答案:

利益相关者有点控制狂;e、 一个喜欢干涉开发者工作的前技术人员。 利益相关者过去有过不好的经历;e、 g.在以前的系统中,内容通过unw锁定到数据库中 ieldy前端让用户的生活陷入地狱。 从这个角度来看,您将如何解决这个问题?我的理解是,你需要弄清利益相关者为什么要求这样做。他有什么真正的担心吗?你能在系统设计中解决这个问题吗

底线是,这一最佳实践并不是这里最重要的标准。可以说,客户想要什么或客户需要什么更重要

我认为你需要做的是:

找出利益相关者真正关心的是什么。 与他/她和其他利益相关者讨论解决这些问题的设计方案。向他们展示备选方案和对其影响的诚实评估,并让他们参与决策。

对于回复,如果一篇文章或新闻的热度很高,那么它可能会被要求上千次,而我认为这可能会导致高负荷,你是对的,关于瓶颈,我怀念使用的术语@戴夫-如果从磁盘读取多次,你可能会遇到更大的问题。我想我把你弄丢了:-?你的意思是dbms使用某种缓存?如果没有,那么它与从磁盘多次读取的情况有什么区别?它可能使用。但是无论如何,db解决方案是所有CMS系统都使用的解决方案。thnx作为回复,如果一篇文章或新闻的热度很高,那么它可能会被请求数千次,我认为这可能会导致高负载,你说得对,关于瓶颈,我错过了使用这个术语@戴夫-如果从磁盘读取多次,你可能会遇到更大的问题。我想我把你弄丢了:-?你的意思是dbms使用某种缓存?如果没有,那么它与从磁盘多次读取的情况有什么区别?它可能使用。但是无论如何,db解决方案是所有CMS系统都使用的解决方案。thnx用于回复,对于查询手段,我有一个包含文章id的序列化映射,这也是它们的名称,我用该映射获得文章列表,但是它有自己的困难来处理i/o,正如你所说的,对于回复,对于查询手段,查询有点困难,我有一个序列化的映射,其中包含文章id,这也是他们的名字,我得到了该映射的文章列表,但它本身在处理i/o时有困难,正如你所说的,查询HNX对于回复来说有点困难,我想我在这里有一个折衷,长远来看性能更好,与地狱般的编程问题相比。顺便说一下,我动态生成这些静态页面。thnx对于回复,我认为我在这里有一个折衷,与地狱般的编程问题相比,远程性能更好。顺便说一下,我动态生成这些静态页面。thnx对于回复,你说的是我想要做的,我听说像英国广播公司和美国之音这样的大新闻机构也做同样的事情,我不确定你的回答,你所说的就是我想做的,我听说像英国广播公司和美国之音这样的大新闻机构也做同样的事,我不确定好的问题,有人告诉他,大型新闻机构使用这种技术是为了吸引大量的访问者,所以他要求我们这样做,作为网站的主要功能之一。@dave-噢,天哪。。。这是个问题。我想我会对技术备选方案进行研究,详细阐述,并撰写您对利弊的最佳评估。如果他仍然坚持以客观上对其他项目目标和/或约束有风险的方式实施该系统,我会让他签字确认,他承认以自己的方式实施该系统的风险。好问题,他被告知,大型新闻机构使用该技术是为了超过其庞大的访客,所以他让我们这样做,作为网站的主要功能之一。@dave-哦,天哪。。。这是个问题。我想我会对技术备选方案进行研究,详细阐述,并撰写您对利弊的最佳评估。如果他仍然坚持以一种客观上对其他项目目标和/或约束有风险的方式实施系统,我会让他签字确认,他承认以自己的方式实施的风险。