[英]Should I write my own CMS?
我计划从今年6月开始从事我的第一个个人项目:一个关于学生的社区。 我想要的是一个Wiki,其中包含有关大学的信息,一个可供人们讨论的论坛以及一个包含新闻,文章等的博客,这三者相互融合。
现在,要走的路似乎是wordpress + mediawiki +一些论坛软件,但是我一直在考虑尝试一下并编写自己的CMS。 我有一些RoR和PHP知识,但是肯定不能写我自己的CMS,尤其是完全从头开始。
您认为我要花多少时间才能实现? 我认为/估计我每天可以花3到5个小时来处理它,并且我希望整个站点在8月底之前可以正常运行(这使我大约有300个小时的工作,因为我也计划花一些时间。 ..什么都不做!:P)。
问题是,这值得吗? 它会帮助我提高编程技能吗?
从您的目标来看,似乎可以用最少的工作在Drupal中轻松完成。
www.drupal.org
论坛和用户博客是内置的,我很确定自己在某个地方看到了Wiki模块。
但是,如果您要学习的经验-自己做将是相当不错的学习经验。 无论您实际完成与否,到完成时您都将更好地了解RoR和/或PHP。
推出自己的:)
您将获得经验(这是无价的),最重要的是,您将得到一些没有not肿的东西...
您应该根据自己的判断来做,但是应该执行类似Drupal的事情。
Drupal是一种CMS,旨在用于社区站点。 它不是最容易理解和使用的系统,但是它是非常可定制的。
以下是一些您可以用来开始了解Drupal的参考: http : //www.packtpub.com/drupal/book http://drupal.org/node/367131
每当您需要为自己编写某些东西和使用现有软件之间进行选择时,都需要考虑四个关键信息。
如果不是很复杂,那么其他任何事情都不能真正满足您的需求,那么创建(时间和金钱)将很便宜,并且您不需要立即使用它就可以自己做。
否则,请跳入现有开源CMS之一,并在此进行贡献。 您不仅会从经验丰富的程序员那里获得大量反馈,而且您将成为某些真正出色的软件的一部分。
我处于类似的情况,尽管规模较小。 我需要.net中的博客软件,但是现有的博客软件确实不是那么好,所以我开始自己的博客。 这是我的想法:
如果您愿意一开始就走捷径,我认为在300小时内建立CMS当然是可行的。 但是,然后不要开始考虑诸如插件体系结构,出色的Admin和文档用户体验之类的东西了-如果您想将CMS发布给其他人,但对于内部使用而言,这些要点确实很重要。
没有。
“除非您计划学习更多有关车轮的知识,否则不要重塑车轮”。
我将专注于学习每种工具以及如何将它们集成在一起,而不是编写CMS。
作为一名真正的开发人员,您将需要大量的自定义。 许多预先打包的CMS /博客都有插件系统,但是对我来说,当我不得不通过数据库条目向系统注册代码时,它们都让我感到有些奇怪。
老实说,我在wordpress中拥有自己的博客,在PHP中重写了自己的博客,此后在Django中重写了两次。
每次变得更快,每次您想做更多的事情,以及每次您了解创建大型项目的人都必须经历的所有可用性和安全性问题。
重写是一次宝贵的经验,我永远不会接受“不要重新发明轮子”的说法。 考虑到我亲自发明了= P,我觉得好像可以看一个轮子然后告诉你这是怎么回事
在那个时间范围内的可能性取决于您在Rails和php上使用ruby的能力。
但是,我只是使用那里的东西。 所有这些时间真正值得您自己做吗?
要创建与wordpress + mediawiki +某些论坛软件相同质量的产品,将花费数千个小时。
但是,如果您只是自己构建它以供使用,那么您会遇到很多“足够好”的地方,这可以节省您的时间。 所以我会说...不到1000小时。 听起来有点模糊,不是吗? 我已经编程14年了,但我仍然无法估计项目的时间,大声笑。 当然,项目的定义也很模糊。
要回答这个问题是否值得,这确实是您自己的问题。 如果您对此感到兴奋,那么它将是一个很好的学习机会。 大约7年前(在Google Analytics(分析)时代之前),我写了一个功能强大的网络流量跟踪和统计引擎。 对我来说,这是一次很棒的学习经历,我对此并不后悔。 当然,另一方面,就像我自己一样,您将把大量的工作投入到您几乎不可能从中赚钱的事情上。
我想说一下您为什么要这样做,如果是要进一步了解编程知识并学习新知识,然后再去做,并建立自己的自我,否则我只会使用可用的工具将其组合在一起。
至于时间范围? 我不敢估计自己的技能,所以没有机会估计您的技能:)
如果您想学习它,那么我认为您应该这样做。 Phil Haack写了一篇不错的博客文章,名为“ 滚动自己的博客引擎” ,其中列出了您将要遇到的一系列问题。
要使声音听起来不那么容易。 事实是,您可以在几个小时内编写一个非常小的博客引擎(有些人会说几分钟,但是跟着Rails视频一起关注并没有真正算作您自己的开发时间),但是这样做并没有太多用处除了你自己的人。 其他用户将需要更多功能。
只要确保您有足够的时间来纾困,并在需要时使用Plan B(wordpress + mediawiki +一些论坛软件)即可。
我想您会找到与开发Bug跟踪工具的良好资源类似的答案?
正如我在那儿所说的,这实际上取决于您的最终目标。
我同意许多人已经说过的话-为什么要重新发明轮子? -对您有用的答案将取决于您要执行的操作。
第一点:
如果[您的公司]只需要CMS,那么这里有众多工具,免费的,高质量的,还有免费的,为什么要自己编程?
第2点:
如果您正在寻找学习体验,正在寻找一些学习[ChoiceLanguage]的东西,和/或只是想学习有关轮的更多信息 ,那么可以参考许多文章,也可以参考许多开源项目。查看它们如何工作的代码(或视情况而定)。
我发现有时候从一个开源项目开始至少可以帮助我省去一大堆代码。 我已经使用了Classic ASP论坛程序包,并将其转换为CMS-但是花了大约一年的时间,但我为此获得了报酬。 青年汽车
到底:
如果后者是您的最终目标,那么请务必阅读文章,进行研究,然后进行编码。
如果是前者,那么您可能想看看已经完成的事情- 除非它将成为您的企业核心竞争力 。
最终,您得到的答案将取决于您提出的问题。 从一开始就明确表示将走很长一段路。 ;)
坦白说,有多少时间因素是无法回答的,我们不知道自己有多好或拥有什么资源。 不过,我要说的是,您引用的每个示例都可能至少落后一千个工时,这是非常非常保守的。
至于你是否应该发展自己的? 好吧,这确实取决于您要完成什么。 想要高效利用时间? 一定不能! 使用预先存在的解决方案。 是否需要案例研究来学习更好的编程? 那是完全不同的情况。
在我看来,这些天来成功的社区网站是专门构建的。 它们没有太多无关紧要的垃圾,易于浏览且使用有趣。 StackOverflow是一个很好的例子。 为了使您的网站成功,您的用户界面将非常重要。
如果您想对用户界面进行最终控制,那么最好的选择就是自行构建它。 您可以从自己喜欢的东西的代码库开始,或者至少将它用作工作示例。
幸运的是,只要您具备合理的编程技能,就可以从如今可用的网络工具开始,在超越合理的学习曲线之后,您将变得非常有生产力。
归根结底,如果您自己构建它,那么您将拥有一个非常灵活的网站,并且看起来完全像您想要的那样。 如果使用其他人的代码,则可以更快地启动网站并具有更多功能,但它不会那么灵活,因此您可能不得不在外观和感觉上做出一些让步。
我必须强调barfoon的评论,不要重蹈覆辙。 在采用别人的CMS并学习如何使用和开发CMS时,有很多学习经验。
此外,如果您参加一个开源项目并了解他们决定如何设计产品,您将学到很多东西。 然后 ,在了解他们的工作原理后,您可以为该项目做出贡献,甚至可以自己分支,但是这种方式具有以下优点:
就是说,我个人建议您看看木兰 。 它具有社区支持,开放源代码和质量体系。
运气
对于您定义的项目范围,我将自己与WordPress一起使用。 Simple Press Forum是一个功能强大的,功能齐全的WordPress论坛插件,集成MediaWiki相当容易。 还有一个WordPress Wiki插件项目 ,可以使用您愿意提交的时间。 WordPress可以完成您在周末描述的所有事情。
您无需重新发明焊缝即可获得经验。
我去买Wordpress。 我在我的网站(www.norwegianfashion.no)上使用它,并且我相信我有一个相当高级的网站。 我当然提高了我的PHP编程技能。
我也尝试过绕过Drupal。 这是非常好的CMS,但是学习起来很麻烦。
即使在其他CMS系统(.NET)上进行了5年的开发,经过1个月的尝试,我仍然无法掌握Drupal。
我不是硬核程序员,但我相信CMS应该相当容易使用。
因此,我选择了Wordpress。 它有其局限性,但是您可以创建自己的插件来弥补这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.