Bir baska kombinasyon. Giris. Node + Feathers + React

Hellö. Bir seri yazi ile evde akil saglimi korumaya calisiyorum. Bunu node + feathers + react ile yapacagim proje ile destekleyecegim.

Aktif olarak nodejs ogrenmeye calisiyorum. Aliskanliklarim .net ailesinden geldigi icin, bayagi zorlaniyorum diyebilirim. Ama bu aliskanliklari, yapmaya calistigim is ile birlestirdigimde ortaya guzel seyler cikar diye umuyorum.

Bu goruse bagli kalarak, nodejs ile bir proje gelistirmek istedim. Yapmaya calistigim sey tam olarak Visual Studio’dan yeni bir mvc projesi olusturuldugunda yapilabilenler. Ama nodejs bir view engine degil. Kendini daha cok backend olarak konumlamis bir aile. Eee. Nasil olacak bu.

Bunu anlamak icin visual studio’da bir mvc projesi olusturdugumuzda gelen mimariyi bilmek gerekiyor. Bunu bilmek icin de mvc ne demek onu bilmek gerekiyor tabi. Parcalarin birlestigini kabul edip ne yapacagimi detaylandiriyorum ;

  • Nodejs => Backend servisleri icin. MVC’de C harfinin karsilamasini hedefliyorum. M harfine de yardimci olacaktir tabi.
  • Feathers =>Nodejs ile restful api yazmak evet kolay, fakat model arttikca kod tekrari da olmaya baslayacak. Bunu engelleyecek.
  • SequelizeJs => Nodejs icin veritabani ORM gorevini ustlenir. Entity Framework, Dapper gibi yani.
  • Reactjs => Onyuz kodlamasi icin. (V harfine denk gelecektir. Razor engine olarak dusunulebilir bu makale kapsaminda)
  • Typescript => Typesafe calismak hep guven veriyor. Kisisel haz meselesi. (Any kullanmamak icin ugrasacagim)

Biraz daha detay?

Yapacagim proje bir boilerplate gibi davranacak. Db den data ceken bir servis, bunu gosteren ui. Boyle bir cumleyle soyleyince kolay gozuktu tabi. Dikkat edecegim noktalari biraz detaylandirayim;

  • Ui icin component design pattern deneyecegim.
  • Reactjs icinde yeni hooklari kullanacagim. Yapacagim projede context kullanmama ihtiyacim yok, ama bir state yonetimi tabi ki olacak.
  • React icin best practice leri kullanmaya calisacagim.
  • Feathers ile tekrar eden kodlari engelleyecegim.
  • Sequalizejs orm’i ile veritabani olarak mssql kullanacagim.
  • Nodejs tarafinda kodlari design pattern kullanarak cozmeye calisacagim.

Iki projede ayni modelleri kullanmaya calisacagim fakat buna bir cozum bulamadim. Db entity objemi ui’de kullanabilmek icin ayni tipte iki tane model olusturmam gerekecek. Bunu cozebilirsem hem makaleyi hem kodlari guncellerim.

Bu arada github linkinden projenin son halini de gorebilirsiniz

Bu yaziyi bir seri halinde yazacagim. Yazdikca linkleri asagida birlestiririm.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store