Какой фреймворк / CMS использовать

#drupal #codeigniter #content-management-system #kohana #web-site-project

#drupal #codeigniter #система управления контентом #кохана #веб-сайт-проект

Вопрос:

я программист-любитель с очень небольшим опытом в веб-программировании, я посвящаю в среднем 20-30 часов в неделю, но с приближением лета у меня появляется немного свободного времени для экспериментов и обучения. не мог бы кто-нибудь, пожалуйста, сказать мне, следует ли использовать фреймворк, подобный (Kohana / CakePHP / CI), или непосредственно инструмент CMS, такой как drupal / joomla, следует использовать для создания веб-сайта, подобного stackoverflow, хотя и в меньшем масштабе.

Спасибо за вашу помощь.

Ответ №1:

Это зависит от того, что вы хотите изучить. Зависит от вашей цели.

Вы хотите научиться веб-разработке? CSS? Веб-дизайн? Программирование? Создание сайтов?

Если ваша цель — сам сайт, я бы посоветовал начать с самого высокого уровня в стеке: используйте готовую к работе CMS, такую как Drupal, которая поможет вам быстро работать. И это дает результат (готовый к производству) через несколько часов. Вашим недостатком будет свобода: конечно, Drupal может многое, так же как и WordPress. Но если вы не продвинетесь вниз по стеку (разрабатываете дополнения и тому подобное), вам придется довольствоваться тем, что вам предлагают: готовыми компонентами, которые работают в соответствии с пожеланиями авторов. Возможно, это не ваше желание.

Если ваша цель — изучить веб-разработку в более общем виде, вам следует начать с более низких уровней стека. Ruby on Rails или Django, вероятно, являются лучшими вариантами. Просто из-за их обширного ресурса по документации для новичков. По пути вы также научитесь программированию. В течение нескольких дней вы создадите сайт в точном соответствии с вашими пожеланиями (очевидно, ваш пробег может варьироваться в зависимости от пожеланий :)).

Если ваша цель — разработка программного обеспечения, Python и Ruby, скорее всего, тоже хорошее начало: оба являются кроссплатформенными, имеют хорошие ресурсы для новичков и предлагают отличную документацию. Оба действительно хороши (мнения могут отличаться по этому поводу) абстракцией и объектной ориентацией. Они сделают из вас хорошего программиста просто по своей природе.

Комментарии:

1. что ж, на данный момент у меня есть некоторый опыт работы с PHP, и я прилично разрабатываю алгоритмы и материалы на C / C . мой главный девиз — изучать веб-разработку в целом, но моим непосредственным требованием является какой-нибудь веб-сайт, как уже упоминалось, вроде stackoverflow. ну, я знаю, что задаю совершенно другой ответ, и ответ будет отличаться от человека к человеку, но как вы смотрите на RoR против Python. Ваше личное мнение, теперь, когда вы знаете мое прошлое, я надеюсь, вы сможете подсказать мне. Спасибо!

2. Я разработчик Rails, с завистью. Почти еженедельно я думаю: «Мне следовало подождать год и выучить Python / Django вместо Ruby / Rails». Причина личная: я пользователь Ubuntu и Android, а не Mac, поэтому python был бы предпочтительным языком и для разработки на настольных компьютерах. И мне больше нравятся некоторые философии в Python. Например, «существует только одна библиотека, и это лучшая»-иш. в Rails их всегда пять (и, честно говоря, у меня всегда получается худший :)). в двух словах: выбирайте Ruby (на rails), если вы работаете на Mac, у amd тоже есть мысли о разработке настольных компьютеров. Используйте Django на Python, если вы используете Ubuntu.

Ответ №2:

Существует бесплатный клон Stackoverflow под названием Qwench. (найдите в stackoverflow клоны stackoverflow с открытым исходным кодом)

и один, построенный на drupal http://drupal.org/project/arrayshift

Ответ №3:

WordPress может действовать очень похоже на Stackoverflow с соответствующим шаблоном. Смотрите здесь:http://p2theme.com / (демонстрация здесь:http://p2demo.wordpress.com /). На самом деле вы можете начать редактировать тему (файлы .php) и заставить ее вести себя все больше и больше как Stackoverflow (с системой репутации и т.д. который должен быть прост в реализации). Таким образом, вам не придется изобретать велосипед и у вас будет хороший старт.

Ответ №4:

Я лично использую CodeIgniter и мне это нравится. Я бы порекомендовал его любому новичку, желающему углубить свои знания в объектно-ориентированном программировании, и любым ветеранам, желающим быстрее запустить свои проекты с нуля. Я не собираюсь здесь вдаваться в подробности, потому что я знаю, что Kohana и CakePHP похожи, и это в основном мнение. Однако у CI есть отличная документация.

Я думаю, что изучение наиболее распространенных CMS будет для вас чрезвычайно полезным, множество сайтов и компаний используют WP / Drupal / Joomla / Etc, И их понимание действительно не помешает. Эти проекты очень большие, поэтому вам не обязательно знать их внутренние операции на 100%, но вы должны знать достаточно, чтобы иметь возможность установить, настроить и запустить сайт довольно быстро.

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

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

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

Ответ №5:

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

В Интернете есть множество ресурсов для изучения HTML — как только у вас появится некоторый опыт работы с этим, вы можете изучить CSS, Javascript и языки сценариев на стороне сервера. Знание основ поможет в использовании любой системы управления контентом.

Joomla / Drupal — хорошее место для начала работы с системами управления контентом, как и WordPress, но вам было бы гораздо лучше изучить, как это работает (по крайней мере, в самой базовой степени), прежде чем переходить к чему-либо еще.

Если вы уже программист, вам не покажется это слишком сложным, но это определенно стоит сделать.

Комментарии:

1. Не то чтобы HTML не важен, но он не имеет большого отношения к веб-программированию. Если он кодирует 20-30 часов в неделю и стремится увеличить это число, кодируя сайт подобным образом, я думаю, можно с уверенностью предположить, что он либо знает, либо может подобрать HTML.

2. что ж, ты прав, Дэвид, я в порядке с html и прочим 🙂 в любом случае, спасибо, Джейп

3. Я никогда ничего не предполагаю! Извините, это все равно не помогло.