Library at Framework
Ang pagpili ng tamang tool o teknolohiya para sa isang naibigay na problema ay isa sa mga pinakamahalagang aspeto ng programming. Ang tamang tool ay ang susi sa tagumpay ng isang proyekto. Ito ay kung saan ang karamihan sa mga programmer ay nabigo sapagkat karaniwan silang nakikitungo sa maraming mga tool. Ito ay tungkol sa tunay na tanong, "dapat mong buuin ang iyong aplikasyon sa isang library o isang balangkas?" Ito ay isa sa mga pinaka-mapag-usapan na paksa ng talakayan sa loob ng komunidad ng programmer at kadalasan ay isang pinagmumulan ng pagkalito. Ang isang maliit na koponan na may kaunting mga developer, karamihan sa mga nagsisimula ay maaaring mas mahusay na magtrabaho sa isang balangkas samantalang ang mga aklatan ay mga bloke ng gusali na maaaring magamit kahit saan at nagbibigay-daan para sa mas higit na kakayahang umangkop at kontrol.
Ang pangunahing pagkakaiba sa pagitan ng isang library at isang framework ay ang "Inversion of Control" (IoC). Ang isa ay maaaring sabihin balangkas ay isang koleksyon ng mga aklatan ngunit ang buong ideya ay sa anumang paraan naiiba.
Ano ang Library?
Ang Library ay isang koleksyon ng mga magagamit na mga function na ginagamit ng mga programa sa computer na nangangahulugan ng mga mapagkukunan na maaari mong muling gamitin na maaaring magsama ng mga klase, subroutine, pre-compiled na code, mga template ng mensahe, atbp. Ang karamihan sa mga programming language ay may sariling standard library ngunit ang mga programmer ay maaari ring lumikha ng kanilang sariling mga custom na aklatan. Ito lamang ay isang piraso ng code na isinulat ng iba pang mga developer na maaaring magamit muli kahit saan. Ang mga aklatan ay maaaring walang putol na inkorporada sa mga umiiral na proyekto upang magdagdag ng pag-andar na maaari mong higit pang ma-access gamit ang isang API. Kailangan ka ng kaunting kaalaman upang makapagsimula.
Ano ang Framework?
Ang Framework ay isang piraso ng code na nagpapahiwatig kung paano ang proyekto ay dapat na nakabalangkas at tumakbo. Iniuutos lamang nito ang arkitektura ng iyong proyekto tulad ng pagtukoy sa mga parameter ng disenyo ng isang application upang maaari kang tumuon sa mga detalye ng proyekto, sa gayon ay nagbibigay-diin sa reusability ng disenyo sa halip na reusability ng code. Hindi tulad ng mga aklatan, ang kontrol ay nababaligtad sa kaso ng mga balangkas at ang code ay hindi kailanman tumatawag sa isang balangkas, sa halip, ang balangkas ay tumatawag sa iyo. Hindi tulad ng mga aklatan, binibigyang-diin ng mga balangkas ang istraktura at pamantayan.
Pagkakaiba sa pagitan ng Library at Framework
Sa programming, ang library ay isang koleksyon ng mga magagamit na reusable - ibig sabihin ang mga mapagkukunan na maaari mong muling gamitin - na ginagamit ng mga programa sa computer. Ang mga mapagkukunan, kung minsan ay tinatawag na mga module, ay karaniwang nakaimbak sa format ng bagay. Karamihan sa mga programming language ay may sariling standard library ngunit ang programmers ay maaari ring lumikha ng kanilang sariling pasadyang aklatan. Sa madaling salita, isang library ay isang hanay ng mga function na maaari mong tawagan, samantalang ang balangkas ay isang piraso ng code na nagpapahiwatig ng arkitektura ng iyong proyekto. Sa isang paraan, ang mga balangkas at mga programming language ay magkakaugnay na magkakasama sa mga programa sa computer.
Ang "Inversion of Control" ay ang pangunahing pagkakaiba na naghihiwalay sa isang balangkas mula sa isang library. Ang isang library ay isang hanay ng mga pag-andar at gawain na ginagamit ng iba pang mga programa at ikaw ay ganap na kontrol kung ito kapag tumawag ka ng isang paraan mula sa isang library. Gayunpaman, ang kontrol ay inverted sa kaso ng isang balangkas. Itinakda nito ang istraktura ng iyong proyekto at ang code ay hindi kailanman tumatawag sa isang balangkas, sa halip, tinawag ka nito. Sa madaling salita, maaari mong isipin lamang ang library bilang isang function ng isang application at isang balangkas bilang balangkas ng application kung saan ang application ay tumutukoy sa sarili nitong mga tampok.
Ang mga aklatan ay isang hanay ng mga function na maaaring magamit kahit saan nangangahulugang ito ay isang piraso ng code na isinulat ng ibang mga developer na maaaring magamit muli. Ang mga ito ay isinasama nang walang putol sa mga umiiral na proyekto upang magdagdag ng pag-andar na maaari mong ma-access gamit ang isang API. Sila ay kadalasang ginagamit para sa mga madalas na ginagamit na mga module dahil hindi mo na kailangang malinaw na iugnay ang mga ito sa bawat programa na gumagamit ng mga ito. Mahalaga ang mga ito sa programa ng pag-uugnay at pagbubuklod na proseso. Ang mga Framework, sa kabilang banda, ay nagbibigay ng isang karaniwang paraan upang bumuo at maglawak ng mga application at maaaring magamit sa karamihan kapag nagsisimula ng isang bagong proyekto sa halip na isinama sa mga umiiral na.
Upang mas mahusay na maunawaan ang pagkakaiba sa pagitan ng isang library at isang balangkas, tingnan natin ang jQuery at AngularJS. Ang jQuery ay isang cross-platform JavaScript library na nagpapasimple sa DOM manipulation kasama ang maraming iba pang mga kumplikadong bagay tulad ng CSS pagmamanipula, mga paraan ng kaganapan sa HTML, tawag AJAX atbp Ang layunin ng jQuery ay upang gawing simple ang paggamit ng JavaScript sa iyong website. AngularJS, sa kabilang banda, ay balangkas ng istruktura batay sa architecture ng MVC na ginagamit para sa paglikha ng mga dynamic na web application. Ito ay ganap na batay sa HTML at JavaScript at hindi katulad ng jQuery, hindi ito maaaring isama sa mga umiiral na proyekto dahil bilang balangkas, tinutukoy nito kung paano ang iyong code ay nakabalangkas at tumakbo.
Library vs. Framework: Chart ng Paghahambing
Buod ng Library vs. Framework
Kapag may pagkalito tungkol sa pagpapasya kung dapat kang gumamit ng isang library o isang balangkas para sa pagbuo ng isang application, ang lahat ay bumaba upang kontrolin. Ang mga aklatan ay isang hanay ng mga function na maaari mong tawagan at ang bawat tawag ay gumaganap ng ilang gawain at ibabalik ang kontrol sa iyo. Maaari silang maging walang putol na inkorporada sa mga umiiral na mga proyekto at isang maliit na kaalaman ang kinakailangan upang makapagsimula ka. Ang mga Framework, sa kabilang banda, ay nangangasiwa sa pangkalahatang istraktura ng iyong proyekto at hindi katulad ng mga aklatan, tinawag ka ng mga balangkas at ang code ay hindi kailanman tumatawag sa isang balangkas. Ang pangunahing pagkakaiba ay siyempre ang pagbabaligtad ng Control.Sa madaling salita, ang mga aklatan ay mas nababaluktot na may higit na antas ng kontrol, samantalang ang mga balangkas ay nagpapatupad ng istraktura at pamantayan.