Como desarrollador web PHP de nivel intermedio a avanzado y joven (15 años), ¿debería crear un CMS completamente nuevo para mi sitio web o confiar en software prefabricado como WordPress o Drupal?
No creo que WordPress sea lo suficientemente potente / escalable como para poder manejar lo que estoy tratando de hacer y después de jugar un poco con Drupal en los últimos días, no parece estar a la altura de mi gusto. y tampoco está bien documentado, así que tengo algunos problemas para hacer que realice ciertas tareas simples. Me encantaría usar algo como ExpressionEngine, pero no tengo el dinero para pagar una licencia comercial que actualmente cuesta alrededor de $ 300, por lo que no se puede.
Originalmente comencé a codificar mi sitio como un sistema temporal para que mis usuarios pudieran comprar actualizaciones y otras cosas como la moneda del juego hasta que pudiera abrir un nuevo sitio web, pero después de comenzar, rápidamente me di cuenta de que necesitaba hacerlo escalable , así que a partir de entonces codifiqué con la idea de convertirlo en un sitio web con pleno funcionamiento. Solo tomó un par de días, pero todos los elementos básicos están ahí (registro, inicio de sesión, modificaciones de la cuenta, etc.) y creo que sería un gran comienzo para un CMS privado.
Lo último que quiero agregar es que si tuviera que construir mi propio CMS, ¿debería usar un marco PHP como CodeIgniter, con el que tengo bastante experiencia?
Tal vez otros desarrolladores podrían darme pistas sobre en qué me estoy metiendo.
Respuestas:
Depende totalmente de tu situación. Se han hecho grandes sitios con CMS por ahí. Creo que es mejor que primero comprendamos dos conceptos, CO y TCO.
CO (costo de propiedad)
Cuando compra algo, el monto que paga es CO. En el caso de WordPress, no es nada, porque WordPress (o muchos otros softwares CMS) son gratuitos.
TCO (costo total de propiedad)
Imagine que compra una PC por 10000 dólares. ¿Y que? Debería dedicar tiempo a instalar el software en él (el tiempo es un recurso valioso, por lo tanto, es como gastar dinero en esa PC), luego puede comprar una cámara web, otra grabadora de DVD y algunos cables adicionales. Entonces necesita aprender a usar el software instalado. En otras palabras, el costo total de poseer una PC no es de $ 10,000. Es mucho más que eso.
En el caso del software CMS, su CO realmente no tiene nada que ver con tasas muy bajas. Pero muchas experiencias muestran que su TCO no es bajo en absoluto. Las grandes empresas gastan casi miles de dólares para obtener un buen sitio en Joomla o WordPress.
Otro factor es el nivel de personalización . A veces desea utilizar un software tal como está sin ningún cambio. En ese caso, WordPress, Joomla, Drupal o cualquier otro CMS podría ser un muy buen candidato, y no debe escribir su propio CMS. Pero hay veces que necesita un alto nivel de personalización. En ese caso, realmente se frustra al personalizar un CMS listo para usar para satisfacer sus necesidades.
En realidad, quería usar el software CMS listo, pero después de pasar un tiempo valioso aprendiendo diferentes CMS y descubriendo las debilidades de cada uno, terminé creando mi propio CMS. Thought Results es mi sitio personal y se crea a través de este CMS. Lo publicaré pronto, para que otros también puedan usarlo.
Todavía otro factor es la extensibilidad . Créeme, te hace viejo llevar un CMS del estado estático al estado extensible. Las plantillas, módulos, complementos, proveedores, bases de datos y almacenamiento, mecanismos de enrutamiento y casi cualquier parte de un buen CMS deben ser extensibles.
Por último, mi sugerencia personal es comenzar a construir un CMS, para que al menos aprenda algunos de los conceptos más fundamentales detrás de él. Pero también trate de usar los existentes. Buena suerte.
fuente
Estoy jugando a los defensores de los demonios aquí, sin embargo, hay que decirlo. Algunos de los problemas más comunes con los desarrolladores de software:
¿Está seguro de que no está cometiendo ninguno de estos errores, porque incluso por unos 15 años, $ 300 podrían ganarse en unas pocas semanas, y lo que parece proponer podría llevar meses. Piense en lo que sucedería si tuviera un trabajo remunerado y comprara ExpressionEngine con el dinero. ¿Se entregaría antes, con características aún mejores que un trabajo de bricolaje?
fuente
Hay dos respuestas a esto.
Una es simple: no, no reinventes la rueda. Hay muchos sistemas CMS excelentes y si aprende a usar uno bien, entonces, si necesita algo que no ofrece, puede concentrar más su habilidad en crear un complemento para ese propósito en lugar de reinventar el rueda.
El segundo es un poco menos obvio: sí. Si desea comprender cómo funciona un CMS y los problemas que se encuentran en la creación de uno, no hay ningún daño en construir su propio. Probablemente nunca tendrá el poder y la flexibilidad de uno de los sistemas CMS existentes y como hay aproximadamente 100000000000 sistemas de gestión de contenido PHP en el lugar, hay muy pocas posibilidades de que alguien más esté interesado en él, pero tampoco lo hará. tenga las cosas que no necesita y probablemente funcionará mucho más pequeño y más simple que cualquiera de los sistemas más grandes. Tomará mucho tiempo, es poco probable que los resultados sean tan buenos y no hará ninguna diferencia para el resto del mundo, pero en términos de su desarrollo y aprendizaje, podría ser un ejercicio útil.
En cualquier caso, antes de embarcarse en la construcción de la suya, probaría los sistemas principales disponibles solo para tener una idea de cómo funcionan, qué hacen bien y qué creen que podrían hacer mejor. Tener una buena comprensión de esos puede informar su decisión sobre si hay o no algún beneficio en la creación de la suya.
fuente
Si nunca ha intentado programar un CMS, esta podría ser una muy buena oportunidad para hacerlo. Aprenderá bastante y, independientemente de si lo termina, tendrá una muy buena idea de, por ejemplo:
Incluso puede encontrar algunos de estos que ha aprendido cómo no hacerlo. Esa experiencia también es importante.
Personalmente, llegué a una etapa en la que aprendí que "cuán difícil puede ser" solo cubre un pequeño porcentaje del trabajo que realmente se necesita hacer para crear un producto de alta calidad, y si tuviera que elegir un CMS, buscaría uno popular con una base de código accesible accesible y una buena documentación, y una buena arquitectura de complementos que me permita escribir complementos adecuados y luego actualizar el CMS base cuando salga una nueva versión.
fuente
Esto es solo un poco una respuesta a su pregunta. Supuse que te gusta php y no vas por la forma CMS prefabricada. ¡Bienvenido al club! Muchos de nosotros hemos ido por el mismo camino. Algún consejo que podría aliviar su carga.
Comencé a construir mi propio CMS, implementación de MVC, controlador de internacionalización (i18n), controlador de sesión, alguna forma de capa de abstracción de base de datos, alguna forma de controladores de formulario, etc. Y luego descubrí que lo que estaba haciendo realmente estaba hecho antes, pero de una mejor manera por frameworks. Entonces, esto significa que no tiene que reinventar la rueda por completo, sino justo donde se ajusta a sus necesidades. Los marcos hacen su vida más fácil, pero requieren mucho esfuerzo para leer y aprender. Me llevó un año dominar realmente Symfony, y no me arrepiento en ningún momento.
Y tienes suerte, porque en este momento hay muchos más marcos de alta calidad que antes. Para nombrar unos pocos :
CakePHP : Lo usé hace mucho tiempo y no pude pasar por la documentación. Aparentemente, esto ahora es mejor y probablemente valga la pena considerarlo.
Yii : No lo he usado, pero últimamente hay mucha confusión, probablemente valga la pena.
CodeIgniter : escuché a muchas personas elogiar a codeigniter por su fácil curva de aprendizaje y facilidad de uso. No lo he usado.
Si quieres probar Python, muchas personas también elogian a Django y, por supuesto, a Ruby on Rails.
Probablemente haya más, pero esto debería serle útil. Si no desea utilizarlos, aún puede aprender mucho de estos marcos. ¡Buena suerte!
fuente
La respuesta depende en gran medida de lo que intente lograr.
Si tiene la intención de desarrollar sus habilidades, aprenda sobre la gestión de contenido, etc. Entonces sí, por supuesto, desarrolle las suyas propias. Del mismo modo, si desea aprender un marco, úselo.
Sin embargo, si su enfoque es el juego que menciona y sus jugadores, entonces la respuesta es casi seguro que no. Su tiempo es un recurso finito y, por lo tanto, costoso. El tiempo dedicado a desarrollar un CMS es tiempo que no se dedica a desarrollar el juego, y es el juego el que genera ingresos. Entonces hazte la pregunta. ¿El tiempo dedicado a desarrollar este CMS en lugar de adquirir uno va a mejorar la experiencia de juego de mis jugadores más que el tiempo dedicado a desarrollar el juego? Si la respuesta es sí, entonces desarrolle, de lo contrario no lo haga.
De manera similar, la decisión del CMS de código abierto sobre ExpressionEngine debería reducir el ToC como dice Saeed. En pocas palabras, si Cost (Wordpress)> Cost (ExpressionEngine) gasta los $ 300. Aquí el costo es el costo_compra + (horas_para_personalizar * su_hora_tiempo).
fuente
Encuentre un CMS que se ajuste al 90% de sus necesidades y modifíquelo con el tiempo para agregar funcionalidad que no proporciona.
Esto le permitirá iniciar temprano y adaptarse a medida que cambien sus necesidades y las de sus usuarios.
fuente
Te animo totalmente a construir tu propio CMS. Es, con mucho, la mejor manera de conocer los entresijos de un sistema de este tipo con respecto a la personalización y la seguridad. Pero tengo que preguntarme qué tan intermedio o avanzado eres con tus habilidades de PHP. Esto no se refiere a tu edad, créeme.
La bandera para mi fue "No creo que WordPress sea lo suficientemente potente / escalable como para poder manejar lo que estoy tratando de hacer y después de jugar un poco con Drupal en los últimos días, simplemente no parece a la altura de mi gusto y tampoco está bien documentado, por lo que tengo algunos problemas para hacer ciertas tareas simples ".
La gran cantidad de libros y sitios sobre la personalización de Worpress y Drupal, sin mencionar los sitios de alto perfil que se ejecutan en estos, demuestran que debe saber qué está haciendo para obtener sitios como estos. Sin mencionar que se reservan presupuestos completos para ejecutar estos sitios.
Enlaces por ejemplo:
http://drupal.org/cases
http://wpmu.org/wordpress-showcase-20-high-profile-sites-running-on-wordpress
Esto no es para desanimarte en lo que estás tratando de hacer, hazlo. Solo quiero asegurarme de que no dediques demasiado tiempo (reinventando la rueda) y te frustres en cierto momento y solo digas "ef", cuando puedas estirar tus talentos y mostrar a la gente, incluidos los empleadores , lo que tienes con las herramientas disponibles actualmente. En el mundo real y la economía actual, el tiempo es dinero, y las empresas y organizaciones no tienen el tiempo y / o presupuestos para lidiar continuamente con la creación de proyectos desde cero.
La información actual se mueve a la velocidad de la luz, razón por la cual los programadores que pueden separar el ruido y crear contenido / aplicaciones / sistemas con un tiempo de respuesta adecuado tienen una gran demanda.
fuente
Solo usted puede responder si Wordpress o Drupal pueden hacer lo que necesita un CMS, pero si desea probarlos, ¿por qué no utilizar una máquina virtual de Turnkey Linux , como la de Wordpress , Drupal , Joomla o cualquiera de los demás con la etiqueta de gestión de contenido .
Suponiendo que ya tiene instalado el reproductor VMware o VirtualBox , a los pocos minutos de descargar cualquiera de estos dispositivos, podría probar el software usted mismo, con una inversión de tiempo mínima.
fuente