Alegerea instrumentului sau tehnologiei potrivite pentru o anumită problemă este unul dintre cele mai importante aspecte ale programării. Instrumentul potrivit este cheia succesului unui proiect. Aceasta este situația în care majoritatea programatorilor nu reușesc, deoarece de obicei se ocupă cu multe instrumente. Acest lucru se referă la întrebarea finală: "ar trebui să vă construiți aplicația cu o bibliotecă sau un cadru?" Acesta este unul dintre subiectele discutabile ale discuțiilor din cadrul comunității programatorilor și adesea o sursă de confuzie. O echipă mică cu o mulțime de dezvoltatori, mai ales începători, ar fi mai bine să lucreze cu un cadru, în timp ce bibliotecile reprezintă blocuri care pot fi utilizate oriunde și permit o mai mare flexibilitate și control.
Diferența cheie dintre o bibliotecă și un cadru este "Inversiunea controlului" (IoC). S-ar putea spune că cadrul este o colecție de biblioteci, dar întreaga idee este oarecum diferită.
Biblioteca este o colecție de funcții reutilizabile utilizate de programele de calculator, adică resursele pe care le puteți reutiliza, care pot include clase, subrutine, coduri precompilate, șabloane de mesaje etc. În majoritatea cazurilor limbile de programare au propriile lor biblioteci standard, dar programatorii pot crea și propriile bibliotecile personalizate. Este pur și simplu o bucată de cod scrise de alți dezvoltatori care pot fi reutilizate oriunde. Bibliotecile pot fi integrate perfect în proiectele existente pentru a adăuga funcționalități pe care le puteți accesa în continuare utilizând un API. Sunt necesare puține cunoștințe pentru a începe.
Cadrul este o bucată de cod care dictează modul în care proiectul ar trebui să fie structurat și rulat. Pur și simplu mandatează arhitectura proiectului dvs., cum ar fi definirea parametrilor de proiectare a unei aplicații astfel încât să vă puteți concentra pe specificul proiectului, punând accentul pe reutilizabilitatea designului, mai degrabă decât reutilizarea codului. Spre deosebire de biblioteci, controlul este inversat în cazul cadrelor și codul nu apelează într-un cadru, în schimb, cadrul vă solicită. Spre deosebire de biblioteci, cadrele evidențiază structura și standardele.
În programare, biblioteca este o colecție de funcții reutilizabile - adică resursele pe care le puteți reutiliza - folosite de programele de calculator. Resursele, numite uneori ca module, sunt în general stocate în format obiect. Cele mai multe limbi de programare au propriile biblioteci standard, dar programatorii își pot crea și propriile biblioteci personalizate. În termeni simpli, o bibliotecă este un set de funcții pe care le puteți apela, în timp ce un cadru este o bucată de cod care dictează arhitectura proiectului. Într-un fel, cadrele și limbile de programare sunt interconectate care împreună contribuie la programele de calculator.
"Inversiunea controlului" este diferența cheie care separă un cadru de o bibliotecă. O bibliotecă este un set de funcții și rutine utilizate de alte programe și sunteți în plin control dacă aceasta este atunci când apelați o metodă dintr-o bibliotecă. Cu toate acestea, controlul este inversat în cazul unui cadru. Aceasta dictează structura proiectului dvs., iar codul nu solicită niciodată un cadru, ci vă cheamă. Pur și simplu, puteți să vă gândiți pur și simplu la bibliotecă în funcție de o aplicație și de un cadru ca schelet al aplicației în care aplicația definește propriile caracteristici.
Bibliotecile sunt un set de funcții care pot fi utilizate oriunde înseamnă că este pur și simplu o bucată de cod scrise de alți dezvoltatori care pot fi reutilizate. Acestea sunt integrate fără probleme în proiectele existente pentru a adăuga funcționalități pe care le puteți accesa folosind un API. Acestea sunt utilizate în principal pentru modulele utilizate frecvent, deoarece nu trebuie să le conectați în mod explicit la fiecare program care le folosește. Ele sunt importante în procesul de legare și legare a programelor. Cadrele, pe de altă parte, oferă o modalitate standard de a construi și implementa aplicații și pot fi folosite în principal atunci când începeți un nou proiect și nu integrați în cele existente.
Pentru a înțelege mai bine diferența dintre o bibliotecă și un cadru, să aruncăm o privire asupra jQuery și AngularJS. jQuery este o bibliotecă JavaScript cross-platform care simplifică manipularea DOM împreună cu o mulțime de alte lucruri complicate cum ar fi manipularea CSS, metode de eveniment HTML, apeluri AJAX etc. Scopul jQuery este de a simplifica utilizarea JavaScript pe site-ul dvs. Web. AngularJS, pe de altă parte, este un cadru structural bazat pe arhitectura MVC utilizată pentru crearea de aplicații web dinamice. Este în întregime bazat pe HTML și JavaScript și spre deosebire de jQuery, nu poate fi integrat în proiectele existente deoarece, ca cadru, dictează modul în care codul dvs. va fi structurat și rulat.
Atunci când există confuzie cu privire la decizia dacă ar trebui să folosiți o bibliotecă sau un cadru pentru construirea unei aplicații, totul se reduce la control. Bibliotecile sunt un set de funcții pe care le puteți apela și fiecare apel îndeplinește o anumită sarcină și vă întoarce controlul înapoi. Acestea pot fi integrate perfect în proiectele existente și sunt necesare puține cunoștințe pentru a vă începe. Cadrele, pe de altă parte, dictează structura generală a proiectului dvs. și spre deosebire de biblioteci, cadrele vă invită și codul nu solicită niciodată un cadru. Diferența esențială este, desigur, Inversiunea controlului. În termeni simpli, bibliotecile sunt mai flexibile cu un grad mai mare de control, în timp ce cadrele impun structura și standardele.