Antud probleemile õige tööriista või tehnoloogia valimine on programmeerimise üks olulisemaid aspekte. Õige tööriist on projekti edu võti. See on koht, kus enamik programmeerijaid ebaõnnestub, kuna nad tegelevad tavaliselt paljude tööriistadega. See puudutab viimast küsimust: "kas peaksite oma rakenduse looma raamatukogu või raamistiku abil?" See on üks programmeerijate kogukonnas kõige vaieldavamaid aruteluteemasid ja tekitab sageli segadust. Väikesel meeskonnal, kus on käputäis arendajaid, enamasti algajaid, võib olla parem raamistikuga töötada, samas kui raamatukogud on ehitusplokid, mida saab kasutada kõikjal ja mis võimaldavad suuremat paindlikkust ja kontrolli.
Peamine erinevus raamatukogu ja raamistiku vahel on juhtimise inversioon (IoC). Võib öelda, et raamistik on raamatukogukogu, kuid kogu idee on kuidagi erinev.
Teek on arvutiprogrammide poolt kasutatavate korduvkasutatavate funktsioonide kogum, mis tähendab ressursse, mida saate taaskasutada. Need võivad sisaldada klasse, alamprogramme, eelkompileeritud koodi, sõnumimalle jne. Enamasti on programmeerimiskeeltel oma standardteegid, kuid programmeerijad saavad ka ise luua kohandatud raamatukogud. See on lihtsalt teiste arendajate kirjutatud kooditükk, mida saab igal pool uuesti kasutada. Teegid saab sujuvalt olemasolevatesse projektidesse lisada, et lisada funktsioone, millele saate API-liideste abil juurde pääseda. Alustamiseks on vaja natuke teadmisi.
Raamistik on kooditükk, mis dikteerib projekti struktureerimise ja käitamise. See lihtsalt volitab teie projekti arhitektuuri nagu rakenduse kujundusparameetrite määratlemine, et saaksite keskenduda projekti spetsiifikale, rõhutades seeläbi pigem disaini korduvkasutatavust kui koodi korduvkasutatavust. Erinevalt raamatukogudest on raamistike korral juhtimine ümber pööratud ja kood ei kutsu kunagi raamistikku, selle asemel kutsub raamistik teid. Erinevalt raamatukogudest rõhutavad raamistikud struktuuri ja standardeid.
Programmeerimisel on raamatukogu arvutiprogrammide poolt korduvalt kasutatavate funktsioonide kogum - mis tähendab ressursse, mida saate taaskasutada. Ressursid, mida mõnikord nimetatakse mooduliteks, salvestatakse tavaliselt objektide vormingus. Enamikul programmeerimiskeeltel on oma standardsed raamatukogud, kuid programmeerijad saavad luua ka oma kohandatud raamatukogud. Lihtsamalt öeldes on raamatukogu funktsioonide komplekt, mida saab helistada, samas kui raamistik on kooditükk, mis dikteerib teie projekti arhitektuuri. Mõnes mõttes on omavahel seotud raamistikud ja programmeerimiskeeled, mis koos abistavad arvutiprogrammides.
Juhtimise ümberpööramine on peamine erinevus, mis eraldab raamistiku raamatukogust. Teek on funktsioonide ja rutiinide kogum, mida kasutavad muud programmid ja kui te raamatukogust meetodile helistate, saate seda täielikult kontrollida. Juhtimine on raamistiku korral siiski ümber pööratud. See dikteerib teie projekti ülesehituse ja kood ei kutsu kunagi raamistikku, vaid kutsub teid. Lihtsamalt öeldes võite mõelda raamatukogule kui rakenduse funktsioonile ja raamistikule kui rakenduse skeletile, milles rakendus määratleb oma omadused.
Raamatukogud on funktsioonide kogum, mida saab kasutada kõikjal - see tähendab lihtsalt teiste arendajate kirjutatud kooditükki, mida saab uuesti kasutada. Need on sujuvalt integreeritud olemasolevatesse projektidesse, et lisada funktsioone, millele pääsete juurde API abil. Enamasti kasutatakse neid sageli kasutatavate moodulite jaoks, kuna te ei pea neid otseselt linkima iga neid kasutava programmiga. Need on olulised programmi linkimise ja sidumise protsessis. Raamid pakuvad teisalt rakenduste loomiseks ja juurutamiseks standardset viisi ning neid saab enamasti kasutada uue projekti käivitamisel, mitte olemasolevatesse integreerida..
Teegi ja raamistiku erinevuste paremaks mõistmiseks vaatame lähemalt jQuery ja AngularJS. jQuery on platvormideülene JavaScripti teek, mis lihtsustab DOM-i manipuleerimist koos paljude muude keeruliste asjadega, näiteks CSS-i manipuleerimine, HTML-i sündmuste meetodid, AJAX-kõned jne. jQuery eesmärk on lihtsustada JavaScripti kasutamist teie veebisaidil. AngularJS seevastu on MVC arhitektuuril põhinev struktuurne raamistik, mida kasutatakse dünaamiliste veebirakenduste loomiseks. See põhineb täielikult HTML-il ja JavaScriptil ning erinevalt jQuery-st ei saa seda olemasolevatesse projektidesse integreerida, kuna raamistikuna dikteerib see, kuidas teie kood tuleb struktureerida ja käitada.
Kui on segadus selle üle, kas otsustada, kas peaksite rakenduse loomiseks kasutama teeki või raamistikku, langeb see kõik kontrolli alla. Raamatukogud on funktsioonide komplekt, kuhu saab helistada ja iga kõne täidab mõne ülesande ning tagastab juhtimisfunktsiooni teile. Neid saab sujuvalt integreerida olemasolevatesse projektidesse ja alustamiseks on vaja natuke teadmisi. Raamid seevastu dikteerivad teie projekti üldise struktuuri ja erinevalt raamatukogudest helistavad raamistikud teile ja kood ei kutsu kunagi raamistikku. Peamine erinevus on muidugi juhtimise ümberpööramine. Lihtsamalt öeldes on raamatukogud paindlikumad ja suurema kontrolliga, samal ajal kui raamistikud jõustavad struktuuri ja standardeid.