7

我计划在今年六月开始我的第一个个人项目:一个关于学生的社区。我想要的是一个 wiki,里面有关于大学的信息,一个人们可以讨论的论坛和一个包含新闻、文章等的博客,所有这三个都相互集成。

现在,要走的路似乎是 wordpress+mediawiki+一些论坛软件,但我一直有这些想法,想尝试一下并编写自己的 CMS。我有一些 RoR 和 PHP 知识,但肯定没有到可以编写自己的 CMS 的程度,尤其是完全从头开始。

你认为我需要多长时间才能实现它?我认为/估计我每天可以花 3 到 5 个小时在上面工作,我希望整个网站在 8 月底之前启动并运行(这给了我大约 300 个小时的工作时间,因为我也打算花一些时间。 ..什么都不做!:P)。

问题是,值得吗?它会帮助我提高我的编程技能吗?

4

16 回答 16

7

从您的目标来看,似乎在 Drupal 中只需最少的工作即可轻松完成。

www.drupal.org

论坛和用户博客是内置的,我很确定我在某处看到了一个 wiki 模块。

但是,如果您要获得学习体验 - 自己动手将是一种学习体验。无论您是否真正完成它,当您完成时,您都会更好地理解 RoR 和/或 PHP。

于 2009-05-08T22:20:39.497 回答
7

推出你自己的:)

您将获得经验(这是无价的),最重要的是,您最终会得到一些不臃肿的东西......

于 2009-05-08T22:56:06.417 回答
6

你应该做什么取决于你自己的判断,但你应该做的是实现像 Drupal 这样的东西。

Drupal 是一个用于社区站点的 CMS。它不是最容易理解和使用的系统,但它非常可定制。

以下是您可以用来开始学习 Drupal 的一些参考资料:http://www.packtpub.com/drupal/book http://drupal.org/node/367131

每当您必须在为自己编写内容和使用现有软件之间做出选择时,您需要考虑四个关键信息。

  1. 会有多复杂?
  2. 现有系统与我的需求的匹配程度如何?
  3. 实现现有系统与自己编写系统的成本是多少
  4. 我多久需要它?

如果它不是很复杂,没有其他东西能很好地满足您的需求,那么创建它会很便宜(在时间和金钱上),并且您不需要立即使用它,然后继续做自己的事情。

否则,请加入现有的开源 CMS 之一并开始在那里做出贡献。你不仅会从经验丰富的程序员那里得到很好的反馈,而且你会成为一些非常棒的软件的一部分。

于 2009-05-08T22:26:34.037 回答
5

我的情况有点类似,尽管规模较小。我需要一个.net 中的博客软件,但现有的并不是那么好,所以我开始了自己的。以下是我的想法:

  1. 不要试图制作 1:1 的副本。自己动手让你有机会只实施你需要的东西,而忽略其他一切。
  2. 从小处着手。Wordpress 和 Mediawiki 拥有多年的编码经验。试图自己复制它是行不通的。
  3. 博客和论坛一开始非常简单,但一旦处理了所见即所得编辑器、反垃圾邮件技术、浏览器兼容性问题等问题,就会变得非常复杂。
  4. 这是获得对您的语言和“企业”技术的认真体验的好方法,但是如果您没有经验并且在截止日期前,您真的应该首先考虑扩展已经在市场上的东西。

如果你愿意在开始时偷工减料,我认为在 300 小时内构建一个 CMS 肯定是可行的。但是不要开始考虑诸如插件架构、管理员和文档的出色用户体验之类的东西——如果您想将您的 CMS 发布给其他人,这些点非常重要,但对于内部使用来说并不是那么重要。

于 2009-05-08T22:23:04.403 回答
4

不。

“不要重新发明轮子,除非你打算更多地了解轮子”。

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

于 2009-05-08T22:21:20.990 回答
3

作为一个真正的开发者,你会渴望大量的定制。很多预打包的 CMS/博客都有插件系统,但对我来说,当我必须通过数据库条目向系统注册代码时,它们都觉得有点奇怪。

老实说,我用 wordpress 写过我的博客,用 PHP 重写了我自己的博客,从那以后我用 Django 重写了两次。

每一次都变得更快,每一次你想做更多的事情,每一次你都了解创建大型项目的人必须经历的所有可用性和安全性问题。

重写是一次宝贵的经验,我永远不会接受“不要重新发明轮子”的论点。我觉得好像我可以看看一个轮子并告诉你它有什么问题,考虑到我个人发明了它=P

于 2009-06-30T15:58:22.117 回答
2

它可能在那个时间范围内取决于您对 ruby​​ on rails 和 php 的使用程度。

但是,我只会使用那里的东西。真的值得花时间自己做吗?

于 2009-05-08T22:14:14.253 回答
0

要创建与 wordpress+mediawiki+某些论坛软件质量相同的东西,需要花费数千小时。

但是,如果您只是为自己构建它以供使用,那么您会遇到很多“足够好”的东西,这会节省您的时间。所以我会说... 不到 1,000 小时。这听起来有点模糊,不是吗?我已经编程了 14 年,但我仍然无法估算项目的时间,哈哈。当然,项目的定义也很模糊。

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

于 2009-05-08T22:15:55.467 回答
0

我想说考虑一下你为什么要这样做,如果是为了进一步了解你的编程知识并学习一些新东西,那就去尝试它并自己构建它,否则我只会使用可用的工具来组合它。

至于时间框架?我对自己的技能估计很烂,所以没有机会估计你的:)

于 2009-05-08T22:20:45.843 回答
0

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

这并不像许多人试图让它听起来那么容易。事实上,您可以在几个小时内编写一个非常小的博客引擎(有些人会说几分钟,但跟随Rails 视频并不能真正算作您自己的开发时间),但这并没有多大用处除了你自己之外的任何人。其他用户将需要更多功能。

只要确保您有足够的时间来摆脱困境,并在需要时使用 B 计划(wordpress+mediawiki+一些论坛软件)。

于 2009-05-08T22:22:26.933 回答
0

我想你会找到关于开发 Bug 跟踪工具的好资源的类似答案?

正如我在那里所说,这真的取决于你的最终目标。

虽然我同意许多人已经说过的话——为什么要重新发明轮子?- 对您有用的答案将取决于您要做什么。

第 1 点:
如果 [您|您的公司] 只需要一个 CMS,那里有很多工具,免费的和其他的,高质量的和其他的,为什么要编写自己的?

第 2 点:
如果您正在寻找一种学习体验,寻找一些可以学习 [ChoiceLanguage] 的东西,和/或只是想了解更多有关轮子的信息,这里有很多文章和一些开源项目您可以查看代码以了解它们是如何工作的(或视情况而定)。

我发现有时从开源项目开始至少可以帮助我摆脱大量代码。我采用了一个经典的 ASP 论坛包并将其变成了一个 CMS - 但花了一年左右的时间,我得到了报酬。YMMV

最后:
如果后者是您的最终目标,那么请务必阅读文章,进行研究,然后编写代码。

如果是前者,您可能想看看已经完成的事情 -除非它将成为您的业务核心竞争力

最终,您得到的答案将取决于您提出的问题。从一开始就清楚将有很长的路要走。;)

于 2009-05-08T22:28:07.747 回答
0

多少时间因素是不可能回答的,因为我们坦率地说,不知道你有多好或你有什么资源。不过,我要说的是,您引用的每个示例可能至少落后一千工时,这是非常非常保守的。

至于要不要自己开发?嗯,这真的取决于你想要完成什么。想要高效地利用时间?无论如何,不​​!使用预先存在的解决方案。想要通过案例研究来学习更好的编程吗?那是一个完全不同的场景。

于 2009-05-08T22:36:05.777 回答
0

在我看来,如今成功的社区网站都是专门建立的。它们没有很多无关的垃圾,易于导航并且使用起来很有趣。StackOverflow 就是一个很好的例子。要使您的网站成功,您的用户界面将非常重要。

如果您想最终控制您的用户界面,那么最好的办法就是自己构建它。您可以从您喜欢的代码库开始,或者至少将其用作工作示例。

幸运的是,只要您具备合理的编程技能,就可以开始使用当今可用的 Web 工具,在克服合理的学习曲线后,您就可以非常高效。

归根结底,如果您自己构建它,您将拥有一个非常灵活的网站,并且看起来完全符合您的要求。如果您使用其他人的代码,您将更快地建立网站并具有更多功能,但它不会那么灵活,您可能必须在外观和感觉上做出一些让步。

于 2009-05-08T22:37:32.543 回答
0

我必须强调 barfoon 的评论,不要重新发明轮子。学习其他人的 CMS 并学习如何使用和开发它有很多学习经验。

此外,如果您参加一个开源项目并了解他们如何决定设计他们的产品,您将学到很多东西。 然后,在了解他们的工作原理后,您可以为项目做出贡献,甚至可以自己扩展,但这种方式有几个优点:

  • 你知道你在做什么(CMS 可能是一项艰巨的任务)
  • 取决于您选择哪一个,现有的 CMS 产品有大量的社区支持,这很有价值
  • 通过查看他们的代码,您可能已经学会了一种好方法
  • 学习他们的产品/代码比构建自己的产品/代码花费的时间更少,因此与从头开始构建产品/代码相比,您不太可能失去动力

也就是说,我个人建议您看看Magnolia。它有社区支持,它是开源的,它是一个质量体系。

吉拉克

于 2009-05-09T13:12:17.163 回答
0

对于您定义的项目范围,我自己会使用 WordPress。Simple Press Forum是一个强大的、功能齐全的 WordPress 论坛插件,它很容易集成 MediaWiki。还有一个WordPress wiki 插件项目,可以使用您似乎愿意投入的时间。WordPress 可以在一个周末完成您所描述的一切。

于 2009-05-09T21:50:35.377 回答
0

你不需要重新发明轮子来获得经验。

我会去Wordpress。我将它用于我的网站 (www.norwegianfashion.no),我相信我有一个相当先进的网站。我当然提高了我的 PHP 编程技能。

我也尝试过了解 Drupal。这是非常好的CMS,但学习起来很痛苦。

即使在其他 CMS 系统 (.NET) 上进行了 5 年的开发,经过 1 个月的尝试,我仍然无法掌握 Drupal。

我不是铁杆程序员,但我相信 CMS 应该相当容易使用。

所以我选择了 Wordpress。它有其局限性,但您可以创建自己的插件来弥补这一点。

于 2009-05-13T22:46:41.477 回答