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.
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!

C dan JavaScript mencapai interoperabilitas melalui webassembly. 1) Kod C disusun ke dalam modul WebAssembly dan diperkenalkan ke dalam persekitaran JavaScript untuk meningkatkan kuasa pengkomputeran. 2) Dalam pembangunan permainan, C mengendalikan enjin fizik dan rendering grafik, dan JavaScript bertanggungjawab untuk logik permainan dan antara muka pengguna.

JavaScript digunakan secara meluas di laman web, aplikasi mudah alih, aplikasi desktop dan pengaturcaraan sisi pelayan. 1) Dalam pembangunan laman web, JavaScript mengendalikan DOM bersama -sama dengan HTML dan CSS untuk mencapai kesan dinamik dan menyokong rangka kerja seperti JQuery dan React. 2) Melalui reaktnatif dan ionik, JavaScript digunakan untuk membangunkan aplikasi mudah alih rentas platform. 3) Rangka kerja elektron membolehkan JavaScript membina aplikasi desktop. 4) Node.js membolehkan JavaScript berjalan di sisi pelayan dan menyokong permintaan serentak yang tinggi.

Python lebih sesuai untuk sains data dan automasi, manakala JavaScript lebih sesuai untuk pembangunan front-end dan penuh. 1. Python berfungsi dengan baik dalam sains data dan pembelajaran mesin, menggunakan perpustakaan seperti numpy dan panda untuk pemprosesan data dan pemodelan. 2. Python adalah ringkas dan cekap dalam automasi dan skrip. 3. JavaScript sangat diperlukan dalam pembangunan front-end dan digunakan untuk membina laman web dinamik dan aplikasi satu halaman. 4. JavaScript memainkan peranan dalam pembangunan back-end melalui Node.js dan menyokong pembangunan stack penuh.

C dan C memainkan peranan penting dalam enjin JavaScript, terutamanya digunakan untuk melaksanakan jurubahasa dan penyusun JIT. 1) C digunakan untuk menghuraikan kod sumber JavaScript dan menghasilkan pokok sintaks abstrak. 2) C bertanggungjawab untuk menjana dan melaksanakan bytecode. 3) C melaksanakan pengkompil JIT, mengoptimumkan dan menyusun kod hot-spot semasa runtime, dan dengan ketara meningkatkan kecekapan pelaksanaan JavaScript.

Aplikasi JavaScript di dunia nyata termasuk pembangunan depan dan back-end. 1) Memaparkan aplikasi front-end dengan membina aplikasi senarai TODO, yang melibatkan operasi DOM dan pemprosesan acara. 2) Membina Restfulapi melalui Node.js dan menyatakan untuk menunjukkan aplikasi back-end.

Penggunaan utama JavaScript dalam pembangunan web termasuk interaksi klien, pengesahan bentuk dan komunikasi tak segerak. 1) kemas kini kandungan dinamik dan interaksi pengguna melalui operasi DOM; 2) pengesahan pelanggan dijalankan sebelum pengguna mengemukakan data untuk meningkatkan pengalaman pengguna; 3) Komunikasi yang tidak bersesuaian dengan pelayan dicapai melalui teknologi Ajax.

Memahami bagaimana enjin JavaScript berfungsi secara dalaman adalah penting kepada pemaju kerana ia membantu menulis kod yang lebih cekap dan memahami kesesakan prestasi dan strategi pengoptimuman. 1) aliran kerja enjin termasuk tiga peringkat: parsing, penyusun dan pelaksanaan; 2) Semasa proses pelaksanaan, enjin akan melakukan pengoptimuman dinamik, seperti cache dalam talian dan kelas tersembunyi; 3) Amalan terbaik termasuk mengelakkan pembolehubah global, mengoptimumkan gelung, menggunakan const dan membiarkan, dan mengelakkan penggunaan penutupan yang berlebihan.

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),