Rumah  >  Artikel  >  hujung hadapan web  >  Langkah utama yang saya ikuti semasa memulakan projek Node.js

Langkah utama yang saya ikuti semasa memulakan projek Node.js

Susan Sarandon
Susan Sarandonasal
2024-10-07 18:18:31751semak imbas

The main steps I follow when kicking off Node.js projects

이 기사에서는 Node.js 애플리케이션을 개발할 때 따르는 몇 가지 단계를 강조하고 싶습니다. 이러한 단계는 비즈니스 요구 사항을 충족하고 장기적인 성장을 위해 유연하고 확장 가능한 안정적인 앱을 제공하는 데 도움이 됩니다.

문제를 해결할 수 있는 접근 방식과 기술을 시작하기 전에 어떤 문제를 해결할 것인지 이해해야 합니다. 그렇기 때문에 가장 중요하게 생각해야 할 것은 비즈니스 상황입니다.
생산 후 프로젝트가 어떻게 성장할지, 나중에 비즈니스에 무엇이 필요할지 예측할 수 없습니다. 당신이 할 수 있는 일은 회사에 MVP에 필요한 것이 무엇인지 논의하고 향후 변경 및 마이그레이션에 대비할 수 있도록 확장 가능한 방식으로 프로젝트를 개발하는 것입니다.

MVP에 대한 개념과 목표를 정한 후에는 엔지니어링 수준으로 내려가 애플리케이션의 확장성과 안정성을 보장하는 데 도움이 될 수 있는 접근 방식과 기술을 살펴보겠습니다.

뼈대

모놀리스, 서버리스, 마이크로서비스 등 구현할 아키텍처를 선택하는 것부터 시작하는 것이 좋습니다. 현재로서는 가장 일반적인 아키텍처 접근 방식이 있지만 여기에만 국한되지는 않습니다.
아키텍처를 기반으로 프레임워크를 선택할 수 있습니다. Node.js 생태계에는 많은 프레임워크가 존재하므로 주의하세요.
내 선택은 다음과 같습니다.

  • Express.js는 나중에 대체될 소규모 프로젝트나 프로토타입에 적합합니다.

  • Nest.js는 여러 아키텍처를 다루고 있는데, 이는 무엇을 사용할지 결정할 때 고려하는 기본 프레임워크입니다. 도메인으로 분할되고 나중에 별도의 마이크로서비스로 변환되는 모놀리스에 적합합니다.

  • 마이크로서비스를 고려한다면 분자가 좋을 것 같습니다. 하지만 저는 인프라와 전반적인 개발 프로세스의 복잡성으로 인해 프로젝트가 시작될 때 마이크로서비스를 만드는 것을 별로 좋아하지 않습니다. 모놀리스를 중심으로 마이크로서비스를 구축하거나 모놀리스에서 MS로 마이그레이션하기 위한 탁월한 프레임워크입니다.

  • Next.js. 네, 무엇을 사용해야 할지 결정할 때도 고려합니다. 당신이 프로젝트에 참여하는 유일한 엔지니어이거나 모든 엔지니어가 풀스택 개발자라면 완벽합니다. Vercel과 함께라면 많은 혜택을 누리고 빠르게 움직일 수 있습니다. 그러나 나중에는 복잡성으로 인해 백엔드를 별도의 코드베이스로 마이그레이션해야 할 수도 있습니다.

  • 서버리스는 환상적이며 아마도 서버리스 아키텍처를 처리하기 위한 유일한 솔루션일 것입니다. 프로토타이핑이나 소규모 API에는 놀라운 기능입니다. 그래도 저는 모노리스나 MS 아키텍처와 함께 추가 서비스로 사용하거나 서버리스가 적합한 좁은 애플리케이션 부분을 처리하는 것을 선호합니다.

타이프스크립트

거의 모든 프로젝트와 아키텍처에 적합합니다. 하지만 여기에서 멈추고 싶지 않습니다. 다양한 기사에서 장점과 단점이 광범위하게 설명되어 있기 때문입니다.

데이터 저장

물론 비즈니스 요구 사항에 따라 SQL 또는 NoSQL 데이터베이스를 선택해야 합니다. 아니면 두 가지 유형의 스토리지가 모두 필요할 수도 있습니다. 저는 제가 작업한 여러 데이터베이스 중에서 자주 선택하고 광범위한 경험을 갖고 있습니다.

  • 기본 선택은 PostgreSQL입니다. 최고의 최적화 프로그램 중 하나를 갖춘 완벽한 관계형 스토리지입니다. 대부분의 요구사항을 충족할 수 있습니다.

  • 저는 MongoDB, 특히 서버리스 버전을 자주 고려합니다. 관계형 모델의 이점을 활용하는 강력한 데이터베이스이자 대부분의 스토리지가 제공하지 않는 많은 기능을 갖춘 강력한 NoSQL 데이터베이스입니다.

  • 관계 이점 없이 강력한 NoSQL 솔루션이 필요하다면 DynamoDB를 고려해 보세요. 나도 자주 사용하지만 주로 프로젝트의 좁은 부분을 처리하는 데 사용됩니다. 이 데이터베이스에는 사용하기 전에 배워야 하는 특별한 디자인이 있으므로 주의하십시오. 많은 테이블을 생성하고 이를 MongoDB 또는 관계형 DB로 사용하려는 사람들처럼 되지 마십시오. 이런 경우 제품이 커지면 큰 문제가 발생하게 됩니다.

또한 제가 자주 사용하는 ElasticSearch, Redis와 같은 비영구적 저장소에 대해서도 언급하고 싶습니다. ElasticSearch는 프로젝트가 시작될 때 좋지 않지만, 나중에 복잡한 색인 및 검색을 처리해야 할 때 고려하여 사용할 수 있습니다. Redis 또는 다른 메모리 데이터베이스는 친숙하고 구현하기 쉽습니다. 프로젝트 초반에도 캐시가 필요한 경우가 자주 있는데, 가지고 있어서 좋네요.

Lapisan akses data

Di sini, saya menggunakan pendekatan yang berbeza bergantung pada bahagian produk. Saya suka bermula dengan ORM dan berhijrah ke pembina pertanyaan atau SQL mentah dalam bahagian yang sempit. Untuk pangkalan data NoSQL, saya tidak akan mengatakan saya suka ODM dan lebih suka menggunakan pemacu. Sebagai contoh, saya tidak begitu menghargai penggunaan Mongoose dan memilih pemacu Node.js daripada ini. Saya rasa ia lebih fleksibel dan mudah daripada ODM, dan ia tidak memerlukan anda menggunakan model hubungan.

Untuk pangkalan data hubungan, terdapat banyak perpustakaan berbeza yang boleh anda gunakan di sini, tetapi jika anda menggunakan pangkalan data SQL, anda boleh mempertimbangkan TypeORM.

Aliran kerja pembangunan

Perkara terakhir yang saya ingin nyatakan ialah aliran kerja pembangunan. Saya suka memastikannya semudah mungkin dan menggunakan alatan yang mudah dilaksanakan untuk membantu mengautomasikan aliran kerja, beralih kepada penyelesaian yang lebih fleksibel dan kompleks jika perlu. Berikut ialah cadangan saya untuk alatan yang boleh anda pertimbangkan:

  • Tindakan Github. Ia adalah alat CI/CD yang sangat baik yang boleh anda konfigurasikan dengan cepat dan mudah.

  • Dependabot ialah alat yang hebat untuk menyimpan pakej dalam versi terkini dan mencari kelemahan.

  • Terraform. Saya menggunakannya untuk menguruskan infrastruktur. Ia memudahkan banyak perkara jika sekurang-kurangnya beberapa orang bekerja pada projek. Apabila projek itu berkembang, ia menjadi besar, dan mungkin untuk pengurusan negeri yang lebih baik, anda memerlukan alat seperti Terragrunt untuk memastikan kod berkaitan infrastruktur mudah. Jika anda menggunakan AWS sebagai pembekal awan, anda juga boleh menggunakan AWS CDK. Ia adalah alat yang bagus dengan sokongan Typescript, tetapi ia hanya tersedia untuk AWS, dan jika anda memerlukan sesuatu daripada infrastruktur awan yang berbeza, kod itu akan menjadi lebih kompleks daripada Terraform. Itulah sebabnya saya lebih suka Terraform walaupun untuk AWS.

Atas ialah kandungan terperinci Langkah utama yang saya ikuti semasa memulakan projek Node.js. 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