cari
Rumahhujung hadapan webtutorial jsPengarang ekspres TJ mengucapkan selamat tinggal kepada Node.js dan menuju ke Go_node.js

Pertama sekali, ini adalah artikel yang diterjemahkan dari Farewell Node.js Saya benar-benar terkejut selepas membaca artikel ini, tetapi saya tidak bersetuju dengan beberapa pandangan pengarang Sebagai contoh, saya fikir pakej Node register adalah salah satu daripada banyak kelebihannya, tetapi Go mempunyai sedikit kekurangan dalam aspek ini. Disebabkan oleh keterbatasan peribadi saya, terdapat banyak perkara yang saya tidak faham semasa menterjemah, saya juga pergi ke blog pengarang dan stackoverflow untuk bertanya beberapa soalan dan mendapat jawapan. Masih terdapat banyak ketidaksempurnaan dalam terjemahan, dan saya harap anda boleh mendapatkan beberapa petunjuk.

PS. Sebagai seorang pemula dalam Node.js, saya ingin mengucapkan terima kasih kepada TJ atas kerja kerasnya dan melalui perjalanan yang baik.

Teks:

Perpisahan Node.js

Tinggalkan alam Node.js

Saya telah berlawan dengan Node.js dalam pengeluaran cukup lama, dan malangnya sekarang saya tidak lagi seronok melakukan kerja itu, sekurang-kurangnya buat masa ini, ini adalah perpisahan rasmi saya. Lebih penting lagi, saya memerlukan penyelenggara.

Node hebat dalam beberapa cara, tetapi ia bukan alat yang sesuai untuk jenis perisian yang saya minati pada masa kini. Saya masih merancang untuk menggunakan Node untuk tapak web, tetapi jika anda berminat untuk mengekalkan sebarang projek, tinggalkan komen dengan nama pengguna Github anda, nama pengguna npm dan nama projek untuk memberitahu saya. Biasanya yang saya minta ialah anda tidak mengubah sepenuhnya API sedia ada Jika anda benar-benar mahu melakukan ini, lebih baik untuk memulakan projek baru.

Koa adalah projek yang saya akan terus kekalkan. (Dengan Co dan rakan-rakan)

Kisah Holy Grail

Saya sentiasa menyukai C, tetapi semua orang yang bekerja dalam pembangunan C tahu bahawa ia berharga tetapi mudah ralat. Sukar untuk mewajarkan pilihan bahasa dalam kerja seharian kerana ia bukan yang paling pantas untuk kerja itu. Kesederhanaan juga adalah sebab ia sentiasa dipuji, tetapi anda tidak akan pergi jauh tanpa banyak templat.

Apabila saya semakin terlibat dalam pembangunan sistem teragih, arah aliran prestasi Node yang lebih tinggi daripada ketersediaan dan keteguhan membuatkan saya semakin kecewa. Sepanjang minggu lalu, saya telah menulis semula sistem pengedaran yang agak besar dalam Go untuk menjadikannya lebih mantap, berprestasi dan lebih mudah diselenggara, dan kerana kod segerak pada umumnya lebih elegan dan lebih mudah untuk dibangunkan, ia mempunyai lebih banyak liputan boleh diuji yang Baik.

Saya tidak mengatakan Go adalah Holy Grail, ia tidak sempurna, tetapi untuk banyak bahasa yang wujud hari ini, Go ialah jawapan yang sangat baik untuk saya. Memandangkan lebih banyak bahasa "generasi akan datang" seperti Rust dan Julia menemui niche dan matang mereka, saya pasti kami akan mempunyai lebih banyak penyelesaian yang hebat.

Secara peribadi, saya sangat teruja dengan bahasa GO kerana kelajuan lelarannya. Saya sangat teruja melihat mereka tidak sabar-sabar untuk mencapai versi 2.0, dan menurut berita yang saya dengar, mereka tidak takut dan memecahkan perkara Hebat yang asal. Saya suka jika ia benar, kebanyakannya kerana saya percaya bahawa jika ia benar-benar baik untuk bahasa, ia harus memecahkan perkara yang sedia ada dengan cepat. Tetapi saya juga bukan gergasi perisian yang menjalankan banyak sistem. :D

Editor: Saya pasti telah salah tafsir beberapa penyerahan ke senarai mel mereka tidak bersemangat untuk membuat perubahan pada bila-bila masa. @enneff

Kenapa Pergi?

Jika Node berfungsi untuk anda dan anda tidak perlu risau, ia masih merupakan alat yang hebat. Tetapi jika sesuatu mengganggu anda, jangan lupa untuk keluar dari kotak anda dan lihat apa yang ada di luar kotak - dalam beberapa jam pertama membina produk dengan Go, saya sudah terpikat.

Sekali lagi, saya tidak mengatakan bahawa Go ialah bahasa terbaik mutlak dan anda perlu menggunakannya. Tetapi ia sangat matang dan kuat untuk usianya. (Kira-kira semasa saya sebaya dengan Node). Pemfaktoran semula jenis adalah menyeronokkan dan mudah, kerja dan alatan penyahpepijatan yang disediakan oleh Go adalah hebat, dan komuniti mempunyai peraturan yang sangat kuat tentang dokumentasi, format, penanda aras dan reka bentuk API.

Kerana terlalu terbiasa dengan modulariti melampau Node dan telah mengalami pustaka standard Ruby yang busuk, apabila saya mula-mula mendengar tentang Go, saya fikir perpustakaan standardnya adalah mengerikan. Selepas saya mendalami bahasa ini, saya menyedari bahawa kebanyakan perpustakaan standard pada peringkat ini sangat diperlukan, seperti mampatan, json, IO, buffered IO, operasi rentetan, dll. Kebanyakan API ini ditakrifkan dengan baik dan berkuasa. Adalah mudah untuk menulis keseluruhan program hanya dengan menggunakan perpustakaan standard ini.

Pakej Go pihak ketiga

Kebanyakan perpustakaan Go kelihatan serupa, dan kebanyakan kod pihak ketiga yang saya gunakan setakat ini adalah berkualiti tinggi, yang sukar ditemui dalam Node kerana JavaScript menarik pembangun tahap kemahiran yang berbeza dalam skop.

Untuk pakej Go, tiada pusat pendaftaran, jadi anda biasanya melihat 5 atau 6 pakej yang sama pada masa yang sama. Ini boleh menyebabkan kekeliruan pada masa-masa tertentu, tetapi ia mempunyai kesan sampingan yang menarik iaitu anda perlu menyemak dengan teliti setiap pakej untuk memutuskan yang mana satu penyelesaian terbaik. Oleh Node biasanya terdapat pakej kanonik seperti "redis", "mongodb-native" atau "zeromq", jadi anda akan berhenti di sana dan hanya menyimpulkan bahawa ia adalah yang terbaik.

Jika anda melakukan beberapa kerja yang diedarkan, anda akan mendapati jenis data asas serentak Go yang mengagumkan sangat membantu. Kita boleh mencapai sesuatu yang serupa dengan penjana dalam Node, tetapi pada pendapat saya, penjana hanya separuh daripada tugas. Tanpa pengendalian ralat bebas, susunan pelaporan masih biasa pada tahap terbaiknya. Apabila penyelesaian ini berfungsi dengan baik, saya tidak mahu menunggu selama tiga tahun untuk komuniti menyusun semula.

Pada pendapat saya, pengendalian ralat Go adalah luar biasa. Node hebat dalam erti kata bahawa anda perlu mempertimbangkan setiap ralat dan memutuskan perkara yang perlu dilakukan. Walau bagaimanapun, Node gagal pada:

Anda boleh melakukan panggilan balik berulang kali

Anda tidak boleh membuat panggilan balik sama sekali dan tersesat dalam keadaan tidak stabil (contohnya, jika anda terlupa untuk menghantar ralat mengendalikan panggilan balik, apabila ralat berlaku, Node akan menelan ralat tanpa sebarang maklum balas)

Anda mungkin mendapat ralat luar kotak

pemancar mungkin mendapat beberapa peristiwa yang salah

Melupakan pengendalian acara yang salah akan merosakkan segala-galanya

Selalunya tidak pasti apa yang perlu dilakukan dengan salah

Pengendalian ralat sangat berlebihan

Panggil balik menyebalkan
Dalam Go, apabila kod saya tamat, ia tamat dan anda tidak boleh melaksanakan semula dalam penyata. Dalam Node ini tidak ditentukan. Anda akan berfikir bahawa program dilaksanakan sepenuhnya sehingga perpustakaan secara tidak sengaja memanggil panggilan balik beberapa kali, atau gagal mengosongkan pengendali dengan betul dan menyebabkan kod itu dilaksanakan semula. Agak sukar untuk mencari sebab ini dalam kod pengeluaran sebenar, jadi mengapa perlu bersusah payah? Bahasa lain tidak meletakkan anda melalui kesakitan ini.

Nod masa hadapan

Saya masih berharap Node berfungsi dengan baik dan ramai orang melabur banyak di dalamnya, ia mempunyai potensi sedemikian. Saya rasa Joyent dan pasukan perlu menumpukan pada kebolehgunaan - prestasi tidak bermakna jika aplikasi anda rapuh dan sukar untuk nyahpepijat, pemfaktoran semula dan dibangunkan.

Hakikat bahawa kami masih akan mengalami ralat "Ralat: getaddrifo EADDRINFO" dalam masa 4-5 tahun memberitahu kami di mana keutamaan pembangunan Node. Maklumlah, perkara ini mudah terlepas apabila anda menumpukan pada membina teras sistem. Saya rasa pengguna telah menyuarakan pendapat mereka tentang perkara jenis ini berulang kali tanpa melihat sebarang hasil. Kami biasanya mendapat segelintir respons terhadap dakwaan bahawa apa yang kami ada sudah sempurna. Dalam amalan, ini tidak berlaku.

Strim terganggu, panggilan balik tidak mudah digunakan, ralat tidak jelas, dan alatan tidak mudah digunakan, tetapi peraturan tersebut kurang berbanding Go. Walaupun begitu, saya mungkin terus menggunakan Node untuk beberapa tugas tertentu, seperti membuat halaman web, atau beberapa API atau prototaip yang berselerak. Jika Node boleh menyelesaikan beberapa masalah asasnya, ia mempunyai peluang untuk kekal relevan, tetapi hujah untuk prestasi mengenai ketersediaan tidak pergi terlalu jauh apabila terdapat alternatif yang mempunyai prestasi yang lebih tinggi dan ketersediaan yang lebih tinggi.

Jika komuniti Node memutuskan untuk menerima penjana dan melaksanakannya dalam bahagian teras Node, dan menyebarkan ralat dengan betul, ada kemungkinan perkara ini boleh dirujuk. Ini akan meningkatkan ketersediaan dan keteguhan Node secara drastik.

Berita baiknya ialah sebentar tadi saya bercakap dengan lelaki hebat dan berbakat yang menyumbang kod teras kepada StrongLoop. Mereka mengambil pendekatan yang jelas dengan mendengar maklum balas pembangun kepada platform dan merancang untuk mencari cara yang betul untuk menyelesaikan isu ini untuk menjadikan Node lebih mudah untuk digunakan pada masa hadapan. Saya tidak pasti bagaimana konflik pembangunan serentak bahagian teras oleh berbilang syarikat akan berakhir, tetapi saya harap pihak yang didorong oleh pemaju akan menang.

Ini tidak dimaksudkan untuk menjadi serangan peribadi, terdapat ramai orang yang benar-benar berbakat bekerja dengan atau di atas Node, tetapi itu bukan tempat saya berminat lagi. Saya mempunyai masa yang hebat dalam komuniti Node dan bertemu dengan beberapa orang yang sangat menarik.

Moral cerita ini ialah, jangan dihadkan oleh kalangan anda sendiri! Lihat apa yang tersedia di tempat lain dan anda mungkin menikmati pengaturcaraan lagi. Terdapat begitu banyak penyelesaian hebat di luar sana, saya membuat kesilapan kerana menunggu terlalu lama untuk bermain dengan mereka!

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
Aplikasi JavaScript: Dari Front-End ke Back-EndAplikasi JavaScript: Dari Front-End ke Back-EndMay 04, 2025 am 12:12 AM

JavaScript boleh digunakan untuk pembangunan front-end dan back-end. Bahagian depan meningkatkan pengalaman pengguna melalui operasi DOM, dan back-end mengendalikan tugas pelayan melalui Node.js. 1. Contoh front-end: Tukar kandungan teks laman web. 2. Contoh backend: Buat pelayan Node.js.

Python vs JavaScript: Bahasa mana yang harus anda pelajari?Python vs JavaScript: Bahasa mana yang harus anda pelajari?May 03, 2025 am 12:10 AM

Memilih Python atau JavaScript harus berdasarkan perkembangan kerjaya, keluk pembelajaran dan ekosistem: 1) Pembangunan Kerjaya: Python sesuai untuk sains data dan pembangunan back-end, sementara JavaScript sesuai untuk pembangunan depan dan penuh. 2) Kurva Pembelajaran: Sintaks Python adalah ringkas dan sesuai untuk pemula; Sintaks JavaScript adalah fleksibel. 3) Ekosistem: Python mempunyai perpustakaan pengkomputeran saintifik yang kaya, dan JavaScript mempunyai rangka kerja front-end yang kuat.

Rangka Kerja JavaScript: Menguasai Pembangunan Web ModenRangka Kerja JavaScript: Menguasai Pembangunan Web ModenMay 02, 2025 am 12:04 AM

Kuasa rangka kerja JavaScript terletak pada pembangunan yang memudahkan, meningkatkan pengalaman pengguna dan prestasi aplikasi. Apabila memilih rangka kerja, pertimbangkan: 1.

Hubungan antara JavaScript, C, dan penyemak imbasHubungan antara JavaScript, C, dan penyemak imbasMay 01, 2025 am 12:06 AM

Pengenalan Saya tahu anda mungkin merasa pelik, apa sebenarnya yang perlu dilakukan oleh JavaScript, C dan penyemak imbas? Mereka seolah -olah tidak berkaitan, tetapi sebenarnya, mereka memainkan peranan yang sangat penting dalam pembangunan web moden. Hari ini kita akan membincangkan hubungan rapat antara ketiga -tiga ini. Melalui artikel ini, anda akan mempelajari bagaimana JavaScript berjalan dalam penyemak imbas, peranan C dalam enjin pelayar, dan bagaimana mereka bekerjasama untuk memacu rendering dan interaksi laman web. Kita semua tahu hubungan antara JavaScript dan penyemak imbas. JavaScript adalah bahasa utama pembangunan front-end. Ia berjalan secara langsung di penyemak imbas, menjadikan laman web jelas dan menarik. Adakah anda pernah tertanya -tanya mengapa Javascr

Aliran node.js dengan typescriptAliran node.js dengan typescriptApr 30, 2025 am 08:22 AM

Node.js cemerlang pada I/O yang cekap, sebahagian besarnya terima kasih kepada aliran. Aliran memproses data secara berperingkat, mengelakkan beban memori-ideal untuk fail besar, tugas rangkaian, dan aplikasi masa nyata. Menggabungkan sungai dengan keselamatan jenis typescript mencipta powe

Python vs JavaScript: Pertimbangan Prestasi dan KecekapanPython vs JavaScript: Pertimbangan Prestasi dan KecekapanApr 30, 2025 am 12:08 AM

Perbezaan prestasi dan kecekapan antara Python dan JavaScript terutamanya dicerminkan dalam: 1) sebagai bahasa yang ditafsirkan, Python berjalan perlahan tetapi mempunyai kecekapan pembangunan yang tinggi dan sesuai untuk pembangunan prototaip pesat; 2) JavaScript adalah terhad kepada benang tunggal dalam penyemak imbas, tetapi I/O multi-threading dan asynchronous boleh digunakan untuk meningkatkan prestasi dalam node.js, dan kedua-duanya mempunyai kelebihan dalam projek sebenar.

Asal JavaScript: Meneroka Bahasa PelaksanaannyaAsal JavaScript: Meneroka Bahasa PelaksanaannyaApr 29, 2025 am 12:51 AM

JavaScript berasal pada tahun 1995 dan dicipta oleh Brandon Ike, dan menyedari bahasa itu menjadi C. 1.C Language menyediakan keupayaan pengaturcaraan prestasi tinggi dan sistem untuk JavaScript. 2. Pengurusan memori JavaScript dan pengoptimuman prestasi bergantung pada bahasa C. 3. Ciri lintas platform bahasa C membantu JavaScript berjalan dengan cekap pada sistem operasi yang berbeza.

Di sebalik tabir: Apa bahasa JavaScript?Di sebalik tabir: Apa bahasa JavaScript?Apr 28, 2025 am 12:01 AM

JavaScript berjalan dalam penyemak imbas dan persekitaran Node.js dan bergantung pada enjin JavaScript untuk menghuraikan dan melaksanakan kod. 1) menjana pokok sintaks abstrak (AST) di peringkat parsing; 2) menukar AST ke bytecode atau kod mesin dalam peringkat penyusunan; 3) Laksanakan kod yang disusun dalam peringkat pelaksanaan.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

DVWA

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

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.