Dovrei costruire il mio CMS o fare affidamento su uno pre-costruito? [chiuso]

23

Related: As a beginning programmer, should I favor building my own libraries over using 3rd-party libraries?

Come sviluppatore web PHP di livello intermedio / avanzato e uno giovane (15 anni), dovrei creare un CMS completamente nuovo per il mio sito web o fare affidamento su software preconfigurati come WordPress o Drupal?

Non penso che WordPress sia abbastanza potente / scalabile per essere in grado di gestire quello che sto cercando di fare e dopo aver armeggiato con Drupal un po 'negli ultimi giorni non sembra all'altezza per i miei gusti e anche non è ben documentato, quindi ho un po 'di difficoltà nel farlo svolgere certi compiti semplici. Vorrei amare per usare qualcosa come ExpressionEngine, ma non ho i soldi per dare una licenza commerciale che attualmente è di circa $ 300, quindi è un no-go.

Originariamente ho iniziato a codificare il mio sito come un sistema temporaneo in modo che i miei utenti potessero acquistare aggiornamenti e altre cose come la valuta in-game fino a quando non avessi potuto aprire un nuovo sito Web, ma dopo averlo iniziato mi sono reso subito conto che avevo bisogno di renderlo scalabile, quindi da allora in poi ho codificato con il pensiero di renderlo un sito Web a pieno titolo in mente. Ci sono voluti solo un paio di giorni ma tutte le basi sono lì (registrazione, login, modifiche dell'account, ecc.) E credo che sarebbe un ottimo inizio per un CMS privato.

L'ultima cosa che voglio aggiungere è se dovessi creare il mio CMS, dovrei usare un framework PHP come CodeIgniter, con cui ho un po 'di esperienza?

Forse altri sviluppatori potrebbero indurmi a capire in che cosa potrei trovarmi.

    
posta Alex Bennett 27.07.2011 - 11:11
fonte

9 risposte

23

Dipende totalmente dalla tua situazione. Grandi siti sono stati realizzati con CMS là fuori. Penso che dovremmo prima capire due concetti, CO e TCO.

CO (costo di proprietà)

Quando acquisti qualcosa, l'importo che paghi è CO. In caso di WordPress, non è nulla, perché WordPress (o molti altri software CMS) sono gratuiti.

TCO (costo totale di proprietà)

Immagina di acquistare un PC per 10000 dollari. Allora cosa? Dovresti dedicare del tempo per installare il software su di esso (il tempo è una risorsa preziosa, quindi sei gentile di continuare a spendere soldi per quel PC), quindi potresti acquistare una webcam, un altro masterizzatore DVD e alcuni cavi aggiuntivi. Quindi devi imparare come usare il software installato. In altre parole, Costo totale di proprietà un PC non è $ 10.000. È molto di più.

In caso di software CMS, la loro CO non è davvero nulla a tassi molto bassi. Ma molte esperienze dimostrano che il loro TCO non è affatto basso. Le grandi aziende spendono quasi migliaia di dollari per ottenere un buon sito in Joomla o WordPress.

Un altro fattore è il livello di personalizzazione . A volte si desidera utilizzare un software come è senza alcuna modifica. In tal caso, WordPress, Joomla, Drupal o qualsiasi altro CMS potrebbero essere un ottimo candidato e non dovresti scrivere il tuo CMS. Ma ci sono momenti in cui hai bisogno di un alto livello di personalizzazione. In tal caso, si diventa davvero frustrati per personalizzare un CMS pronto per l'uso in base alle proprie esigenze.

In realtà volevo utilizzare il software CMS pronto, ma dopo aver trascorso un tempo prezioso nell'apprendimento di diversi CMS e nel trovare i punti deboli di ciascuno, ho finito per creare il mio CMS. Risultati del test è il mio sito personale e viene creato tramite questo CMS. Lo pubblicherò presto, quindi gli altri possono anche usarlo.

Ancora un altro fattore è estensibilità . Credimi, ti rende vecchio prendere un CMS dallo stato statico allo stato estensibile. Modelli, moduli, plugin, provider, database e storage, meccanismi di routing e quasi tutte le parti di un Good CMS dovrebbero essere estensibili.

Infine, il mio suggerimento personale è di iniziare a costruire un CMS, in modo che almeno apprendiate alcuni dei concetti più fondamentali alla base. Ma prova anche a usare quelli esistenti. Buona fortuna.

    
risposta data 27.07.2011 - 11:32
fonte
18

Sto facendo il diavolo difensore qui, tuttavia deve essere detto. Alcuni dei problemi più comuni con gli sviluppatori di software:

  • In base alla stima del tempo e dell'impegno coinvolti nel completamento di un progetto banale, lasciatelo largo
  • Completa mancanza di comprensione della realtà aziendale
  • Sovrastimazione delle proprie capacità e produttività.
  • Sottovalutazione della complessità e dettagli sottili
  • La convinzione che il loro problema sia così unico nessuno ancora lo ha risolto.

Sei sicuro di non commettere nessuno di questi errori, perché anche per un 15y0, $ 300 potrebbero essere guadagnati in poche settimane e ciò che sembra proporre potrebbe richiedere mesi. Pensa a cosa succederebbe se avessi un lavoro retribuito e comprassi ExpressionEngine con i soldi. Verrebbe consegnato prima, con caratteristiche ancora migliori di un lavoro fai-da-te?

    
risposta data 27.07.2011 - 12:03
fonte
8

Ci sono due risposte a questo.

Uno è semplice: No- non reinventare la ruota. Esistono molti eccellenti sistemi CMS e se impari ad usarne uno bene, se ci sono cose che ti servono che non ti offrono, puoi concentrarti maggiormente sulle tue abilità nel creare un plug-in per quello scopo piuttosto che reinventare il ruota.

Il secondo è un po 'meno ovvio: sì. Se vuoi capire come funziona un CMS e i problemi incontrati nella creazione di uno, non c'è nulla di male nel costruire il tuo. Probabilmente non avrà mai la potenza e la flessibilità di uno dei sistemi CMS esistenti e poiché ci sono circa 100000000000 sistemi di gestione dei contenuti PHP in tutto il luogo, ci sono poche possibilità che nessun altro possa mai essere interessato a questo, ma non lo farà avere le cose che non ti servono e probabilmente funzionerà molto più piccolo e semplice di qualsiasi altro sistema più grande. Ci vorrà molto tempo, i risultati sono improbabili che siano altrettanto validi e non farà alcuna differenza nel resto del mondo, ma in termini di sviluppo e apprendimento, potrebbe essere un utile esercizio.

In ogni caso, prima di iniziare a costruire la tua, proverei i sistemi mainstream disponibili solo per avere un'idea di come funzionano, cosa fanno bene e cosa pensi che potrebbero fare meglio. Avere una buona comprensione di questi potrebbe informare la tua decisione in merito alla possibilità o meno di creare un tuo.

    
risposta data 27.07.2011 - 11:43
fonte
5

Se non hai mai provato a programmare un CMS, questa potrebbe essere un'ottima opportunità per farlo. Imparerai molto e, indipendentemente dal fatto che tu lo finisca, avrai un'idea molto chiara di ad esempio:

  • Cosa è difficile da fare e cosa è facile
  • Come internazionalizzare e localizzare le tue pagine
  • Come gestire utenti e ruoli
  • Come gestire la manutenzione di strutture dati sottostanti anziché richiedere istruzioni di aggiornamento SQL.
  • Come gestire pagine composte.
  • Come gestire in modo efficiente il contenuto statico.
  • Come ridimensionare su più computer e con un carico elevato.
  • Come fornire API per personalizzazioni e temi degli utenti.

Alcuni di questi potrebbero persino scoprire che hai imparato come non per farlo. Anche quell'esperienza è importante.

Personalmente ho raggiunto uno stadio in cui ho appreso che "quanto sia difficile" copre solo una piccola percentuale del lavoro che in realtà deve essere fatto per creare un prodotto di alta qualità, e se dovessi scegliere un CMS Cercherò uno popolare con un codice accessibile accessibile e una buona documentazione, e una buona architettura di plugin che mi permetta di scrivere solo plugin adatti, e quindi aggiornare il CMS di base quando esce una nuova versione.

    
risposta data 27.07.2011 - 19:32
fonte
3

Questa è solo una piccola risposta alla tua domanda. Ho dato per scontato che tu fossi in php e che non hai intenzione di utilizzare il metodo CMS predefinito. Benvenuto nel club! Molti di noi sono andati allo stesso modo. Alcuni consigli che potrebbero facilitare il caricamento.

Ho iniziato a costruire il mio gestore CMS, implementazione MVC, gestore di internazionalizzazione (i18n), gestore di sessioni, qualche modo di livello di astrazione del database, qualche forma di gestore di moduli, ecc. E poi ho scoperto che quello che stavo facendo è stato effettivamente fatto prima, ma in un modo migliore da framework. Quindi, questo significa che non devi reinventare completamente la ruota, ma solo dove si adatta alle tue esigenze. I quadri ti semplificano la vita, ma richiedono molto sforzo per leggere e imparare. Mi ci è voluto un anno per padroneggiare veramente Symfony, e non me ne pento in nessun secondo.

E tu sei fortunato, perché in questo momento ci sono molti più framework di alta qualità di prima. Per citarne alcuni:

  • Symfony : oggi hanno rilasciato la versione 2.0 stabile, è roba eccitante. È accoppiato sciolto, il che significa che è possibile utilizzare entrambi i componenti o scegliere di utilizzare tutto come pacchetto integrato. Ha una buona documentazione e una base di utenti attiva. Altrimenti la versione 1.4 ormai obsoleta è anche molto affidabile e utile. Ha molti plugin potenti per semplificarti la vita. (Bundles)
  • Zend Framework : alcuni sostengono che non è realmente aggiornato (non tutte le nuovissime 5,3 caratteristiche del brand), ma è in circolazione da un po 'di tempo, ed è fondamentalmente un insieme di componenti utili (ancora un po' sciolti, non un gioco tutto o niente). Lo uso come un kit di strumenti per fare cose come cercare (zend_lucene) e generare pdf. Ma ha anche un set di controller MVC comunemente usato. Dovresti esaminarlo se non lo hai fatto. Molto ben documentato.
  • CakePHP : l'ho usato molto tempo fa e non è riuscito a leggere la documentazione. Apparentemente adesso è meglio e probabilmente vale la pena di essere preso in considerazione.

  • Yii : non l'ho usato, ma di recente c'è molta confusione, probabilmente vale la tua attenzione.

  • CodeIgniter : molte persone hanno elogiato il code-code per la sua facile curva di apprendimento e facilità d'uso. Non l'ho usato.

Se vuoi provare Python, molte persone lodano Django e, naturalmente, rubino su rotaie.

Probabilmente ce ne sono altri, ma questo dovrebbe esserti utile. Se non vuoi usarli puoi ancora imparare molto da questi framework. Buona fortuna!

    
risposta data 27.07.2011 - 21:57
fonte
1

La risposta dipende in gran parte da ciò che stai cercando di ottenere.

Se hai intenzione di sviluppare le tue abilità, impara a gestire i contenuti, ecc. Allora sì, con ogni mezzo, sviluppa il tuo. Allo stesso modo se vuoi imparare un framework usalo.

Tuttavia, se il tuo obiettivo è il gioco che menzioni e i suoi giocatori, la risposta è quasi certamente no. Il tuo tempo è una risorsa finita, e quindi costosa. Il tempo speso per lo sviluppo di un CMS è tempo non speso per lo sviluppo del gioco, ed è il gioco che genera entrate. Quindi porsi la domanda. Il tempo impiegato per lo sviluppo di questo CMS è piuttosto che procurarsi un'esperienza di gioco migliore per i miei giocatori più del tempo dedicato allo sviluppo del gioco? Se la risposta è sì, sviluppala, altrimenti non farlo.

Allo stesso modo, la decisione del CMS open source su ExpressionEngine dovrebbe ridurre ToC come dice Saeed. Inserisci semplicemente se Costo (Wordpress) > Costo (ExpressionEngine) quindi spendi i $ 300. Qui il costo è purchase_cost + (hours_to_customise * your_hourly_rate).

    
risposta data 28.07.2011 - 12:56
fonte
1

Trova un CMS che si adatti al 90% delle tue esigenze e modificalo nel tempo per aggiungere funzionalità che non fornisce.

Questo ti permetterà di lanciarti presto e adattarti al cambiamento delle tue esigenze e dei tuoi utenti.

    
risposta data 29.07.2011 - 17:07
fonte
1

Ti incoraggio pienamente a creare il tuo CMS. È di gran lunga il modo migliore per conoscere i dettagli di un tale sistema in termini di personalizzazione e sicurezza. Ma devo chiedermi quanto sei intermedio o avanzato con le tue abilità PHP. Questo non riguarda la tua età, credimi.

La bandiera per me era "Non penso che WordPress sia abbastanza potente / scalabile per essere in grado di gestire ciò che sto cercando di fare e dopo aver armeggiato con Drupal un bel po 'negli ultimi giorni non sembra all'altezza delle mie preferenze e inoltre non è ben documentato, quindi ho un po 'di difficoltà a farlo svolgere alcuni compiti semplici. "

La miriade di libri e siti sulla personalizzazione di Worpress e Drupal, per non parlare dei siti di alto profilo su questi, dimostrano che devi sapere cosa stai facendo, ottenere siti come questi. Per non parlare, interi budget sono messi da parte per gestire questi siti.

Link per esempio:

link

link

Questo non è per scoraggiarti in quello che stai cercando di fare, con tutti i mezzi per farlo. Voglio solo assicurarmi di non sprecare troppo tempo (reinventare la ruota) e di sentirti frustrato a un certo punto e di dire "eff it", quando puoi estendere i tuoi talenti e mostrare persone, inclusi i datori di lavoro , cosa hai con gli strumenti attualmente disponibili. Nel mondo reale e nell'attuale economia, il tempo è denaro e le aziende e le organizzazioni non hanno il tempo e / oi budget per occuparsi continuamente della creazione di progetti da zero.
Le informazioni oggi si muovono alla velocità della luce, motivo per cui i programmatori che possono separare il rumore e creare contenuti / app / sistemi mirati in tempi di consegna appropriati sono molto richiesti.

    
risposta data 30.07.2011 - 00:29
fonte
0

Solo tu puoi rispondere se Wordpress o Drupal possono fare quello che ti serve un CMS, ma se vuoi provarli, perché non usare una macchina virtuale da Linux chiavi in mano , come quello per Wordpress , Drupal , Joomla o uno degli altri con Gestione dei contenuti tag.

Supponendo che tu abbia già lettore VMware o VirtualBox installato, entro pochi minuti dal download di una qualsiasi di queste appliance, potresti provare tu stesso il software, con un investimento minimo di tempo.

    
risposta data 27.07.2011 - 18:47
fonte

Leggi altre domande sui tag