Tinkamo įrankio ar technologijos pasirinkimas tam tikrai problemai yra vienas iš svarbiausių programavimo aspektų. Tinkamas įrankis yra projekto sėkmės raktas. Dauguma programuotojų žlunga, nes dažniausiai jie naudojasi daugybe įrankių. Tai susijęs su svarbiausiu klausimu: „Ar turėtumėte sukurti savo programą su biblioteka ar sistema?“ Tai viena diskutuotinų diskusijų temų programuotojų bendruomenėje ir dažnai kelianti painiavą. Maža komanda, kurioje yra keli kūrėjai, daugiausia pradedantieji, gali būti geresni dirbdami su sistema, tuo tarpu bibliotekos yra elementai, kuriuos galima naudoti bet kurioje vietoje ir kurie suteikia didesnį lankstumą ir kontrolę.
Pagrindinis skirtumas tarp bibliotekos ir sistemos yra „Kontrolės inversija“ (IoC). Galima sakyti, kad tai yra bibliotekų kolekcija, tačiau visa idėja yra kažkokia kitokia.
Biblioteka yra daugkartinių funkcijų, kurias naudoja kompiuterinės programos, rinkinys, turintis išteklių, kuriuos galite pakartotinai naudoti, tai gali būti klasės, paprogramės, iš anksto sudarytas kodas, pranešimų šablonai ir kt. Dažniausiai programavimo kalbos turi savo standartines bibliotekas, tačiau programuotojai taip pat gali sukurti savo pasirinktinės bibliotekos. Tai paprasčiausiai kitų kūrėjų parašytas kodo gabalas, kurį galima naudoti bet kur. Bibliotekas galima sklandžiai integruoti į esamus projektus, kad būtų galima pridėti funkcijų, kurias toliau galite pasiekti naudodamiesi API. Norint pradėti, reikia šiek tiek žinių.
„Framework“ yra kodo dalis, nustatanti, kaip projektas turėtų būti struktūrizuotas ir vykdomas. Tai tiesiog įpareigoja jūsų projekto architektūrą, pavyzdžiui, apibrėždami programos projektavimo parametrus, kad galėtumėte sutelkti dėmesį į projekto specifiką ir taip pabrėžti ne tik pakartotinį kodo naudojimą, bet ir dizaino pakartotinį naudojimą. Skirtingai nuo bibliotekų, rėmelių atveju valdymas yra apverstas ir kodas niekada neįsijungia į rėmus, vietoj to, rėmas skambina jums. Skirtingai nuo bibliotekų, rėmuose pabrėžiama struktūra ir standartai.
Programavimo metu biblioteka yra daugkartinių funkcijų, ty išteklių, kuriuos galite naudoti pakartotinai, rinkinys, naudojamas kompiuterių programose. Šaltiniai, kartais vadinami moduliais, paprastai saugomi objekto formatu. Daugelis programavimo kalbų turi savo standartines bibliotekas, tačiau programuotojai taip pat gali sukurti savo pasirinktines bibliotekas. Paprastai tariant, biblioteka yra funkcijų rinkinys, kuriam galite paskambinti, tuo tarpu sistema yra kodo dalis, kuri diktuoja jūsų projekto architektūrą. Tam tikra prasme yra susietos sistemos ir programavimo kalbos, kurios kartu padeda kompiuterinėms programoms.
„Kontrolės keitimas“ yra pagrindinis skirtumas, skiriantis sistemą nuo bibliotekos. Biblioteka yra funkcijų ir rutinų rinkinys, naudojamas kitose programose, ir jūs visiškai kontroliuojate, ar ji vadinama, kai iš bibliotekos vadinate metodą. Tačiau rėmo atveju valdymas yra apverstas. Tai diktuoja jūsų projekto struktūrą, o kodas niekada netapo į rėmus, vietoj to, jis pašaukia jus. Paprasčiau tariant, jūs galite tiesiog galvoti apie biblioteką kaip programos funkciją ir struktūrą, kaip apie programos skeletą, kuriame programa apibrėžia savo ypatybes.
Bibliotekos yra visuma funkcijų, kurios gali būti naudojamos bet kurioje vietoje - tai tiesiog kitų kūrėjų parašytas kodo gabalas, kurį galima naudoti pakartotinai. Jie sklandžiai integruojami į esamus projektus, kad būtų galima pridėti funkcijų, kurias galite pasiekti naudodami API. Jie dažniausiai naudojami dažnai naudojamiems moduliams, nes jūs neturite jų aiškiai susieti su kiekviena programa, kuri juos naudoja. Jie yra svarbūs susiejant programą ir įpareigojant. Kita vertus, rėmai suteikia standartinį programų kūrimo ir diegimo būdą ir dažniausiai gali būti naudojami pradedant naują projektą, o ne integruojami į esamus..
Norėdami geriau suprasti skirtumą tarp bibliotekos ir sistemos, pažvelkime į „jQuery“ ir „AngularJS“. „jQuery“ yra kelių platformų „JavaScript“ biblioteka, supaprastinanti DOM manipuliavimą kartu su daugybe kitų sudėtingų dalykų, tokių kaip manipuliavimas CSS, HTML įvykių metodai, AJAX skambučiai ir kt. „jQuery“ tikslas yra supaprastinti „JavaScript“ naudojimą jūsų svetainėje. Kita vertus, „AngularJS“ yra struktūrinė sistema, pagrįsta MVC architektūra, naudojama kuriant dinamiškas interneto programas. Tai visiškai pagrįsta HTML ir „JavaScript“ ir, skirtingai nei „jQuery“, jo negalima integruoti į esamus projektus, nes kaip sistema ji diktuoja, kaip jūsų kodas turi būti struktūrizuotas ir paleistas..
Kai kyla painiavos nusprendžiant, ar programos kūrimui turėtumėte naudoti biblioteką, ar sistemą, visa tai valdoma. Bibliotekos yra funkcijų rinkinys, į kurį galite paskambinti ir kiekvienas skambutis atlieka tam tikrą užduotį ir grąžina jums valdymą. Juos galima sklandžiai įtraukti į esamus projektus, o norint pradėti, reikia šiek tiek žinių. Kita vertus, rėmeliai diktuoja bendrą jūsų projekto struktūrą ir, skirtingai nei bibliotekos, rėmai jums skambina, o kodas niekada netapo į rėmus. Pagrindinis skirtumas, be abejo, yra valdymo inversija. Kalbant paprastai, bibliotekos yra lankstesnės ir turi didesnį valdymo laipsnį, tuo tarpu sistemos palaiko struktūrą ir standartus.