Свій велосипед або... пишемо CMS

Досить часто бачу молодих програмістів як прочитавши пару книжок і зробивши кілька сайтів на Джумлі починають думати в сторону «може то краще написати свою CMS?».

Звичайно, хто ж їм заборонить вбивати власний час та починати писати те, що за тиждень-другий буде валятись на сервері і припадати пилом. Адже як тільки молоді генії розуміють, що роботи тут непочатий край і окрім PHP/MySQL є ще інші (не завжди зрозумілі) речі. Наприклад: шаблонізатори, WYSIWYG-редактори, кешування, паттерни та багато чого іншого.

Саме тому я вирішив написати свій маленький велосипед. Він не матиме реактивного двигуна і коробки передач, а просто буде їздити.

Мета: зробити простенький двигун, який «піднімається» на сервері за 5 хвилин і заодно трохи попрограмувати.

Що я планую використати:
  • Мова програмування: PHP
  • СУБД: MySQL
  • Шаблонізатор: Smarty
  • WYSIWYG-редактор: FCKeditor
Основна функціональність – можливість створювати 2-рівневий (меню) сайт що складається виключно з контенту (жодних віджетів).

Допоки не розпочалась робота хочу від вас почути відповіді на таке питання: «варто чи не варто?» та ідеї по оптимізації і т.п.

коментарі:

+3djrz 01.12.2009 14:43
Багато хто вважає, що варто, але писати щось малофункціональне і таке, що можна реалізувати на інших CMS думаю не варто. Якщо писати, то вже щось таке, чого не вистачає у інших. Якщо це справді щось функціональніше або більш просте у користуванні, ніж інші CMS, то варто почати, а потім дописувати нові можливості.

Якщо вже робити, то можна зробити простий та зрозумілий інтерфейс адмін-частини, зручну навігацію. Якщо робити без віджетів, то основна функція такої CMS - можливість легко додавати контент, тому її основа - редактор. Саме тому пропоную зробити суперфункціональний редактор з можливістю автоматично додавати всі можливі (але потрібні) HTML-теги, з мажливістю візуального редагування CSS-стилів і т.д. Тоді CMS буде корисною. (Це мої думки, тому прошу не судити, якщо вони нереалістичні у виконанні)
meako 01.12.2009 14:44
Можна.
Але ЦМС-ок на мускулі-пхп-смарті — over 9000.
Цікавіше було би збацати щось більш оригінальне, Ruby, scala, brainfuck…
Влад 01.12.2009 14:51
Я не хочу зробити 9001-у і кудись її просувати, а чисто теоретично і практично описати як це робиться. Так щоб на той велосипед можна було вже докручувати все що джуніори забажають:)
meako 01.12.2009 15:18
Описів на ПеХаПе. Не менше) Справа ваша. Я б писав на чомусь екзотичному (haskell в придачу до вищезгаданих)
Влад 01.12.2009 15:20
Думаю головне не мова, а алгоритм роботи. І книжок по PHP буде достатньо - не прийдеться описувати кожен рядок абзацом коментарів.
meako 01.12.2009 15:34
Владе, якщо ви вирішили що будете писати, і саме на ційплатформі. То наша розмова безглузда. Я вважаю що ще одна цмс такого розкладу, навіть навчальна — це так само оригінально і свіжо, як навчання людей програмуванню на паскалі.
Ви ж вирішили робити, тож успіху вам:)
Влад 01.12.2009 15:46
Ну судячи з ваших коментарів "не вартує" починати. Почекаю ще на кілька думок на цю тему і тоді буде видно))
+1bordik 01.12.2009 19:24
Української ! Жодної !
meako 01.12.2009 20:34
Можна займатися створенням оригінального контенту, а можна — аналогів та перекладів. Вирішувати авторам.
+1Денис Мінєєв 01.12.2009 20:09
Поділюся маленьким досвідом... Деякий час тому назад, набридло бавитись із незрозумілими й не зовсім простими рішеннями CMS на той час і вирішили створити власну, навіть запустили на ній декілька сайтів... Але як результат недороблені баги і поступове відставання в розвитку, та й обмаль часу і натхнення, що призвело до закриття проекту, і як результат було взяте на озброєння інше вільне рішення...
Як підсумок: досвід — безперечно так, все інше лірика. Потрібно було воно чи ні? Залежить від мети.
slik 02.12.2009 10:10
В мене є не до кінця реалізована ідея написання ЦМС (цікаве там саме ядро, взаємодія), тому до інших ідей чи оглядів (як це робити) ставлюсь доволі позитивно. Автору пораджу до пунктів "планую використовувати" додати js-фреймворк, без js тепер ніяк :)

А ніхто не хоче на серверному javascript пописати ? :)
+4Тарас 02.12.2009 12:40
Раджу написати, чисто в навчальних цілях (якщо немає 5 років досвіду програмування), спроектувати самому від початку і до кінця: ієрархію класів, взаємодію з шаблонізатором, кешування, обробки помилок і т.д.
А якшо придумати систему щоб можна було модулі писати, та теми створювати - як на мене досвід просто гігантський!
Все описане мною трошки не то про що йдеться в статті)) але написати цмску з можливістю розширення дуже допоможе розвинути свої архітекторські здібності))

Якщо писати, то так щоб був толк.
Влад 02.12.2009 14:38
Я так подивився... велосипед писати навіть в навчальних цілях не вартує судячи з ваших слів. Легше зібрати комьюніті і писати щось повноцінне)) Тоді треба писати паралельно свій міні-фреймворк або юзати існуючий. В результаті ми витратимо пару місяців... і для чого? Тут вже явно не буде пахнути системою для навчання ))
Тарас 03.12.2009 08:16
Воно то може і легше, але суть навчання якраз в тому щоб писати все самому.
Просто помістіть в голові всі ці архітектурні аспекти і буде вам добре
+3Влад 03.12.2009 10:43
Так мені особисто вчитись не треба))
Я маю на курсах викладати. От хотів зробити приклад на якому від заняття до заняття показувати як використовувати те чому навчились, а не просто давати сухий матеріал.
Денис Мінєєв 03.12.2009 14:04
тому і писав, що залежить від мети. Якщо мета урізноманітити процес навчання, тоді безперечно процесс відповідає меті.
+2unigor89 04.12.2009 13:26
Якщо цей "маленький велосипед" буде написано з використанням ООП і детально розглянуто проектування ядра то з радістю почитав би!
Влад 04.12.2009 19:25
unigor89 04.12.2009 19:38
Як на мене це навіть не збочення, це просто "лажа".
+1Роман 05.12.2009 10:49
Виходячи з кількості "+" та жвавої дискусії "варто". Але ви повинні бути готові і до шквалу критики:)

додати коментар: