Relacionado : Como programador iniciante, devo favorecer a criação de minhas próprias bibliotecas do que usar bibliotecas de terceiros?
Como desenvolvedor web PHP de nível intermediário a avançado e mais jovem (15 anos), devo criar um CMS totalmente novo para o meu site ou confiar em software pré-fabricado como WordPress ou Drupal?
Eu não acho exatamente que o WordPress seja poderoso / escalável o suficiente para ser capaz de lidar com o que estou tentando fazer e, depois de mexer bastante com o Drupal nos últimos dias, ele simplesmente não parece a par do meu gosto. e também não está bem documentado, por isso estou com um pouco de dificuldade para fazer certas tarefas simples. Eu adoraria usar algo como o ExpressionEngine, mas não tenho dinheiro para pagar uma licença comercial que atualmente custa cerca de US $ 300, então é impossível.
Inicialmente, comecei a codificar meu site como um sistema temporário, para que meus usuários pudessem comprar atualizações e outras coisas, como a moeda do jogo, até que eu pudesse criar um novo site, mas depois que comecei, percebi rapidamente que precisava torná-lo escalável , então a partir de então eu codifiquei com o pensamento de torná-lo um site com pleno funcionamento em mente. Demorou apenas alguns dias, mas todos os conceitos básicos estão lá (registro, login, modificações de conta etc.) e acredito que seria um ótimo começo para um CMS privado.
A última coisa que quero acrescentar é que, se eu construísse meu próprio CMS, devo usar uma estrutura PHP como o CodeIgniter, com a qual tenho alguma experiência?
Talvez outros desenvolvedores possam me informar sobre o que eu posso estar me metendo.
Respostas:
Depende totalmente da sua situação. Grandes sites foram criados com CMSs por aí. Acho melhor entendermos primeiro dois conceitos, CO e TCO.
CO (custo de propriedade)
Quando você compra algo, o valor pago é CO. No caso do WordPress, não é nada, pois o WordPress (ou muitos outros softwares CMS) é gratuito.
TCO (custo total de propriedade)
Imagine que você compra um PC por 10000 dólares. Então o que? Você deve dedicar tempo à instalação do software (o tempo é um recurso valioso; portanto, você ainda gasta dinheiro com esse PC); pode comprar uma webcam, outro gravador de DVD e alguns cabos extras. Então você precisa aprender como usar o software instalado. Em outras palavras, o custo total de propriedade de um PC não é de US $ 10.000. É muito mais que isso.
No caso do software CMS, o CO deles é realmente nada a taxas muito baixas. Mas muitas experiências mostram que seu custo total de propriedade não é nada baixo. As grandes empresas gastam quase milhares de dólares para obter um bom site no Joomla, ou WordPress.
Outro fator é o nível de personalização . Às vezes, você deseja usar um software como está sem nenhuma alteração. Nesse caso, WordPress, Joomla, Drupal ou qualquer outro CMS pode ser um candidato muito bom, e você não deve escrever seu próprio CMS. Mas há momentos em que você precisa de um alto nível de personalização. Nesse caso, você fica realmente frustrado ao personalizar um CMS pronto para usar para atender às suas necessidades.
Na verdade, eu queria usar um software CMS pronto, mas depois de passar um tempo valioso aprendendo diferentes CMSs e encontrando pontos fracos de cada um, acabei criando meu próprio CMS. O Thought Results é o meu site pessoal e é construído através deste CMS. Vou publicá-lo em breve, para que outros também possam usá-lo.
Ainda outro fator é a extensibilidade . Acredite, você envelhece para levar um CMS de um estado estático para um estado extensível. Modelos, módulos, plugins, provedores, banco de dados e armazenamento, mecanismos de roteamento e quase qualquer parte de um Good CMS devem ser extensíveis.
Por fim, minha sugestão pessoal é começar a construir um CMS, para que pelo menos você aprenda alguns dos conceitos mais fundamentais por trás dele. Mas também tente usar os existentes. Boa sorte.
fonte
Estou bancando o advogado do diabo aqui, no entanto, isso precisa ser dito. Alguns dos problemas mais comuns com desenvolvedores de software:
Tem certeza de que não está cometendo nenhum desses erros, porque mesmo para 15 a 0, US $ 300 podem ser ganhos em algumas semanas, e o que você parece estar propondo pode levar meses. Pense no que aconteceria se você conseguisse um emprego remunerado e comprasse o ExpressionEngine com o dinheiro. Seria entregue mais cedo, com recursos ainda melhores do que um trabalho de bricolage?
fonte
Existem duas respostas para isso.
Um é simples: não, não reinvente a roda. Existem muitos sistemas CMS excelentes e, se você aprender a usar um bem, se precisar de algo que ele não ofereça, concentre-se mais na criação de um plug-in para esse fim, em vez de reinventar o roda.
O segundo é um pouco menos óbvio: sim. Se você deseja entender como um CMS funciona e os problemas encontrados na criação de um, não há mal algum em criar o seu. Provavelmente nunca terá o poder e a flexibilidade de um dos sistemas CMS existentes e, como existem aproximadamente 100000000000 sistemas de gerenciamento de conteúdo PHP em todo o lugar, há muito pouca chance de alguém se interessar por ele, mas também não terá tem o material que você não precisa e provavelmente funcionará muito menor e mais simples do que qualquer um dos sistemas maiores. Levará muito tempo, é improvável que os resultados sejam tão bons e não fará nenhuma diferença para o resto do mundo, mas em termos de desenvolvimento e aprendizado, pode ser um exercício útil.
De qualquer forma, antes de você começar a construir seus próprios, eu tentaria os sistemas principais disponíveis apenas para ter uma idéia de como eles funcionam, o que eles fazem bem e o que você acha que eles poderiam fazer melhor. O bom entendimento dessas informações pode informar sua decisão sobre se existe ou não algum benefício em criar sua própria.
fonte
Se você nunca tentou programar um CMS, essa pode ser uma oportunidade muito boa para fazê-lo. Você aprenderá bastante e, independentemente de terminá-lo, terá uma idéia muito boa de, por exemplo:
Algumas delas você pode até achar que aprendeu a não fazê-lo. Essa experiência também é importante.
Pessoalmente, cheguei a um estágio em que aprendi que o "quão difícil pode ser" cobre apenas alguns por cento do trabalho que realmente precisa ser feito para criar um produto de alta qualidade e, se eu escolher um CMS, procuraria um popular com uma base de código acessível acessível e boa documentação, e uma boa arquitetura de plugins, permitindo-me escrever plugins adequados e, em seguida, atualizar o CMS base quando surgir uma nova versão.
fonte
Esta é apenas uma resposta à sua pergunta. Eu assumi que você está no php e não está seguindo o caminho pré-fabricado do CMS. Bem-vindo ao clube! Muitos de nós seguiram o mesmo caminho. Alguns conselhos que podem facilitar sua carga.
Comecei a criar meu próprio CMS, implementação MVC, manipulador de internacionalização (i18n), manipulador de sessões, algum tipo de camada de abstração de banco de dados, algum tipo de manipulador de formulários, etc. E então descobri que o que estava fazendo estava realmente feito antes, mas de uma maneira melhor por estruturas. Portanto, isso significa que você não precisa reinventar a roda completamente, mas apenas onde ela se adapta às suas necessidades. As estruturas facilitam sua vida, mas exigem muito esforço para serem lidas e aprendidas. Levei um ano para realmente dominar o Symfony, e não me arrependo nem por um segundo.
E você está com sorte, porque agora existem muito mais estruturas de alta qualidade do que antes. Para nomear alguns :
CakePHP : Usou-o há muito tempo e não pôde passar pela documentação. Aparentemente, isso agora é melhor e provavelmente vale a pena considerar.
Yii : Ainda não o usei, mas há muita confusão ultimamente, provavelmente vale a sua atenção.
CodeIgniter : Ouvimos muitas pessoas elogiarem o codeigniter por sua curva de aprendizado fácil e facilidade de uso. Não usei.
Se você quiser experimentar o python, muitas pessoas também elogiam o Django e, é claro, ruby on trails.
Provavelmente há mais, mas isso deve ser útil para você. Se você não quiser usá-los, ainda poderá aprender muito com essas estruturas. Boa sorte!
fonte
A resposta depende muito do que você está tentando alcançar.
Se você pretende desenvolver suas habilidades, aprenda sobre gerenciamento de conteúdo, etc. Então sim, por todos os meios, desenvolva suas próprias. Da mesma forma, se você quiser aprender uma estrutura, use-a.
No entanto, se o seu foco é o jogo que você mencionou e seus jogadores, a resposta é quase certamente não. Seu tempo é um recurso finito e, portanto, caro. O tempo gasto no desenvolvimento de um CMS não é o tempo gasto no desenvolvimento do jogo, e é o jogo que gera receita. Então faça a si mesmo a pergunta. O tempo gasto desenvolvendo esse CMS, em vez de adquirir um, melhorará a experiência de jogo dos meus jogadores mais do que o tempo gasto desenvolvendo o jogo? Se a resposta for sim, desenvolva-a, caso contrário não.
Da mesma forma, a decisão do CMS de código aberto sobre o ExpressionEngine deve diminuir o ToC, como diz Saeed. Basta colocar se Custo (Wordpress)> Custo (ExpressionEngine) e gastar US $ 300. Aqui, o custo é o custo de compra + (horas_para_personalizar * sua_de_horas_de_horas).
fonte
Encontre um CMS que atenda a 90% de suas necessidades e modifique-o com o tempo para adicionar funcionalidades que ele não fornece.
Isso permitirá que você inicie mais cedo e se adapte conforme as necessidades de você e do usuário mudam.
fonte
Convido você a criar seu próprio CMS. É de longe a melhor maneira de conhecer os meandros de um sistema desse tipo no que diz respeito à personalização e segurança. Mas tenho que questionar o quanto você é intermediário ou avançado com suas habilidades em PHP. Isso não diz respeito à sua idade, acredite.
A bandeira para mim foi "Eu não acho exatamente que o WordPress seja poderoso / escalável o suficiente para ser capaz de lidar com o que estou tentando fazer e, depois de mexer bastante com o Drupal nos últimos dias, simplesmente não parece parecido com o meu gosto e também não está bem documentado, por isso estou tendo um pouco de dificuldade para fazer certas tarefas simples. "
A infinidade de livros e sites sobre a personalização do Worpress e Drupal, sem mencionar os sites de alto perfil que são executados nesses sites, prova que você precisa saber o que está fazendo para obter sites como esses. Sem mencionar, orçamentos inteiros são reservados para a execução desses sites.
Links por exemplo:
http://drupal.org/cases
http://wpmu.org/wordpress-showcase-20-high-profile-sites-running-on-wordpress
Isso não é para desencorajá-lo no que você está tentando fazer, por todos os meios. Eu só quero ter certeza de que você não gaste muito tempo (reinventando a roda) e fique frustrado em um determinado momento e apenas diga "ef it", quando você pode expandir seus talentos e mostrar às pessoas, incluindo os empregadores , o que você tem com as ferramentas disponíveis no momento. No mundo real e na economia atual, tempo é dinheiro, e as empresas e organizações não têm tempo e / ou orçamento para lidar continuamente com a criação de projetos a partir do zero.
Atualmente, as informações se movem na velocidade da luz, e é por isso que os programadores que podem separar o ruído e criar conteúdo / aplicativos / sistemas propositais em tempo de resposta adequado estão em alta demanda.
fonte
Somente você pode responder se o Wordpress ou o Drupal podem fazer o que você precisa que um CMS faça, mas se você quiser experimentá-los, por que não usar uma máquina virtual do Turnkey Linux , como a do Wordpress , Drupal , Joomla ou qualquer um dos os outros com a tag Gerenciamento de conteúdo .
Supondo que você já tenha o VMware player ou o VirtualBox instalado, alguns minutos após o download de qualquer um desses dispositivos, você poderá experimentar o software por conta própria, com um investimento de tempo mínimo.
fonte