bu konuda genelde soyle bir ornek verebilirim. Mercedes firmasi bir araba yaparken arabanin lastigini yapmiyor, cunku mercedes icin lastik yapmak buyuk zaman kaybi ve ayri bir uzmanlik. O nedenle lastik firmalarindan lastigi alip arabaya takiyor. Bu olay javascripte kutuphanelere benziyor. cok zaman alacak (ornegin resim isleme) gibi fonksiyonlar icin baska gelistiricilerin yazip yayinladigi hazir araclari kullanmak cogu zaman cok yararli. boylece o ise zaman kaybetmek yerine asil isine odaklanabiliyorsun.
Ayrica mercedes firmasi arabanin elektrik aksamini da yapmiyor, sigortalar, farlar, sinyaller vs. hep kucuk kucuk parcalar ve birbirleri ile belli bir uyum icinde calismasi gerekiyor. Arabanin elektrik aksaminin kendi icinde bir mimari ve bircok ara kucuk parcasi var. Bu elektrik mimarisini Bosch firmasindan aliyor ve bu mimariye gore kendi istedigi degisiklikleri yine bu mimari uzerinde, bu mimariye uyumlu yapip arabaya ekliyor. Iste bu framework oluyor, yani mimari iskelet ve o isklelet uzerindeki arac gerecler. Boylece kendine ozel bir mimari gelistirmek yerine hazir mimarilerden birini kullanip asil isine odaklanabiliyorsun. Cunku gercekten kaliteli bir mimari yapmak cok uzmanlik isteyen zor bir is. Yanlis bir mimari yapi kurarsan ilerde tum kod cop olabilir. o nedenle hazir mimarileri yapi (react, angular) kullanirsan daha saglam kod ortaya cikarabilirsin.
Node.js ise javascriptin sadece front-end degil back-end de calismasini saglayan google ve bircok bagimsiz developerlar tarafindan gelistirilmis bir framework. Javascript standart olarak sadece browserlar uzerinde calisan bir dil. bir grup gelisitirici (cogu google da calisiyor) bir araya geliyor, bu javascript google chrome uzerinde calisiyor, google chrome bilgisayarda calisiyor, e o zaman bu google chrome javascript makinasini (v8 engine) servera kuralim ve javascript serverda da calissin. hem bu sayede front-end gelistiriciler back-end tarafinda da gelistirme yapabilirler demis ve node.js ortaya cikmis. cok gelecek vaadeden bir teknoloji, full-stack gelistirici olmak icin onceden en az iki dil (javascript+bir back end dil) bilmek gerekirken simdi sadece javascript ile web islemlerinin yaninda database islemleri ve dosya sistemi islemleri yapilabiliyor.
0