Должен ли я написать свою собственную CMS?


Я планирую начать работу над своим первым личным проектом в июне этого года: сообществом о студентах. То, что я хочу иметь, - это вики, полная информации об университетах, форум, где люди могут обсуждать, и блог с новостями, статьями и т. Д., Все три из которых интегрированы друг с другом.

Теперь, похоже, что путь выглядит как wordpress+mediawiki+ какое-то программное обеспечение для форума, но у меня были эти мысли о том, чтобы попробовать и написать свою собственную CMS. У меня есть некоторые знания RoR и PHP но, конечно, не до такой степени, чтобы я мог написать свою собственную CMS, особенно полностью с нуля.

Как вы думаете, сколько времени мне потребуется, чтобы достичь этого? Я думаю/оцениваю, что могу ежедневно тратить на это от 3 до 5 часов, и я хочу, чтобы весь сайт был запущен и запущен к концу августа (что дает мне около 300 часов работы, так как я также планирую потратить некоторое время просто... ничего не делая! :Р).

Вопрос в том, стоит ли оно того? Поможет ли это мне улучшить мое программирование навыки?

Author: Zee Spencer, 0000-00-00

16 answers

То, что вы должны делать, зависит от вашего собственного усмотрения, но то, что вы должны сделать, это реализовать что-то вроде Drupal.

Drupal - это CMS, предназначенная для использования на сайтах сообщества. Это не самая простая система для понимания и использования, но она очень настраиваема.

Вот несколько ссылок, которые вы могли бы использовать, чтобы начать изучать Drupal: http://www.packtpub.com/drupal/book http://drupal.org/node/367131

Всякий раз, когда вам нужно выбирайте между написанием чего-то для себя и использованием существующего программного обеспечения. Есть четыре ключевых элемента информации, которые вам необходимо учитывать.

  1. Насколько сложным это будет?
  2. Насколько близко существующая система соответствует моим потребностям?
  3. Сколько будет стоить внедрение существующей системы По сравнению с написанием вашей собственной
  4. Как скоро мне это понадобится?

Если это не очень сложно, ничто другое действительно не соответствует вашим потребностям, было бы дешево создать (вовремя и деньги), и вам это не нужно немедленно, тогда идите и делайте свое дело.

В противном случае запрыгните на одну из существующих CMS с открытым исходным кодом и начните вносить свой вклад в нее. Вы не только получите отличные отзывы от опытных программистов, но и станете частью действительно потрясающего программного обеспечения.

 6
Author: Zee Spencer, 2009-05-08 22:26:34

Судя по вашим целям, кажется, что это было бы легко достигнуто в Drupal с минимальной работой.

Www.drupal.org

Форумы и блоги пользователей встроены, и я почти уверен, что где-то видел вики-модуль.

Тем не менее, если вы собираетесь получить опыт обучения - сделать это самостоятельно будет весьма познавательным опытом. Независимо от того, действительно ли вы это сделаете или нет, вы лучше поймете RoR и/или PHP к тому времени, когда закончите.

 7
Author: McAden, 2009-05-08 22:20:39

Разверните свой собственный:)

Вы приобретете опыт (который бесценен), и вдобавок ко всему вы получите что-то, что не раздуто...

 7
Author: Chad Scira, 2009-05-08 22:56:06

Я нахожусь в несколько похожей ситуации, хотя и в меньшем масштабе. Мне нужно программное обеспечение для блога в сети, но существующие на самом деле не так хороши, поэтому я начал свой собственный. Вот мои мысли:

  1. Не пытайтесь делать копии 1:1 чего-либо. Запуск вашего собственного дает вам возможность реализовать только то, что вам нужно, и исключить все остальное.
  2. Начните с малого. У Wordpress и Mediawiki за плечами годы программирования. Попытка повторить это самостоятельно не приведет к работа.
  3. Блоги и форумы поначалу невероятно просты, но становятся невероятно сложными, как только вы сталкиваетесь с такими вещами, как редакторы WYSIWYG, методы защиты от спама, проблемы совместимости браузеров и тому подобное.
  4. Это отличный способ получить серьезный опыт работы с вашим языком и "корпоративными" технологиями, но если вы неопытны и у вас есть крайний срок, вам действительно следует сначала подумать о расширении чего-то, что уже есть на рынке.

Если вы готовы срезать некоторые углы в для начала, я думаю, что создание CMS за 300 часов, безусловно, осуществимо. Но тогда не начинайте думать о таких вещах, как архитектура плагинов, отличный пользовательский интерфейс для администратора и документация - эти моменты действительно важны, если вы хотите предоставить свою CMS другим людям, но не так много для внутреннего использования.

 5
Author: Michael Stum, 2009-05-08 22:23:04

Нет.

"Не Изобретайте Велосипед, Если Только Вы Не планируете Узнать Больше О Колесах".

Я бы сосредоточился на изучении каждого из инструментов и на том, как вы можете интегрировать их вместе, вместо того, чтобы писать CMS.

 4
Author: barfoon, 2009-05-09 03:25:46

Как у настоящего разработчика, у вас будут желания для большого количества настроек. Во многих готовых CMS/блогах есть системы плагинов, но для меня все они кажутся немного странными, когда мне приходится регистрировать свой код в системе через запись в базе данных.

Честно говоря, у меня был свой блог на WordPress, я переписал свой собственный на PHP, и с тех пор я дважды переписывал его в Django.

Каждый раз становится все быстрее, каждый раз, когда вы хотите сделать что-то большее, и каждый раз, когда вы узнаете себя обо всем проблемы удобства использования и безопасности, с которыми приходится сталкиваться людям, создавшим очень крупные проекты.

Переписывание было ценным опытом, и я бы никогда не согласился с аргументом "Не изобретайте велосипед". Мне кажется, что я могу посмотреть на колесо и сказать вам, что с ним не так, учитывая, что я лично его изобрел =P

 3
Author: phillc, 2009-06-30 15:58:22

Это возможно в эти сроки в зависимости от того, насколько хорошо вы владеете ruby on rails и php.

Однако я бы просто использовал то, что есть. Действительно ли стоит тратить столько времени на то, чтобы сделать свой собственный?

 2
Author: Unknown, 2009-05-08 22:14:14

Я бы сказал, подумайте, почему вы это делаете, если это для того, чтобы углубить свои знания в программировании и узнать что-то новое, тогда беритесь за это и создавайте сами, иначе я бы просто использовал доступные инструменты, чтобы собрать это вместе.

Что касается временных рамок? Я плохо оцениваю свои собственные навыки, поэтому у меня нет шансов оценить ваши:)

 0
Author: nitecoder, 2009-05-08 22:20:45

Если вы хотите заняться этим для получения опыта обучения, то я думаю, вам следует это сделать. Фил Хаак написал хороший пост в блоге под названием Запуск собственного движка блога с хорошим списком проблем, с которыми вы столкнетесь.

Это не так просто, как многие пытаются представить. Правда в том, что вы можете написать очень минимальный движок блога за несколько часов (некоторые скажут минуты, но следование вместе с видео Rails на самом деле не считается вашим собственным временем разработки), но это от этого не будет никакой пользы никому, кроме тебя самого. Другие пользователи будут требовать больше функций.

Просто убедитесь, что вы оставили себе достаточно времени, чтобы выйти из игры и перейти к плану Б (wordpress+mediawiki+ некоторое программное обеспечение для форума), если вам нужно.

 0
Author: Bill the Lizard, 2009-05-08 22:22:26

Я думаю, вы найдете аналогичные ответы на Хорошие ресурсы для разработки инструмента отслеживания ошибок?

Как я уже сказал, это действительно зависит от вашей конечной цели.

Хотя я согласен с тем, что многие уже говорили, - зачем изобретать велосипед? - ответ, который будет вам полезен, будет зависеть от того, что вы пытаетесь сделать.

Точка #1:
Если [вам|вашей компании] просто нужна CMS, существует множество инструментов, бесплатных и других, с высоким качество и в противном случае, зачем программировать свой собственный?

Точка #2:
Если вы ищете опыт обучения, ищете что-то, чему можно научиться [Язык выбора], и/или просто хотите узнать больше о колесах, есть ряд статей и есть ряд проектов с открытым исходным кодом, которые вы можете просмотреть в коде, чтобы увидеть, как они работают (или нет, в зависимости от обстоятельств).

Я обнаружил, что иногда запуск проекта с открытым исходным кодом помогает мне, по крайней мере, получить большой кусок кода убран с дороги. Я взял классический пакет форума ASP и превратил его в CMS - но на это ушел год или около того, и мне платили за это. YMMV

В конце концов:
Если последнее является вашей конечной целью, то, во что бы то ни стало, читайте статьи, проводите исследования и кодируйте.

Если это первое, вы, возможно, захотите взглянуть на то, что уже сделано - , если это не будет основной компетенцией вашего бизнеса.

В конечном счете, ответ, который вы получите, будет зависеть от вопроса, который вы зададите. Быть ясным с самого начала будет иметь большое значение.;)

 0
Author: AnonJr, 2017-05-23 10:27:42

На вопрос, сколько времени, невозможно ответить, так как мы, честно говоря, не знаем, насколько вы хороши или какими ресурсами располагаете. Однако я скажу, что за каждым приведенным вами примером, вероятно, стоит по меньшей мере тысяча человеко-часов, и это очень консервативно.

Как насчет того, следует ли вам разработать свой собственный? Ну, это действительно зависит от того, чего вы хотите достичь. Хотите эффективно использовать свое время? Во что бы то ни стало, НЕТ! Используйте уже существующее решение. Хотите, чтобы тематическое исследование научиться лучше программировать? Это совершенно другой сценарий.

 0
Author: Serapth, 2009-05-08 22:36:05

Для создания чего-то такого же качества, как wordpress+mediawiki+ некоторое программное обеспечение для форумов, потребуется много тысяч часов.

Но если вы просто создаете его для себя, чтобы использовать, вы встретите много "достаточно хороших", которые сэкономят вам время. Так что я бы сказал... менее 1000 часов. Это звучит несколько расплывчато, не так ли? Я программирую 14 лет, и я все еще ужасно оцениваю время для проектов, лол. Конечно, определение проекта довольно расплывчатое тоже.

Чтобы ответить на вопрос, стоит ли это того, на самом деле это вопрос для вас самих. Если это то, что вам нравится делать, то это может стать отличной возможностью для обучения. Около 7 лет назад (до появления Google Analytics) Я написал довольно мощный механизм отслеживания и статистики веб-трафика. Для меня это был отличный опыт обучения, и я не жалею об этом. Конечно, с другой стороны, как и я, вы будете вкладывать много сил в то, что у вас будет мало шансов заработать на этом какие-либо деньги.

 0
Author: Steve Wortham, 2009-05-08 22:37:30

Мне кажется, что в наши дни успешные веб-сайты сообщества созданы специально. В них нет большого количества постороннего мусора, они просты в навигации и удобны в использовании. Хорошим примером здесь является StackOverflow. Для успеха вашего веб-сайта ваш пользовательский интерфейс будет очень важен.

Если вы хотите полностью контролировать свой пользовательский интерфейс, то лучше всего создать его самостоятельно. Вы можете начать с базы кода того, что вам нравится, или, по крайней мере, использовать его в качестве рабочий пример.

К счастью, если у вас есть достаточные навыки программирования, чтобы начать с веб-инструментов, доступных в наши дни, вы можете быть очень продуктивными после того, как пройдете разумную кривую обучения.

В конце концов, если вы создадите его самостоятельно, у вас будет очень гибкий веб-сайт, который будет выглядеть именно так, как вы хотите. Если вы используете чужой код, вы получите веб-сайт быстрее и с большим количеством функций, но он не будет таким гибким и вероятно, вам придется пойти на некоторые уступки в отношении внешнего вида и внешнего вида.

 0
Author: JohnnyLambada, 2009-05-08 22:37:32

Я должен подчеркнуть комментарий барфуна, чтобы не изобретать велосипед заново. Есть много возможностей для обучения, которые можно получить, взяв чужую CMS и научившись использовать и развивать против нее.

Кроме того, вы многому научитесь, если возьмете проект с открытым исходным кодом и посмотрите, как они решили разработать свой продукт. Затем, поняв, как они работают, вы можете либо внести свой вклад в проект, либо даже разветвиться самостоятельно, но этот способ имеет несколько преимуществ:

  • Вы знаете, во что ввязываетесь (CMS может быть большой задачей)
  • В зависимости от того, какой из них вы выберете, существует значительная поддержка сообщества для существующих продуктов CMS, что является ценным
  • Вы, вероятно, научитесь хорошему подходу, увидев их код
  • Изучение их продукта/кода занимает меньше времени, чем создание собственного, поэтому у вас меньше шансов потерять мотивацию, чем если бы вы начали создавать его с нуля

Тем не менее, я лично рекомендую вам взглянуть на Магнолию. У него есть поддержка сообщества, он с открытым исходным кодом, и это качественная система.

Г'лак

 0
Author: Cuga, 2009-05-09 13:12:17

Я бы сам выбрал WordPress для охвата проекта, который вы определили. Простой пресс-форум - это надежный полнофункциональный плагин для форума для WordPress, и его довольно легко интегрировать в MediaWiki. Существует также проект вики-плагина WordPress, который может использовать часы, которые, похоже, вы готовы посвятить. WordPress может сделать все, что вы описали, за выходные.

 0
Author: Daniel Bachhuber, 2009-05-09 21:50:35

Вам не нужно заново изобретать велосипед, чтобы набраться опыта.

Я бы выбрал Wordpress. Я использую его для своего веб-сайта(www.norwegianfashion.no), и я считаю, что у меня довольно продвинутый веб-сайт. Я определенно повысил свои навыки программирования на PHP.

Я тоже пытался разобраться в Drupal. Это очень хорошая CMS, но учиться - заноза в заднице.

Даже после 5 лет разработки на других системах CMS (.NET) я не смог освоить Drupal после 1 месяца пытаясь.

Я не закоренелый программист, но я считаю, что CMS должна быть довольно простой в использовании.

Итак, я выбрал Wordpress. У него есть свои ограничения, но вы можете создавать свои собственные плагины, чтобы компенсировать это.

 0
Author: Steven, 2009-05-13 22:46:41