Чи варто будувати власну CMS або покладатися на попередньо побудовану? [зачинено]


23

Пов’язано : Я, як початківець програміст, повинен надавати перевагу створенню власних бібліотек над використанням сторонніх бібліотек?

Як проміжний веб-розробник PHP для просунутого рівня та молодий (15 років), я повинен створити абсолютно новий CMS для свого веб-сайту або покластися на попередньо виготовлене програмне забезпечення, таке як WordPress або Drupal?

Я точно не відчуваю, що WordPress є досить потужним / масштабованим, щоб можна було впоратися з тим, що я намагаюся зробити, і після поводження з Drupal за останні кілька днів це просто не здається рівним моєму вподобанню а також недостатньо задокументовано, тому у мене виникають певні труднощі з його дотриманням певних простих завдань. Я люблю використовувати що - то , такі як Цербер, але у мене немає грошей , щоб блюдо за комерційну ліцензію , яка в даний час складає близько $ 300, так що не це не придатне.

Спочатку я почав кодувати свій сайт як тимчасову систему, щоб мої користувачі могли придбати оновлення та інші речі, такі як ігрові валюти, доки я не зможу отримати новий веб-сайт, але після того, як я запустив його, я швидко зрозумів, що мені потрібно зробити його масштабованим , тому з цього моменту я кодував думку про те, щоб зробити його повноцінним веб-сайтом на увазі. Минуло лише пару днів, але всі основи існують (реєстр, логін, зміни облікового запису тощо), і я вважаю, що це буде чудовим початком для приватної CMS.

Останнє, що я хочу додати, - це якщо я буду створювати власну CMS, чи повинен я використовувати рамки PHP, такі як CodeIgniter, з якими я маю досить багато досвіду?

Можливо, інші розробники можуть підказати мені, що я можу в себе вступати.


11
Не варто недооцінювати кількість годин, витрачених на створення існуючих CMS, якими вони є. Ви можете бути сильно здивовані ...

Відповіді:


23

Це повністю залежить від вашої ситуації. Тут створено чудові сайти з CMS. Я думаю, що нам краще спершу розібратися у двох поняттях: CO та TCO.

CO (вартість власності)

Коли ви щось купуєте, сума, за яку ви платите, - це CO. У випадку WordPress - це нічого, тому що WordPress (або багато іншого програмного забезпечення CMS) є безкоштовними.

TCO (загальна вартість власності)

Уявіть, що ви купуєте ПК за 10000 доларів. Тоді що? Вам слід витратити час на встановлення на ньому програмного забезпечення (час - це цінний ресурс, тому ви добрі, все-таки витрачаєте гроші на цьому ПК), тоді ви можете придбати веб-камеру, інший програвач DVD-дисків та додаткові кабелі. Потім потрібно навчитися користуватися встановленим програмним забезпеченням. Іншими словами, загальна вартість володіння ПК не становить 10 000 доларів. Це набагато більше, ніж це.

Що стосується програмного забезпечення CMS, їх CO дійсно не дуже низькі показники. Але багато досвіду показують, що їх ТСО зовсім не низький. Великі компанії витрачають майже тисячі доларів, щоб отримати хороший сайт в Joomla або WordPress.

Ще один фактор - рівень налаштування . Іноді ви хочете використовувати програмне забезпечення , яке є без будь-яких змін. У цьому випадку WordPress, Joomla, Drupal або будь-яка інша CMS може бути дуже хорошим кандидатом, і ви не повинні писати власну CMS. Але бувають випадки, коли вам потрібен високий рівень налаштування. У цьому випадку вам дуже неприємно налаштувати готовий до використання CMS відповідно до ваших вимог.

Насправді я хотів використовувати готове програмне забезпечення CMS, але витративши цінний час на вивчення різних CMS та виявлення слабких сторін кожного, я закінчився створенням власної CMS. Результати думки - це мій особистий сайт і будується за допомогою цієї CMS. Я скоро опублікую його, щоб інші могли також ним користуватися.

Ще один фактор - розширюваність . Повірте, змушує вас переносити CMS зі статичного стану в розширюваний стан. Шаблони, модулі, плагіни, провайдери, база даних та сховище, механізми маршрутизації та майже будь-яка частина хорошої CMS повинні бути розширювані.

Нарешті, моя особиста пропозиція - почати створювати CMS, щоб ви, принаймні, вивчили деякі найбільш фундаментальні концепції. Але також спробуйте використовувати існуючі. Удачі.


Ого, відмінна відповідь. Деякі з цих речей я ніколи не вважав, але зараз дуже приємно знати. Як ви говорили з налаштуваннями, мені дуже потрібно багато цього, саме тому я спочатку звернувся до Drupal, тому що чув, що це повинно бути чудово з такими речами. У моєму випадку, однак, мені потрібно багато взаємодії між декількома серверами, PayPal, широко налаштованою реєстрацією та іншими речами, які насправді не дуже легко справляються з чимось на кшталт Drupal. Велике спасибі за вашу відповідь, я дуже ціную це. :)
Алекс Беннетт

Я також хотів би, щоб ви запитали вас, чи рекомендуєте ви використовувати таку основу, як CodeIgniter, або будувати власну, як я йду (можливо, для досвіду)?
Алекс Беннетт

1
Ну, @Alex я радий, що можу допомогти. Але мені також шкода, оскільки моя платформа є .NET, і я не дуже знайомий з рамками PHP. Але використання рамки, безумовно, заохочує. Я використовую Entity Framework як ORM, таким чином використання ORM в PHP може дійсно активізувати вашу розробку.
Saeed Neamati

Добре, все одно дякую. Єдина причина, чому я не хотів би використовувати рамки, - це практика, але я вважаю, що, мабуть, було б безпечніше використовувати її в цьому випадку, оскільки це виробничий майданчик, і я не хочу мати жодної бродячої вразливості, які можуть виникнути у мене, створюючи власну CMS / структуру.
Алекс Беннетт

1
@ Алекс Беннетт, Ще одна річ, Є CMS з відкритим кодом. Якщо ви отримаєте вихідний код. Ви можете почати з цього, а потім змінити його на свій смак. Це дійсно пришвидшило б побудову вашого власного. Це як гібридний підхід. Хто насправді хоче винаходити колесо?
MVCylon

18

Я тут граю прихильників чортів, проте це потрібно сказати. Деякі найпоширеніші проблеми з розробниками програмного забезпечення:

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

Ви впевнені, що не робите жодної з цих помилок, тому що навіть за 15y0, 300 доларів можна заробити за кілька вихідних, а те, що ви, начебто, пропонуєте, може зайняти місяцями. Подумайте, що було б, якщо ви отримали оплачувану роботу і купили гроші ExpressionEngine. Чи було б доставлено швидше, з ще кращими можливостями, ніж робота з саморобки?


1
Я досить зрілий для вашого середнього 15-річного віку, як я сподіваюся, ви можете сказати, і я не вірю, що я помилився, зробивши будь-яку з речей, які ви перерахували. Я витрачав багато часу на дослідження можливих рішень і ще не придумав хорошого для моєї ситуації. Щодо грошей, то мій бізнес заробляє понад 300 доларів США на місяць (це не так багато, але він платить за спеціальні машини), щоб я міг отримати гроші, але я намагаюся грати в нього консервативно і інвестувати в речі, які є обов'язкові, такі як обладнання та реклама. Дякую за відповідь, але я дійсно пам’ятаю про це.
Алекс Беннетт

Я не думаю, що ви справді робите CMS настільки, як на замовлення. Якщо ви створили справжню CMS, ви, ймовірно, могли поширити / продати CMS. Я думаю, вам би трохи по голові (як і я, але ...) вийти зібрати повноцінну CMS.
HelloFictionalWorld

2
@ Алекс вам потрібно врахувати, що час == гроші, конкретно ваш час. Скільки це коштує? Якщо вашій CMS потрібно більше 30 годин для виробництва (@ $ 10 / год.), То ExpressionEngine - кращий вибір. Аналогічно, якщо ці 30 годин роботи, витрачені на інші речі, приносять вашому сайту більш реальну вартість, ніж 300 доларів, то ExpressionEngine - кращий вибір.
CdMnky

8

На це є дві відповіді.

Одне просто: ні - не винаходити колесо. Є багато чудових систем CMS, і якщо ви навчитесь користуватися хорошою системою, то, якщо вам потрібні речі, які вона не пропонує, ви можете зосередити більше своїх навичок на створенні для цього плагіна, а не на винаході колесо.

Друге трохи менш очевидно: так. Якщо ви хочете зрозуміти, як працює CMS та проблеми, що виникають при створенні такої, немає ніякої шкоди в створенні власної. Ймовірно, ніколи не буде мати потужність і гнучкість однієї з існуючих систем CMS, і оскільки там близько 100000000000 систем управління вмістом PHP, є дуже мало шансів, що хтось коли-небудь зацікавиться цим, але він також не буде є речі, які вам не потрібні, і це, ймовірно, вийде набагато меншим і простішим, ніж будь-яка з великих систем. Це займе багато часу, результати навряд чи будуть такими ж хорошими і це не матиме ніякого значення для решти світу, але з точки зору вашого розвитку та навчання це може бути корисною вправою.

У будь-якому випадку, перш ніж приступити до створення власної, я б спробував основні системи, доступні лише для того, щоб зрозуміти, як вони працюють, що вони роблять добре і що ви вважаєте, що вони могли б зробити краще. Якщо ви добре розумієте їх, ви можете повідомити ваше рішення про те, чи є користь у створенні вашого власного.


Дякую за відповідь. Просто для уточнення: Якби я створив цю CMS, я б не мав намірів випускати її, це не ринок, на якому я займаюся. Це було б тільки для мене і буду побудовано робити тільки те, що я хочу / потребую. Хоча я експериментував з іншими, але, здається, не можу знайти документально достатньо добре, і мені потрібні речі, не змушуючи мене якимось чином змінювати ядро, тому я почав розглянути питання про створення свого власного. Ще одна причина, що я хочу створити свою, - це практика, оскільки я працюю над тим, щоб після коледжу стати веб-розробником (або чимось подібним). :)
Алекс Беннетт

3
Я пишу як хтось, який деякий час тому реалізував дуже маленький, дуже простий, дуже базовий PHP cms і з тих пір використовував його на досить багатьох сайтах. Це не більше, ніж крихітний фрагмент того, що роблять більш масштабні системи, але він робить все, що потрібно для менших сайтів, і оскільки він базується на плоских файлах, він працює майже де завгодно. Тож я цілком вдячний, що іноді ти справді просто хочеш побудувати свій власний.
гленатрон

5

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

  • Що важко зробити, а що легко
  • Як інтернаціоналізувати та локалізувати ваші сторінки
  • Як поводитися з користувачами та ролями
  • Як обробляти обслуговування базових структур даних, а не вимагати оновлень-операторів SQL.
  • Як обробляти багаточастинні сторінки.
  • Як ефективно обробляти статичний вміст.
  • Як масштабувати на декількох комп’ютерах та великому навантаженні.
  • Як надати API для налаштування та тем користувачів.

Деякі з них, можливо, навіть виявлять, що ви навчилися цього не робити. Цей досвід теж важливий.

Особисто я дійшов до того етапу, коли я дізнався, що "як важко це може бути" охоплює лише кілька відсотків роботи, яка насправді потрібно виконати, щоб створити продукт високої якості, і якби я обрав CMS, шукав би популярного, який має доступну базу коду та гарну документацію, та гарну архітектуру плагінів, що дозволяє мені просто написати відповідні плагіни, а потім оновити базовий CMS, коли вийде нова версія.


Дякую за вклад, у мене вже було чимало, як не робити цього досвіду. Наприклад, я записую 30 рядків коду, щоб виконати просте завдання, а потім через 2 дні перегляньте код і виявлю, що я міг би його скоротити, як 10 рядків. Ці переживання, як би вони не дратували, безумовно, допомагають навчальному процесу, оскільки вони, як правило, роблять речі «приклеєними» більше.
Алекс Беннетт

@ Алекс, це "як НЕ зробити це" досвід масштабів з розміром кодової бази вашого проекту. Але, я думаю, вам потрібно зробити це хоча б раз, щоб оцінити це :)

3

Це лише трохи відповідь на ваше запитання. Я припускав, що ви перебуваєте в php, і ви не збираєтеся за заздалегідь зробленим CMS-шляхом. Ласкаво просимо в клуб! Багато хто з нас пройшли тим же шляхом. Деякі поради, які можуть полегшити ваше навантаження.

Я почав будувати власну CMS, MVC реалізацію, інтернаціоналізатор (i18n) обробник, обробник сеансу, якийсь шар абстрагування бази даних, якийсь спосіб обробника форм тощо. І тоді я з’ясував, що те, що я робив, було насправді зроблено раніше, але кращим чином за рамками. Отже, це означає, що вам не доведеться винаходити колесо повністю, а саме там, де воно відповідає вашим потребам. Рамки полегшують ваше життя, але для читання та навчання потрібно багато зусиль. Мені знадобився рік, щоб справді освоїти Symfony, і я не шкодую про це ні секунди.

І вам пощастило, адже зараз існує набагато більше високоякісних рамок, ніж раніше. Назвати декілька :

  • Symfony : Сьогодні вони випустили стабільну версію 2.0, це цікаві речі. Це нещільно пов'язане, що означає, що ви можете використовувати або компоненти, або вибрати все як інтегрований пакет. Має гарну документацію та активну базу користувачів. Інакше застаріла версія 1.4 також є дуже надійною та корисною. У вас є багато потужних плагінів, щоб полегшити ваше життя. (Пачки)
  • Zend Framework : Деякі стверджують, що насправді це не актуально (не всі бренди охоплюють нові 5.3 функції), але це вже деякий час, і це, в основному, набір корисних компонентів (знову ж таки слабко пов'язане, а не гра все або нічого) ). Я використовую його як інструментарій для виконання таких завдань, як пошук (zend_lucene) та генерування pdfs. Але він також має широко використовуваний набір контролерів MVC. Ви повинні заглянути в це, якщо ви цього не зробили. Дуже добре документовано.
  • CakePHP : Користувався ним давно, і не зміг отримати документацію. Мабуть, це зараз краще і, напевно, варто вашої уваги.

  • Yii : Не використовував його, але останнім часом про це багато пустощів, напевно, варто вашої уваги.

  • CodeIgniter : Чули, що багато людей хвалять кодигнатор за його легку криву навчання та простоту використання. Не використовував.

Якщо ви хочете спробувати пітона, багато людей також хвалять Джанго і, звичайно, рубіни на рейках.

Напевно, їх більше, але це повинно вам бути корисним. Якщо ви не хочете їх використовувати, ви все одно можете дізнатися багато з цих рамок. Удачі!


Дякую, у мене є великий досвід роботи з CodeIgniter, але я не пробував жодного з інших. Я, безумовно, врахую їх.
Алекс Беннетт

1
laravel.com ?? Наразі CodeIgniter є найбільш широко використовуваним, але Lavarel швидко його обганяє
Mawg

1
Так. Цій посаді чотири роки. Laravel тоді тільки починав.
Аренд

1

Відповідь багато в чому залежить від того, що ви намагаєтесь досягти.

Якщо ви маєте намір розвинути свої навички, дізнайтеся про управління контентом тощо. Тоді так, будь-ласка, розвивайте свою власну. Аналогічно, якщо ви хочете навчитися рамці, скористайтеся нею.

Однак якщо у вашій увазі гра, яку ви згадуєте, та її гравці, то відповідь майже точно не. Ваш час - обмежений, а значить, і дорогий ресурс. Час, витрачений на розробку CMS, - це не витрачений час на розробку гри, і саме гра приносить дохід. Тому задайте собі питання. Чи час, витрачений на розробку цієї CMS, а не на придбання того, хто збирається покращити досвід моїх гравців, більше часу, ніж витрачено на розробку гри? Якщо відповідь "так", тоді розвивайте її, інакше не робіть.

Аналогічно, рішення CMS з відкритим кодом через ExpressionEngine повинно звести ToC, як говорить Саїд. Простіше кажучи, якщо вартість (Wordpress)> вартість (ExpressionEngine), то витратити 300 доларів. Тут вартість - покупка + вартість ((години_то_порядження * ваша_годинна_трата).


1

Знайдіть CMS, який відповідає 90% ваших потреб, і змініть його з часом, щоб додати функціонал, який він не постачає.

Це дозволить вам запуститись рано та адаптуватись у міру зміни потреб та користувачів.


Хоча це, здається, обирає найгірше з обох світів, я не погоджуюсь із головою, тому я це зробив.
Мавг

1

Я повністю закликаю вас створити власну CMS. Це, безумовно, найкращий спосіб дізнатися про таку сторону такої системи щодо налаштування та безпеки. Але я маю сумніватися, наскільки ви проміжні до просунутих у вас з вміннями PHP. Це не стосується вашого віку, повірте.

Прапор для мене був: "Я точно не відчуваю, що WordPress є досить потужним / масштабованим, щоб можна було впоратися з тим, що я намагаюся зробити, і після того, як помацати з Drupal за останні кілька днів, це просто не здається дорівнює моєму вподобанню, а також недостатньо задокументований, тому у мене виникають невеликі труднощі, щоб його зробити для виконання певних простих завдань ".

Безліч книг і сайтів про налаштування Worpress та Drupal, не кажучи вже про гучні сайти, які працюють на них, доводять, що ви повинні знати, що ви робите, отримуєте такі сайти. Не кажучи вже про цілі бюджети, призначені для запуску цих сайтів.

Наприклад, посилання:

http://drupal.org/cases

http://wpmu.org/wordpress-showcase-20-high-profile-sites-running-on-wordpress

Це не відлякує вас у тому, що ви намагаєтесь зробити, але, безумовно, йдіть на це. Я просто хочу переконатися, що ви не вкладаєте занадто багато свого часу (винаходите колесо) і не засмучуєтесь у певний момент і просто говорите "ефф", коли ви можете розтягнути свої таланти і показати людям, включаючи роботодавців , що ви маєте з наявними інструментами. У реальному світі та нинішній економіці час - це гроші, а підприємства та організації не мають часу та / або бюджетів, щоб постійно займатися створенням проектів з нуля.
Інформація сьогодні рухається зі швидкістю світла, тому програмісти, які можуть розділяти шум і створювати цілеспрямований контент / програми / системи у відповідний час обігу, користуються великим попитом.


0

Тільки ви можете відповісти, чи Wordpress або Drupal можуть робити те, що вам потрібно для CMS, але якщо ви хочете спробувати їх, чому б не використати віртуальну машину під ключ під Linux , таку як Wordpress , Drupal , Joomla або будь-який із них інші з тегом " Управління вмістом" .

Якщо припустити, що ви вже є програвач VMware або VirtualBox , за кілька хвилин після завантаження будь-якого з цих приладів ви можете самостійно спробувати це програмне забезпечення з мінімальними витратами часу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.