7 kunci untuk menyusun aplikasi Node.js anda

Rahul Mhatre adalah arkitek teknikal di Built.io.

Node.js mengikuti dengan cepat Java, Ruby, Python, dan .Net sebagai bahasa pilihan untuk mengembangkan aplikasi web baru. Pasukan Node.js menjadikan masa kerja JavaScript lebih baik, lebih pantas, dan lebih kuat setiap hari. Dan komuniti pengguna berkembang dengan cepat.

Apabila adopsi terus meningkat, semakin banyak pembangun akan menaiki kurva pembelajaran Node.js, menghadapi masalah yang sama dan mengekod fungsi serupa. Syukurlah, komuniti Node.js telah berjaya menyelamatkan kerangka kerja dan corak reka bentuk yang bukan sahaja dapat menyelesaikan masalah biasa, tetapi juga membantu dalam menyusun aplikasi.

Kerangka kerja secara amnya melaksanakan corak MV seperti MVC (model-view-controller), MVVM (model-view-viewmodel), MVP (model-view-presenter), atau hanya MV. Mereka juga memberitahu anda di mana kod model, pandangan, dan pengawal seharusnya, di mana laluan anda seharusnya, dan di mana anda harus menambahkan konfigurasi anda. Banyak pemaju muda dan peminat Node.js tidak begitu memahami bagaimana corak reka bentuk atau gambar rajah OOP (Object Oriented Programming) memetakan garis atau struktur kod dalam aplikasinya.

Di situlah kerangka kerja Node.js seperti Express.js dan Sails.js masuk. Ini dan banyak lagi yang tersedia untuk membantu memulakan pembangunan aplikasi web. Terlepas dari kerangka kerja yang anda gunakan, anda pasti perlu mempertimbangkan beberapa pertimbangan semasa menyusun aplikasi anda.

Berikut adalah tujuh perkara penting yang saya renungkan sebelum memetakan aplikasi Node.js.

1. Struktur direktori yang betul untuk aplikasi

Semasa menentukan struktur direktori untuk aplikasi anda, anda harus mempertimbangkan corak reka bentuk yang anda pilih. Ini akan membantu dengan melakukan onboarding, mencari kod, dan mengasingkan masalah dengan lebih cepat. Saya secara peribadi lebih suka menggunakan corak MVC semasa membuat aplikasi Node.js. Ini membantu saya berkembang lebih cepat, memberikan fleksibiliti untuk membuat banyak paparan untuk data yang sama, dan membolehkan komunikasi dan pengasingan tidak segerak antara komponen MVC, untuk menamakan beberapa.

Saya suka mengikuti struktur direktori yang ditunjukkan di atas, yang berdasarkan gabungan Ruby on Rails dan Express.js.

Video berkaitan: Petua dan muslihat Node.js

Dalam video penjelasan ini, pelajari beberapa teknik yang dapat meningkatkan pengalaman pengembangan Node anda.

2. Memetakan gambar rajah ER ke model

Seperti yang didefinisikan dalam Techopedia, "Diagram hubungan entiti (ERD) adalah teknik pemodelan data yang secara grafik menggambarkan entiti sistem maklumat dan hubungan antara entiti tersebut." Gambar rajah ER menggariskan pelbagai entiti yang akan mengambil bahagian dalam sistem kami dan menentukan semua interaksi di antara mereka seperti:

  • Apa-apa yang merupakan "benda" abstrak atau fizikal menjadi entiti dalam model
  • Model memetakan ke jadual di dalam pangkalan data kami
  • Atribut atau harta entiti diterjemahkan ke atribut model, yang pada gilirannya lajur di dalam jadual

Sebagai contoh, jika entiti anda adalah pengguna, maka model yang sesuai akan menjadi "Pengguna" dengan atribut seperti nama pertama, nama terakhir, dan alamat di dalam pangkalan data serta jadual dan lajur yang sesuai.

Menggunakan seni bina data yang sederhana menjadikannya mudah untuk mengesan pangkalan data dan pertumbuhan fail anda setiap kali skema baru dibuat.

3. Menggunakan corak MVP

Melaksanakan MVC tidak bermaksud hanya membuat folder untuk pengawal, paparan, dan model. Anda juga perlu membahagikan kod dan logik anda mengikut MVC. Kod di dalam model anda harus terhad kepada definisi skema pangkalan data. Pembangun secara amnya lupa bahawa model-model tersebut juga akan mempunyai kod yang akan melakukan operasi CRUD. Juga, sebarang fungsi atau operasi yang khusus untuk model tersebut harus ada di dalam fail ini. Sebilangan besar logik perniagaan yang berkaitan dengan model harus ada dalam fail ini.

Kesalahan biasa adalah membuang semua logik perniagaan ke dalam pengawal. Pengawal hanya boleh memanggil fungsi dari model atau komponen lain, mentransfer data antara komponen, dan mengawal aliran permintaan, sedangkan folder pandangan hanya harus memiliki kod untuk mengubah objek menjadi bentuk yang dapat dibaca manusia. Tidak ada logik seperti memformat data atau menyusun atau menyaring tidak boleh dilakukan di dalam paparan. Menjaga pandangan bersih bukan sahaja memberikan pengalaman pengguna yang lebih baik, tetapi juga membantu anda menukar pandangan tanpa mengubah komponen lain.

4. Memecahkan logik menjadi modul

Sebagai pembangun, kita selalu diberitahu bahawa kita harus menyusun kod ke dalam fail dan modul. Ini tidak bermaksud kita harus mencuba memasukkan seluruh aplikasi dalam satu fail. Membahagi kod anda berdasarkan logik dan fungsi adalah pendekatan terbaik. Mengelompokkan fungsi yang berkaitan dengan satu entiti atau objek ke dalam satu fail dan mengatur struktur direktori berdasarkan logik mempunyai banyak kelebihan. Pertama, ia akan menjimatkan banyak masa untuk menentukan fungsi mana yang harus disentuh ketika bug harus diperbaiki. Kedua, ia membantu mencabut semua komponen dalam seni bina, memudahkan penggantian fungsi diskrit tanpa perlu mengubah baris kod lain. Ketiga, ini juga akan membantu dalam menulis kes ujian.

5. Kepentingan kes ujian

Sangat penting untuk tidak pernah berhenti ketika membina kes ujian — ujian adalah penjaga asas kod anda. Apabila aplikasi anda berkembang, semakin sukar untuk mengingat semua senario yang mesti anda lindungi semasa anda membuat pengekodan. Kes ujian membantu anda memastikan asas kod anda stabil. Ujian mencegah regresi, menjimatkan masa dan usaha pengembangan yang berharga. Ini membantu anda memastikan ciri-ciri baru akan didorong bebas dari kesilapan. Ia juga membantu meningkatkan kualiti kod dengan menangkap pepijat sebelum mereka memulakan produksi. Dan yang paling penting, ujian membantu menanamkan keyakinan bahawa kod tersebut tidak akan rosak.

6. Kepentingan log

Log berguna untuk menyahpepijat dan memahami keadaan aplikasi anda. Mereka memberikan pandangan berharga mengenai tingkah laku aplikasi. Berikut adalah senarai perkara yang perlu diingat semasa memanfaatkan log:

  • Cari keseimbangan yang betul dalam soal pembalakan. Memiliki "terlalu banyak maklumat" tidak pernah buruk, tetapi pembalakan berlebihan akan menjadikan pekerjaan anda lebih sukar. Jarum lebih senang dijumpai di tumpukan jerami yang lebih kecil. Di sisi lain, log masuk yang tidak mencukupi akan menyebabkan terlalu sedikit maklumat yang tersedia untuk debug atau diagnosis.
  • Pisahkan log luar talian dan dalam talian anda, di mana log terbaru disimpan untuk pengambilan dan pemprosesan pantas sedangkan log lama diarkibkan atau dibuang ke fail.
  • Pertimbangkan kekerapan dan tempoh log anda kerana ia akan mempengaruhi jumlah simpanan yang anda perlukan. Selalunya jumlah simpanan yang anda perlukan dan jumlah log yang anda miliki berkadar terus.

Dan ingat, jangan log data sensitif seperti ID e-mel, kata laluan, maklumat kad kredit, dan nombor telefon. Ia bukan hanya risiko keselamatan yang besar, tetapi sering juga menyalahi undang-undang.

7. Adakah skala aplikasi?

Pendekatan terburuk untuk pengembangan aplikasi adalah memikirkan bagaimana skala setelah anda mendapat lalu lintas. Sebaliknya anda harus membina seni bina yang mempunyai kemampuan untuk berkembang dari awal untuk menjimatkan masa dan meningkatkan produktiviti.

Melayan pelayan tidak berskala; mengagihkan beban merentasi sumber adalah. Ini tidak bermaksud bahawa anda tidak boleh memunculkan pelayan baru apabila beban meningkat. Pertama, anda harus mengatur pengimbangan beban dalam sumber semasa anda untuk menangani peningkatan beban. Apabila pengimbangan beban tidak dapat menguruskan beban kerja dengan cekap, sudah waktunya untuk memulakan penskalaan mendatar dan melahirkan pelayan baru. Anda boleh mencapainya melalui proses bebas tanpa status atau melalui modul. Setiap proses atau modul akan berfungsi secara terpencil dan bebas. Ini bukan sahaja dapat menolong skala aplikasi anda dengan cekap, tetapi juga menjadikan toleransi kesalahan sistem anda dan mudah dipulihkan.

Cara anda menyusun aplikasi web sama pentingnya dengan memilih teknologi yang tepat. Sekiranya asasnya cacat, aplikasi akhirnya akan runtuh, atau menolak untuk skala, atau dalam beberapa kes gagal memulai sama sekali. Jangan tergesa-gesa mengembangkan ciri baru atau idea baru tanpa perancangan dan seni bina yang betul. Struktur atau seni bina yang buruk adalah seperti bom waktu yang menunggu untuk meletup.

Forum Teknologi Baru menyediakan tempat untuk meneroka dan membincangkan teknologi perusahaan yang baru muncul dalam kedalaman dan luas yang belum pernah terjadi sebelumnya. Pemilihannya bersifat subjektif, berdasarkan pilihan teknologi yang kami percayai penting dan menarik minat pembaca. tidak menerima jaminan pemasaran untuk penerbitan dan berhak untuk mengedit semua kandungan yang disumbangkan. Hantarkan semua pertanyaan ke [email protected]