我应该自己编写CMS吗?

7
我计划在今年六月开始着手我的第一个个人项目:关于学生的社区。我想要一个维基,里面装满有关大学的信息;一个论坛,人们可以在里面讨论;以及一个博客,其中包括新闻、文章等等。这三种功能需要相互整合。
现在看来,最好的选择似乎是使用WordPress + MediaWiki + 一些论坛软件。但是我一直在考虑尝试亲自编写CMS。我知道一些RoR和PHP的知识,但并不足以从头开始编写自己的CMS。
你认为我需要多长时间才能完成它呢?我估计每天会花费3至5小时,并希望在8月底之前将整个网站建立并运行起来(这样我就有约300个工作小时,同时还计划花些时间什么都不做!: P)。
问题是,这是否值得呢?这能帮助我提高编程技能吗?

请访问www.moodle.org。 - CheeseConQueso
16个回答

7
根据你的目标,使用Drupal可以很容易地实现,并且只需要做出最少的工作。
www.drupal.org
论坛和用户博客已经内置,我相信我在某个地方看到了一个维基模块。
然而,如果你想要一个学习体验 - 自己动手做将是一个非常好的学习体验。无论你是否真正完成它,你最终会更好地理解RoR和/或PHP。

2
我不喜欢跟风,只是为了整合一堆标准的CMS/社区功能,Drupal可能是最快的启动方式。 - Sean McSomething
1
我的意图不仅仅是尽快准备好网站。我不只想成为一个成功的网络管理员,赚得越多越好! :) - user103798
1
创建自己的模块,或对现有模块进行非常酷的定制。你仍然可以学到很多东西。 - McAden

7

自己动手做:)

你将获得宝贵的经验,而且最终你将得到一个不臃肿的东西...


6
你可以自行决定要做什么,但你应该实现像Drupal这样的东西。
Drupal是一个用于社区网站的CMS。它不是最容易理解和使用的系统,但它非常可定制。
以下是一些参考资料,可以帮助你开始学习Drupal:http://www.packtpub.com/drupal/book http://drupal.org/node/367131 每当你必须在编写自己的内容和使用现有软件之间选择时,你需要考虑四个关键因素。
1. 它有多复杂? 2. 现有系统与我的需求有多匹配? 3. 实施现有系统与编写自己的系统哪个成本更低? 4. 我需要多快?
如果它不是很复杂,没有其他系统能很好地满足你的需求,创建它(时间和金钱)的成本较低,并且你不需要立即使用它,那么请继续做自己的事情。
否则,请加入现有的开源CMS并开始在其中做出贡献。你不仅会得到来自经验丰富的程序员的反馈,还将成为一些真正惊人的软件的一部分。

5
我处于类似的情况,尽管规模较小。我需要一个.net博客软件,但现有的软件并不是很好,所以我开始自己开发。以下是我的想法:
  1. 不要试图制作一对一的复制品。自己开发可以让你实现你需要的内容并省略其他所有内容。
  2. 从小做起。WordPress和MediaWiki已经有多年的编码经验。试图自己复制这个过程是不行的。
  3. 博客和论坛一开始非常简单,但一旦涉及到WYSIWYG编辑器、反垃圾邮件技术、浏览器兼容性问题等问题,就会变得非常复杂。
  4. 这是获得语言和“企业”技术严肃经验的好方法,但如果你经验不足并且有截止日期,你应该首先考虑扩展市场上已有的东西。

如果你愿意在一开始时少走弯路,我认为在300小时内构建CMS是可行的。但是不要开始考虑像插件架构、管理员的良好用户体验和文档这些重要的点,如果你想将你的CMS发布给其他人,这些点非常重要,但对于内部使用来说不那么重要。


1
+1,还有一些建议:避免花里胡哨的东西。不要只提供单选按钮。省略控制面板,因为你可以自己更改代码和INI文件。Drupal必须假设其网站管理员对代码过敏,但你不需要这样做。 - Nikhil

4

不要重复造轮子,除非你想更多地了解轮子。

我建议你专注于学习每个工具以及如何将它们集成在一起,而不是编写一个CMS。


3
他有点说他对学习轮子感兴趣,通过询问它是否会提高他在这个领域的技能。 - Kris

3
作为一名真正的开发者,您会希望进行大量定制。很多预打包的CMS /博客都有插件系统,但对我来说,当我必须通过数据库条目向系统注册我的代码时,它们都感觉有点奇怪。
老实说,我曾经用WordPress写过自己的博客,用PHP重写过一次,然后又用Django重写了两次。
每次都更快,每次都想做更多的事情,每次都学到了关于那些创建非常庞大的项目所必须面临的可用性和安全性问题的知识。
这些重写是一次宝贵的经验,我永远不会接受“不要重复造轮子”的论点。我感觉我可以看着一个轮子告诉你它哪里有问题,因为我亲自发明了它 =P

同时,还要发现那些非常大的项目仍然存在的所有安全和可用性漏洞。 - Timo Huovinen

2

根据你在 Ruby on Rails 和 PHP 方面的熟练程度,这个时间框架内是有可能实现的。

不过,我建议直接使用已有的解决方案。自己开发真的值得花那么多时间吗?


这是我的问题,值得吗?也许这是提升我的RoR/编程技能的好方法,也许这是让我讨厌RoR/编程的最佳途径。 - user103798
1
对我来说不值得。那些应用程序相当平凡。 - Unknown

0

要创建与WordPress + MediaWiki +一些论坛软件相同质量的东西需要数千个小时。

但是,如果您只是为自己构建它以供使用,则会遇到许多“足够好”的东西,这将节省您的时间。因此,我会说……不到1,000个小时。听起来有点模糊,不是吗?我已经编程14年了,对于项目的时间估计仍然很糟糕,哈哈。当然,项目的定义也相当模糊。

回答是否值得的问题实际上是一个关于你自己的问题。如果这是您感到兴奋的事情,那么它可能是一个很好的学习机会。大约7年前(在Google Analytics出现之前),我编写了一个相当强大的Web流量跟踪和统计引擎。这对我来说是一个很好的学习经验,我不后悔这样做。当然,另一方面,就像我自己一样,您将投入大量工作来完成某些东西,但几乎没有机会从中赚钱。


他可以在没有上传图片等花哨功能的情况下完成这些任务。 - Unknown
在Rails中,当你考虑到像paperclip这样的优秀gem时,上传文件几乎不是一个花哨的功能。 - nitecoder

0
我认为要考虑一下为什么要这样做,如果是为了进一步了解编程和学习新东西,那就去自己构建它,否则我建议使用现有的工具来组合它。
至于时间框架?我很菜,无法估计我的技能,更不可能估计你的 :)

0

如果你想通过这个学习经验,那我认为你应该去做。Phil Haack 写了一篇很好的博客文章,名为 Rolling Your Own Blog Engine,其中列出了你会遇到的问题清单。

实际上并不像许多人试图让它听起来那么容易。事实是,你可以在几个小时内(有些人会说几分钟,但跟随the Rails video并不算你自己的开发时间)编写一个非常简单的博客引擎,但除了你自己之外,其他用户不会得到太多用处。

只要确保你留出足够的时间,如果需要的话就放弃计划A(wordpress+mediawiki+一些论坛软件)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接