Defiant é uma estrutura de aplicativos da web node.js destinada a facilitar a construção da tecnologia disruptiva.
Defiant é assim chamado porque seus criadores têm opiniões fortes sobre como um sistema como esse deve ser projetado, bem como seu potencial de uso. (Também era chamado de "desafiador" porque parecia que muitas das estruturas existentes eram basicamente clones um do outro, e queríamos fazer algo completamente diferente.)
Defiant não é um projeto acabado. É, no entanto, um trabalho ativo em andamento e receberíamos sua opinião. Confira o roteiro para ver onde você pode pular!
No momento, há apenas um punhado de pessoas olhando para Defiant. Se você gostaria de falar conosco, junte -se a nós no Slack aqui! Seu envolvimento é inestimável para nós!
Vamos usar o email como exemplo. Se você deseja seu próprio endereço de e -mail (por exemplo, @yourname.com), você tem uma de duas opções: configure seu próprio servidor de e -mail ou tenha alguém (como Google, Zoho etc.) hospede -o para você, provavelmente por uma taxa mensal/anual. A auto-gerenciamento é extremamente complicada (configurando firewalls, acesso IMAP/POP3/SMTP, um front-end baseado na Web, registros DNS com registros corretos de DKIM e SPF, certificados SSL, filtragem de spam, antivírus, gerenciamento de usuários etc.) e, se você errar, os resultados podem ser catastróficos. Pagar outra pessoa para gerenciá -lo, no entanto, pode ficar caro quando você precisar de várias contas de usuário, permite pouca personalização e você está sempre à mercê daquela terceira parte (e, no entanto, eles podem decidir espionar você).
O que isso tem a ver com desafiador? A estrutura da Defiant pode fornecer todas as peças mencionadas acima, envolvidas em um pacote simples e simples (da perspectiva do usuário final). Em certo sentido, a intenção da estrutura é coreografar a interação de todos esses sistemas individuais diferentes e colocá -los em um formato que nós "meros mortais" podem implementar com segurança. Defiant deseja que você possa possuir e gerenciar essas tecnologias (e, por proxy, seus próprios dados) a partir da privacidade de nossos próprios servidores.
Que tipo de sistema poderia ser construído usando desafiador?
Esses sistemas ainda não existem, mas mostram a intenção por trás do Defiant. Queremos ter uma estrutura segura, fácil de usar e flexível a partir da qual construir (misturar e combinar, na verdade) os sistemas acima mencionados. Queremos levar a Internet de volta das grandes corporações e colocar tecnologias poderosas de volta às mãos de nós, pessoas normais.
A propósito, precisamos da sua ajuda para fazê -lo. Por favor, considere nos ajudar a desenvolver desafiador e retomar a Internet. Seja desafiador!
Defiant acredita firmemente que você, como desenvolvedor, deve poder usar essa estrutura e adicionar ou modificar sua funcionalidade sem ter hackear os arquivos principais. Da mesma forma, se você estiver usando um plug -in de terceiros para essa estrutura e desejar adicionar ou modificar a funcionalidade do plug -in, poderá fazê -lo sem precisar invadir o próprio plug -in. Se a arquitetura não suportar essa flexibilidade, isso deve ser interpretado como um bug e deve ser relatado como tal. Em suma, tudo deve ser substituído.
Defiant não adere a uma estrutura estrita de MVC, porque isso não é flexível o suficiente para o que temos em mente.
Toda estrutura tem opiniões sobre algo. Alguns se preocupam com onde seus arquivos são colocados e outros querem aplicar paradigmas específicos. As opiniões de Defiant são sobre como as partes díspares devem interagir. A linguagem JavaScript e a plataforma Node.js fornecem um conjunto único e poderoso de ferramentas para resolver muitos problemas e casos de uso diferentes sob uma arquitetura unificada.
Acreditamos que o código aberto deve ser exatamente isso: completamente aberto. Geralmente, discordamos de algumas das disposições da GPL, que impõem exigências de outros projetos e, portanto, licenciamos esse projeto sob a licença do MIT.
Em um mundo ideal, os direitos autorais seria algo que poderíamos ignorar para o bem maior. Infelizmente, advogados, políticos e ganância corporativa têm coisas complicadas, por isso devemos operar sob o fardo que eles criaram. Como tal, o detentor dos direitos autorais do projeto desafiador é Corey Pennycuff. Qualquer colaborador do projeto, em virtude de sua contribuição voluntária, concorda em atribuir direitos autorais da contribuição a Corey Pennycuff e afirma que eles têm autoridade legal para fazê -lo. A exceção a esta disposição é permitida no caso de inclusão de bibliotecas de terceiros, que devem existir totalmente dentro de seu próprio subdiretório e conter informações apropriadas de propriedade de direitos autorais.
O manifesto desafiador explica a filosofia do projeto desafiador. Eles são:
Leia o próprio manifesto (curto) para entender como aplicamos essas idéias.
Até agora, testei isso apenas no Linux (especificamente, Debian) e no Subsistema do Windows para Linus (WSL) no Windows 10.
No mínimo, você precisa instalar os pacotes python e sqlite3 . Você também pode precisar de build-essential .
apt-get install python sqlite3Estes são necessários para a instalação de módulos dos quais o desafiador depende. Não é uma dependência direta da base de código.
Isso vai demorar um pouco ...
npm install Por padrão, a Defiant tenta armazenar informações no diretório /var/defiant . Isso será configurável no futuro. Por enquanto, crie o diretório e verifique se você tem permissões de gravação no diretório.
const Defiant = require ( 'defiant' ) ;
new Defiant . Engine ( )
// Add Plugins.
// The Example Plugin is included with Defiant, and, of course, should not
// be included in production code.
. addPlugin ( Defiant . Plugin . Example )
// Explicitly set a directory where Defiant should look for the settings
// files. If no files exist, then appropriate defaults will be generated.
// This directory should be separate from your application code, and
// preferably under version control.
. defineBootstrapDirectory ( '/var/defiant/settings' )
// Initialize the Engine and its components.
// init() is the last call that should be made, as Defiant will now begin
// listening for connections.
. init ( ) ; Defiant começa a ser executado na porta 8888 (isso será configurável no futuro); portanto, você poderá acessar http://localhost:8888 para ver o site em execução. Veja a saída do console para o nome de usuário e senha do administrador.
Defiant não faz muito no momento e não está pronto para um trabalho sério. Por que? Porque ainda está sendo construído, é claro! Partes dela existem apenas nas mentes e conversas dos desenvolvedores. Se você quiser ajudar, envie -nos uma mensagem e descubra qual é o roteiro atual.
Veja o roteiro para ver o que está funcionando e o que está em nosso radar imediato. Melhor ainda, entre em contato comigo e descubra como você pode entrar e ajudar no desenvolvimento!
Repetimos: este código ainda não se destina a qualquer trabalho de produção.
A documentação pode ser encontrada aqui.
Nada na API está em pedra e há muito pouca documentação oficial (embora tenhamos tentado comentar o código com responsabilidade). Além disso, este é o primeiro rascunho e nem está completo. Quando você olha para o código, lembre -se disso: existem hacks e Todos espalhados por todo o sistema. Às vezes, o hack é apenas para fazer algo funcionando para que outra parte semi-relacionada possa ser desenvolvida, e há uma intenção de revisitar o código posteriormente. Às vezes, o TODO é apenas um stub que representa uma idéia ou indicando onde algo precisará interagir com o sistema posteriormente. Às vezes, o recurso existe apenas nas mentes dos autores. ESP seria útil aqui ...
Acima de tudo, incentivamos você a reverter as tendências e a sabedoria das massas pela esperança de uma experiência de codificação fresca e gratuita. Se isso falhar, você também pode ser irritado. Seja o que for, porém ... seja desafiador!