bir şey sormak istiyorum nodejs konusunda.
mimari ile ilgili bir "ideal" var mıdır? ya örnek; php'de işin doğrusu bu işi mvc ile yapmaktır örneğin.
nodejs'te de bu tip bir şeyler var mı?
varsa o tür bir içeriğe sahip ders araştıracağım çünkü.
veya "bu kütüphaneyi kullanmak gerekir, bu frameworkü kullanmak gerekir" gibi bir şeyler? (reactteki redux frameworkü gibi)
nodejs icin yaygin diger diller gibi alanini domine eden mimari yok diyebilirim. ama programlamada ozellikle javascript dunyasinda son gelisen mimari trend "microservices" akimi. daha onceden katmanli mimari vardi aynen mvc de oldugu gibi. ama nodejs icinde bir uygulama olusturdugunda "node_modules" diye bir klasor olusturur. bu klasorun yapisi tamamen "microservices" yapisidir. Microservices yapisi sunu soyler, her bir is icin bir paket olacak (bu nodejs de package.json tarafindan temsil edilir) her bir paket birbirinden mumkun oldugunca bagimsiz (loosely coupled) olacak. paket bagimliliklari package.json icinde belirtilir, her bir paket bir digerine baglanabilir, paketler arasinda hierarsi yoktur. yani kucuk kucuk projeler bir arada calisir. ornegin guvenlik paketi, http paketi, ssl paketi, database paketi, dosya yazma paketi gibi dusun. katmanli mimaride bir proje bircok katmana sahipken mikroservis mimaride her mikro is icin ayri bir proje olur. bir buyuk proje tum bu kucuk projeleri kullanir. bu yontemin avantaji istedigin zaman istedigin kucuk parcayi koparip alirsin, etkisiz hale getirebilrsin, ve bagimlilik minimum olur. ya da ornegin katmanli mimaride database islerinden sorumlu bir katman ile bir alt katman haberlesebilirken mikroservices mimaride bu daha esnektir.
bu nedenle genelde node js projelerini yapisi su sekilde olur
Buyuk Proje Paketi
- kucuk alt paket 1
--- index.js
--- package.json
--- test
- kucuk alt paket 2
--- index.js
--- package.json
--- test
-index.js
-package.json
yani bir genel package.json ve index.js, onun altinda kucuk paketler ve onlarin index.js ve package.json dosyalari. genel paketin index.js isleri turlerine gore alt paketlere yonlendirir.