Rumah >hujung hadapan web >tutorial js >perkara yang saya suka tentang Deno

perkara yang saya suka tentang Deno

Susan Sarandon
Susan Sarandonasal
2024-12-15 17:51:09372semak imbas

Masalahnya

Versi Deno stabil telah diperkenalkan kira-kira 3-4 tahun yang lalu. Pada masa itu, ia mendapat sedikit perhatian kerana tidak lain daripada Ryan Dahl, pencipta Node.js, juga merupakan penaung Deno. Huh! Awak dengar betul. Mengapa dia mencipta alat baharu untuk bersaing dengan "anak"nya sendiri?

Ryan Dahl mengakui bahawa Node.js mempunyai kelemahan kritikal. Pada mulanya, Node.js direka bentuk untuk menumpukan pada kesederhanaan dan fleksibiliti. Tetapi selama bertahun-tahun, semuanya telah di luar kawalan. Node.js telah berkembang dengan sangat hebat, mendapat lebih banyak perhatian dan apabila orang ramai cuba memasukkan segala-galanya ke dalam bintang yang semakin meningkat ini, ia menjadi lebih rumit daripada yang diperlukan.

Deno dilahirkan untuk menangani kelemahan Node. Walau bagaimanapun, pada masa pelancarannya, ia tidak mempamerkan kekuatannya. Prestasinya juga lebih rendah daripada Node.js, apatah lagi kekurangan sokongan npm – yang merupakan salah satu kelebihan terbesar Node. Ini menjadikan keadaan semakin sukar.

Sebagai seorang yang ingin tahu, saya cepat mencuba beberapa coretan kod menggunakan Deno dan menyedari kesulitan berkenaan sistem perpustakaan. "Wah, mungkin mengambil masa yang lama untuk perpustakaan kegemaran saya muncul di platform ini; semuanya kelihatan baharu dan tidak dikenali," fikir saya!

Semuanya berubah apabila saya mula "Tear Down and Rebuild" blog saya. Selepas berkali-kali teragak-agak dan memikirkan pilihan teknologi, nama Fresh muncul. Walau bagaimanapun, Fresh memerlukan Deno sebagai persekitaran masa jalannya. Tidak mempunyai pengalaman penggunaan sebelumnya tetapi berfikir "ia hanya persekitaran masa jalan JavaScript!" memberi saya lebih keyakinan. Cerita seterusnya ialah artikel ini.

Hari ini, saya akan meringkaskan 5 perkara yang saya rasa "suka" apabila bekerja dengan Deno.

Sokongan TypeScript

Deno menyokong TypeScript secara asli. Ini bermakna anda boleh menjalankan fail .ts secara terus tanpa melalui langkah penukaran kepada .js seperti yang biasa dilakukan oleh perpustakaan lain. Ramai orang tertanya-tanya sama ada ini berbeza daripada menggunakan alat untuk menjalankan kod TypeScript seperti ts-node? Jawapannya pasti ya kerana ts-node memerlukan fail konfigurasi TypeScript untuk berfungsi dalam kes yang rumit, manakala Deno tidak. Sokongan lalai untuk TypeScript memudahkan proses menjalankan kod .ts secara langsung.

Saya sering membuat skrip untuk mengendalikan beberapa tugas kecil untuk diri saya sendiri. Setiap kali saya mencipta skrip baharu, saya sentiasa teragak-agak antara memilih .js atau .ts. Dan apabila Deno muncul, .ts menjadi pilihan lalai. Walaupun dalam projek Node, apabila saya perlu menulis skrip untuk melaksanakan tugasan pantas, saya masih lebih suka memilih .ts dan menggunakan Deno untuk melaksanakan kod tersebut.

Tiada lagi berbilang fail konfigurasi

Semakin saya terlibat dengan projek JavaScript/TypeScript secara umum atau Node.js khususnya, satu perkara yang saya selalu tertanya-tanya atau mendapati menjengkelkan ialah... terdapat terlalu banyak fail konfigurasi. Setiap projek yang berbeza mempunyai fail dengan nama yang berbeza. Daripada package.json, package-lock.js dan tsconfig.js tambahan jika projek menggunakan Typescript... Apatah lagi jika saya perlu mengkonfigurasi beberapa perkara lagi seperti webpack, vite, tailwind, postcss... oh my ! Pada mulanya, kerana tidak biasa, saya terpaksa membaca untuk memahami kepentingan dan penggunaan setiap fail konfigurasi yang muncul dalam projek, membaca sambil mengutuk secara senyap, "Bagaimanakah anda boleh mencipta ratusan fail konfigurasi seperti ini?"

Apabila berpindah ke Deno, saya kagum apabila mendapati tiada fail konfigurasi langsung. Ini bermakna anda boleh menjalankan projek itu tanpa sebarang konfigurasi - kelihatan seperti nyata, bukan? Jika ada, ia hanyalah satu fail deno.json. Deno dengan bijak menghapuskan banyak konfigurasi rumit atau meletakkannya ke dalam satu fail json. Alangkah leganya membuka projek tanpa perlu risau tentang kemunculan nama yang pelik lagi!

Sokongan untuk API Web dan API Nod

Deno telah dan sedang cuba menyokong API Web sebanyak mungkin. API Web ialah set standard API yang tersedia dalam penyemak imbas. Sokongan yang baik untuk API Web boleh membenarkan program yang dijalankan dalam Deno turut dijalankan dalam penyemak imbas, mengikut paradigma tulis sekali – jalankan di mana-mana sahaja. Ini membuka ruang untuk perpustakaan "Universal".

Jika anda pernah bekerja dengan Tanpa Pelayan, terutamanya dengan Cloudflare Workers, anda akan tahu bahawa Workers tidak serasi sepenuhnya dengan Node.js, jadi menggunakan perpustakaan khusus Node berkemungkinan tidak berfungsi. Sebaliknya, jika perpustakaan menggunakan atau serasi dengan API Web, ia berjalan dengan lancar. Ini juga terpakai kepada Deno.

Sokongan untuk API Node membolehkan Deno menjalankan kebanyakan "pakej" pada npm. Oleh itu, anda boleh menggunakan pakej npm dengan bebas tanpa perlu risau tentang keserasian lagi.

Mekanisme keselamatan baharu

Agak pelik bahawa terdapat fakta yang jelas bahawa apabila memulakan projek Node, ia secara lalai akan mempunyai semua kebenaran pengguna. Ini bermakna program boleh mengakses fail secara bebas atau melaksanakan arahan dalam sistem bagi pihak pengguna. Agak berbahaya, bukan? Bayangkan jika anda secara tidak sengaja "menjalankan" projek orang lain tanpa menyemaknya terlebih dahulu, dan ia mengimbas semua data pada mesin anda, menghantarnya kembali ke beberapa pelayan, atau menyulitkan semua fail untuk wang tebusan, kemudian menganggap hidup anda hancur, satu kesilapan yang tidak boleh diperbetulkan!

Deno menangani kelemahan ini dengan menambahkan bendera untuk meminta kebenaran semasa menjalankan aplikasi. Kebenaran boleh termasuk akses fail, akses internet... Jika program ingin mengakses sistem fail atau menyambung ke internet, ia mesti meminta kebenaran sekurang-kurangnya. Contohnya:

$ deno run --allow-read --allow-write --allow-net index.ts

Terdapat banyak kebenaran yang perlu "diminta"; untuk butiran lanjut, rujuk Keselamatan dan kebenaran | Deno Docs. Cara terpantas ialah membenarkan semua kebenaran dengan menggunakan bendera -A atau --allow-all.

Prestasi terus meningkat

Saya masih ingat zaman awal ketika ia baru diperkenalkan; Deno nampaknya ketinggalan di belakang Node.js dari segi prestasi program. Secara khusus, ujian penanda aras menunjukkan perbezaan antara Deno dan Node apabila menjalankan program yang sama; Deno selalu gagal. Pada satu ketika, bun.sh tiba-tiba muncul. Bun muncul sebagai fenomena kerana ia mengatasi kedua-dua Node.js dari segi prestasi. Ini membuatkan Deno kelihatan lebih membosankan.

Pada hakikatnya, apabila menggunakan bun untuk menjalankan beberapa aplikasi Node, saya menghadapi beberapa isu dan juga pepijat. Nampaknya roti tidak bersedia untuk "pengeluaran." Jadi pada masa itu, saya membuat kesimpulan bahawa Node masih menjadi pilihan utama bagi mereka yang sukakan kestabilan.

Baru-baru ini, dengan keluaran Deno 2.0, usaha penting telah dibuat untuk meningkatkan prestasi dan meningkatkan pengalaman pengaturcaraan "dinasour hitam" ini. Menurut dokumentasi terbaru yang mereka keluarkan, Deno menonjol dalam setiap aspek berbanding dengan nama terkenal Node dan bun.

hings I like about Deno

Kesimpulan

Di atas adalah perkara yang saya suka apabila bekerja dengan Deno. Terdapat beberapa lagi ciri, seperti menyediakan Deno Deploy secara percuma untuk menggunakan aplikasi. Walau bagaimanapun, saya masih kadang-kadang menjumpai artikel yang "mengkritik" prestasi dan sistem modul, serta keserasian rendah dengan Node. Had ini telah ditangani dalam versi 2.0 terkini. Perspektif saya tentang Deno telah berubah berbanding ketika ia mula-mula dilancarkan, dan saya berharap Deno akan mendapat lebih perhatian daripada komuniti dan membuat lebih banyak kejayaan pada masa hadapan.

Bagaimana dengan anda? Adakah anda telah menggunakan Deno? Adakah anda mempunyai sebarang pujian atau kritikan mengenai persekitaran masa jalan JavaScript ini? Sila tinggalkan komen anda di bawah!

Atas ialah kandungan terperinci perkara yang saya suka tentang Deno. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Menguasai CRUD dengan NextJSArtikel seterusnya:Menguasai CRUD dengan NextJS