Defiant 는 Node.js 웹 앱 프레임 워크입니다. 파괴 기술 구축을 촉진합니다.
Defiant는 제작자가 이와 같은 시스템을 설계 해야하는 방식과 사용 가능성에 대한 강한 의견을 가지고 있기 때문에 그 이름을 따서 명명되었습니다. (기존의 많은 프레임 워크가 기본적으로 서로의 클론 인 것처럼 보였기 때문에 "도전"이라고도 불렸다. 우리는 완전히 다른 것을하고 싶었다.)
Defiant는 완성 된 프로젝트가 아닙니다 . 그러나 그것은 활발한 작업이 진행되며 귀하의 의견을 환영합니다. 도착할 수있는 곳을 확인하려면 로드맵을 확인하십시오!
현재, 도전을보고있는 소수의 사람들 만 있습니다. 그래도 우리와 이야기하고 싶다면 여기서 슬랙에 참여하십시오! 당신의 참여는 우리에게 매우 중요합니다!
이메일을 예로 들어 봅시다. 자신의 이메일 주소 (예 : @Yourname.com)를 원한다면 두 가지 옵션 중 하나가 있습니다. 자신의 이메일 서버를 설정하거나 누군가 (Google, Zoho 등)가 월별/연간 요금으로 호스팅하십시오. 자체 관리는 매우 복잡합니다 (방화벽 설정, IMAP/POP3/SMTP 액세스, 웹 기반 프론트 엔드, 올바른 DKIM 및 SPF 레코드, SSL 인증서, 스팸 필터링, 안티 바이러스, 사용자 관리 등이있는 DNS 레코드), 결과가 잘못 될 수 있습니다. 그러나 다른 사람에게 그것을 관리하도록 지불하면 여러 사용자 계정이 필요할 때 비용이 많이들 수 있고, 사용자 정의가 거의 없으며, 항상 타사의 자비를 받고 있습니다 (그러나 그들은 당신을 감시하기로 결정할 수 있습니다).
이것은 Defiant와 어떤 관련이 있습니까? Defiant의 프레임 워크는 위에서 언급 한 모든 부분을 단일의 간단한 패키지 (최종 사용자의 관점에서)로 제공 할 수 있습니다. 어떤 의미에서, 프레임 워크의 의도는 이러한 모든 다른 개별 시스템의 상호 작용을 안무하여 우리 "단순한 필사자"가 안전하게 구현할 수있는 형식에 넣는 것입니다. Defiant는 귀하가 자체 서버의 개인 정보 보호에서 이러한 기술 (및 프록시)을 소유하고 관리 할 수 있기를 원합니다.
Defiant를 사용하여 어떤 종류의 시스템을 구축 할 수 있습니까 ?
이러한 시스템은 아직 존재하지 않지만 오히려 도전의 의도를 보여줍니다. 우리는 위에서 언급 한 시스템을 구축 (믹스 앤 매칭) 할 수있는 안전하고 사용하기 쉬운 유연한 프레임 워크를 원합니다. 우리는 대기업에서 인터넷을 되찾고 강력한 기술을 우리의 평범한 사람들의 손에 돌려 보내고 싶습니다.
그건 그렇고, 우리는 당신의 도움이 필요합니다. 도전을 개발하고 인터넷을 되 찾도록 도와주십시오. 도전적이라!
Defiant는 개발자로서 귀하 가이 프레임 워크를 사용하고 핵심 파일을 해킹하지 않고도 기능을 추가하거나 수정할 수 있어야한다고 확신합니다. 마찬가지로이 프레임 워크에 제 3 자 플러그인을 사용하고 플러그인의 기능을 추가하거나 수정하려면 플러그인 자체를 해킹하지 않고도 그렇게 할 수 있어야합니다. 아키텍처 가이 유연성을 지원하지 않으면 버그로 해석되어야하며 그렇게보고해야합니다. 요컨대, 모든 것이 우선적이어야합니다.
Defiant는 엄격한 MVC 프레임 워크를 준수하지 않습니다. 왜냐하면 그것은 우리가 생각하는 것에 대해 충분히 유연하지 않기 때문입니다.
모든 프레임 워크에는 무언가에 대한 의견이 있습니다. 일부는 파일의 위치에 관심이 있고 일부는 특정 패러다임을 시행하려고합니다. Defiant의 의견은 이질적인 부분이 어떻게 상호 작용 해야하는지에 관한 것입니다. JavaScript Language와 Node.js 플랫폼은 통합 아키텍처에서 다양한 문제와 사용 사례를 해결하기위한 독특하고 강력한 도구 세트를 제공합니다.
우리는 오픈 소스가 바로 그럴 것이라고 생각합니다. 완전히 열려 있습니다. 우리는 일반적으로 다른 프로젝트에 대한 요구를 배치하는 GPL의 일부 조항에 동의하지 않으므로 MIT 라이센스에 따라이 프로젝트를 라이센스했습니다.
이상적인 세상에서, 저작권은 우리가 더 큰 선을 위해 무시할 수있는 것일 것입니다. 불행하게도, 변호사, 정치인 및 기업 탐욕은 복잡한 것들을 가지고 있으므로 우리는 그들이 만든 부담으로 운영해야합니다. 따라서, 도전적인 프로젝트의 저작권 보유자는 Corey Pennycuff입니다. 이 프로젝트에 기여하는 사람은 고의적 인 기여로 인해 Corey Pennycuff에 대한 기여에 대한 저작권을 할당하기로 동의하고 그들이 그렇게 할 법적 권한이 있음을 확인합니다. 이 조항에 대한 예외는 제 3 자 라이브러리를 포함시킬 경우 허용되며, 이는 자체 하위 디렉토리 내에 존재해야하며 적절한 저작권 소유권 정보를 포함해야합니다.
도전적인 선언문은 도전적인 프로젝트의 철학을 설명합니다. 그들은 다음과 같습니다.
이러한 아이디어를 어떻게 적용하는지 이해하려면 (짧은) 선언 자체를 읽으십시오.
지금까지 나는 Linux (특히 Debian)와 Windows 10의 Linus (WSL)의 Windows 하위 시스템에서만 테스트했습니다.
최소한 최소한 python 및 sqlite3 패키지를 설치해야합니다. build-essential 도 필요할 수도 있습니다.
apt-get install python sqlite3이들은 도전에 의존하는 모듈의 설치에 필요합니다. 코드 기반의 직접적인 종속성이 아닙니다.
시간이 걸릴 것입니다 ...
npm install 기본적으로 Defiant는 /var/defiant 디렉토리에 정보를 저장하려고합니다. 이것은 미래에 구성 할 수 있습니다. 지금은 디렉토리를 만들고 디렉토리에 대한 쓰기 권한이 있는지 확인하십시오.
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는 포트 8888 에서 실행되기 시작하기 시작합니다 (이것은 향후 구성 가능)이므로 http://localhost:8888 로 이동하여 사이트가 실행되는 것을 확인할 수 있어야합니다. 관리자 사용자 이름 및 비밀번호의 콘솔 출력을보십시오.
Defiant는 현재 많은 일을하지 않으며 진지한 일을 전혀 준비하지 않습니다. 왜? 물론 여전히 건축되고 있기 때문입니다! 그것의 일부는 개발자의 마음과 대화에만 존재합니다. 당신이 도와주고 싶다면, 우리에게 메시지를 보내고 현재 로드맵이 무엇인지 알아보십시오.
로드맵을보고 작동중인 것이 무엇인지, 즉시 레이더에 무엇이 있는지 확인하십시오. 더 나은 것은 저에게 연락하여 어떻게 뛰어 들어 개발에 도움을 줄 수 있는지 알아보십시오!
우리는 반복합니다 :이 코드는 아직 생산 작업을위한 것이 아닙니다.
문서는 여기에서 찾을 수 있습니다.
API의 어떤 것도 돌로 설정되지 않았으며 공식 문서는 거의 없습니다 (우리는 코드에 책임감있게 코드를 주석하려고하지만). 또한 이것은 첫 번째 초안이며 완료되지는 않습니다. 코드를 보면 시스템 전체에 해킹과 토도가 흩어져 있습니다. 때때로 해킹은 다른 반 관련 부분을 살 수 있도록 작업을 수행하는 것입니다. 나중에 코드를 다시 방문하려는 의도가 있습니다. 때로는 TODO가 아이디어를 나타내는 스터브 일뿐입니다. 또는 나중에 시스템과 인터페이스해야 할 위치를 나타내는 것입니다. 때로는이 기능이 저자의 마음에만 존재합니다. ESP는 여기서 도움이 될 것입니다 ...
무엇보다도, 우리는 당신이 신선하고 무료 코딩 경험의 희망을 위해 대중의 트렌드와 지혜를 충족 시키도록 권장합니다. 그것이 실패하면, 당신도 크랭크 될 수 있습니다. 그래도 당신이 무엇이든 ... 도전적이어야합니다!