Defiant adalah kerangka kerja aplikasi web Node.js yang dimaksudkan untuk memfasilitasi pembangunan teknologi yang mengganggu.
Defiant dinamai demikian karena penciptanya memiliki pendapat yang kuat tentang bagaimana sistem seperti ini harus dirancang, serta potensinya untuk digunakan. (Itu juga disebut "menantang" karena sepertinya begitu banyak kerangka kerja yang ada pada dasarnya adalah klon satu sama lain, dan kami ingin melakukan sesuatu yang sama sekali berbeda.)
Defiant bukanlah proyek yang sudah jadi. Namun, ini merupakan pekerjaan aktif yang sedang berlangsung, dan kami akan menyambut input Anda. Lihat peta jalan untuk melihat di mana Anda bisa melompat!
Untuk saat ini, hanya ada segelintir orang yang menantang. Jika Anda ingin berbicara dengan kami, maka bergabunglah dengan kami di Slack di sini! Keterlibatan Anda sangat berharga bagi kami!
Mari kita gunakan email sebagai contoh. Jika Anda menginginkan alamat email Anda sendiri (misalnya, @yourname.com), Anda memiliki satu dari dua opsi: Siapkan server email Anda sendiri atau memiliki seseorang (seperti Google, Zoho, dll.) Menghantinkannya untuk Anda, mungkin dengan biaya bulanan/tahunan. Managing sendiri sangat rumit (menyiapkan firewall, akses IMAP/POP3/SMTP, front-end berbasis web, catatan DNS dengan catatan DKIM dan SPF yang benar, sertifikat SSL, penyaringan spam, antivirus, manajemen pengguna, dll.), Dan jika Anda salah, hasilnya bisa menjadi bencana besar. Membayar orang lain untuk mengelolanya, bagaimanapun, bisa menjadi mahal ketika Anda membutuhkan banyak akun pengguna, memungkinkan sedikit penyesuaian, dan Anda selalu berada di bawah belas kasihan pihak ke -3 itu (dan bagaimanapun mereka dapat memutuskan untuk memata -matai Anda).
Apa hubungannya ini dengan Defiant? Kerangka kerja Defiant dapat menyediakan semua bagian yang disebutkan di atas, dibungkus dalam satu paket sederhana (dari perspektif pengguna akhir). Dalam arti tertentu, niat kerangka kerja adalah untuk membuat koreografi interaksi semua sistem individu yang berbeda ini, dan menempatkan mereka ke dalam format yang dapat diterapkan oleh kita "manusia biasa" dengan aman. Defiant ingin Anda dapat memiliki dan mengelola teknologi ini (dan, dengan proxy, data Anda sendiri) dari privasi server kami sendiri.
Jenis sistem apa yang bisa dibangun menggunakan Defiant?
Sistem ini belum ada, melainkan mereka menunjukkan niat di balik Defiant. Kami ingin memiliki kerangka kerja yang aman, mudah digunakan, fleksibel untuk membangun (campuran-dan-pencocokan, benar-benar) sistem yang disebutkan di atas. Kami ingin mengambil internet kembali dari perusahaan besar dan mengembalikan teknologi yang kuat ke tangan kita orang normal.
Ngomong -ngomong, kami membutuhkan bantuan Anda untuk melakukannya. Harap pertimbangkan untuk membantu kami mengembangkan Defiant, dan mengambil kembali internet. Bersikaplah menantang!
Defiant sangat percaya bahwa Anda, sebagai pengembang harus dapat menggunakan kerangka kerja ini dan menambah atau memodifikasi fungsinya tanpa meretas file inti. Demikian juga, jika Anda menggunakan plugin pihak ke -3 untuk kerangka kerja ini, dan ingin menambahkan atau memodifikasi fungsionalitas plugin, maka Anda harus dapat melakukannya tanpa harus meretas plugin itu sendiri. Jika arsitektur tidak mendukung fleksibilitas ini, maka ini harus ditafsirkan sebagai bug dan harus dilaporkan seperti itu. Singkatnya, semuanya harus dapat diterbitkan.
Defiant tidak mematuhi kerangka MVC yang ketat, karena itu tidak cukup fleksibel untuk apa yang ada dalam pikiran kita.
Setiap kerangka kerja memiliki pendapat tentang sesuatu. Beberapa peduli di mana file Anda ditempatkan, dan beberapa ingin menegakkan paradigma tertentu. Pendapat Defiant adalah tentang bagaimana bagian yang berbeda harus berinteraksi. Bahasa JavaScript dan platform Node.js menyediakan serangkaian alat yang unik dan kuat untuk mengatasi banyak masalah dan penggunaan kasus yang berbeda di bawah arsitektur terpadu.
Kami percaya bahwa open source seharusnya hanya itu: benar -benar terbuka. Kami umumnya tidak setuju dengan beberapa ketentuan GPL yang menempatkan tuntutan pada proyek lain, dan karenanya telah melisensikan proyek ini di bawah lisensi MIT.
Di dunia yang ideal, hak cipta akan menjadi hal yang bisa kita abaikan untuk kebaikan yang lebih besar. Sayangnya, pengacara, politisi, dan keserakahan perusahaan memiliki hal -hal yang rumit, jadi kita harus beroperasi di bawah beban yang telah mereka ciptakan. Dengan demikian, pemegang hak cipta untuk proyek Defiant adalah Corey Pennycuff. Setiap kontributor untuk proyek ini, berdasarkan kontribusi yang disengaja, dengan ini setuju untuk menetapkan hak cipta kontribusi untuk Corey Pennycuff dan menegaskan bahwa mereka memiliki otoritas hukum untuk melakukannya. Pengecualian untuk ketentuan ini diizinkan dalam hal dimasukkannya perpustakaan pihak ke -3, yang harus ada sepenuhnya dalam subdirektori sendiri dan berisi informasi kepemilikan hak cipta yang sesuai.
The Defiant Manifesto menjelaskan filosofi proyek Defiant. Mereka adalah:
Baca manifesto (pendek) itu sendiri untuk memahami bagaimana kita menerapkan ide -ide ini.
Sejauh ini saya hanya telah menguji ini di Linux (khususnya, Debian) dan subsistem Windows untuk LINUS (WSL) di Windows 10.
Minimal, Anda perlu menginstal paket python dan sqlite3 . Anda mungkin juga membutuhkan build-essential .
apt-get install python sqlite3Ini diperlukan untuk pemasangan modul yang menantang. Ini bukan ketergantungan langsung dari basis kode.
Ini akan memakan waktu cukup lama ...
npm install Secara default, Defiant mencoba menyimpan informasi di /var/defiant Directory. Ini akan dapat dikonfigurasi di masa depan. Untuk saat ini, buat direktori, dan pastikan Anda memiliki izin menulis ke direktori.
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 mulai berjalan di port 8888 (ini akan dapat dikonfigurasi di masa depan), jadi Anda harus dapat pergi ke http://localhost:8888 untuk melihat situs berjalan. Lihatlah output konsol untuk nama pengguna dan kata sandi Administrator.
Defiant tidak melakukan banyak hal saat ini, dan tidak siap untuk pekerjaan serius sama sekali. Mengapa? Karena masih sedang dibangun, tentu saja! Bagian -bagiannya hanya ada dalam pikiran dan percakapan pengembang. Jika Anda ingin membantu, kirimkan pesan dan cari tahu apa itu peta jalan saat ini.
Lihatlah peta jalan untuk melihat apa yang berhasil, dan apa yang ada di radar langsung kami. Lebih baik lagi, hubungi saya dan cari tahu bagaimana Anda dapat melompat dan membantu dalam pengembangan!
Kami ulangi: Kode ini belum dimaksudkan untuk pekerjaan produksi apa pun.
Dokumentasi dapat ditemukan di sini.
Tidak ada dalam API yang diatur dalam batu, dan ada sangat sedikit dokumentasi resmi (meskipun kami mencoba mengomentari kode secara bertanggung jawab). Selain itu, ini adalah draft pertama, dan bahkan tidak lengkap. Saat Anda melihat kode, ingat ini: ada peretasan dan todos yang tersebar di seluruh sistem. Terkadang peretasan hanya untuk membuat sesuatu bekerja sehingga beberapa bagian semi-terkait lainnya dapat disempurnakan, dan ada niat untuk meninjau kembali kode nanti. Terkadang todo hanyalah rintisan yang mewakili ide, atau menunjukkan di mana sesuatu perlu berinteraksi dengan sistem nanti. Terkadang, fitur ini hanya ada di benak penulis. ESP akan membantu di sini ...
Di atas segalanya, kami mendorong Anda untuk melawan tren dan kebijaksanaan massa untuk harapan pengalaman pengkodean yang segar dan gratis. Jika itu gagal, Anda juga bisa rewel. Apapun Anda, meskipun ... Jadilah menantang!