петък, 29 март 2024   RSS
    Барометър | Региони | Компании | Лица | Назначения


    4990 прочитания

    С един код напред: Библиотеки и технологични рамки

    Какво представляват библиотеките и технологичните рамки, как се различават и използват, научете от Светлин Наков - програмист и предприемач, основател на инициативата Software University
    25 февруари 2022, 15:51 a+ a- a

    Дигитализацията и скоковете, с които се развиват технологиите, направиха IT сферата една от най-привлекателните за развитие. Почти всеки мечтае за реализация в областта, достъп до стандарта на живот и международната общност, в която се работи. Но малко хора разбират колко труд и отдаденост изисква работата като IT специалист. Още по-малко са тези, които са наясно с какво се захващат, когато правят първите си стъпки.

    За да ви подготвим за скока в дълбокото, в рубриката „С един код напред“ Светлин Наков, един от тримата основатели на СофтУни, ще ни разкаже за някои от фундаменталните IT теми. Първата фундаментална тема, която разгледахме, беше какво представляват езиците за програмиране и как се прилагат. Можете да я видите тук

    Сега ще обърнем внимание на библиотеките и технологичните рамки. И най-вече – защо е толкова ценно да ги използваме. Това е още една основополагаща тема, която ще ви помогне да разберете процеса по програмиране много по-ясно и пълноценно.

    Какво представляват библиотеките?

    Ще започнем с разглеждането на библиотеките (libraries), които може да ползвате като програмисти в работата си, тъй като концепцията е по-лесна за разбиране от тази на технологичните рамки, или т.нар. frameworks. Библиотеката е готов компонент, добавка към програмата, която разработвате, която можете да изтеглите и инсталирате. Чрез нея се добавя някаква нова функционалност към приложението ви.

    Пример за това е функционалността за генериране на PDF отчет. За да направим PDF документ, който да отчита продажби за определен период от време, ще ни трябва библиотека. В противен случай трябва да напишем хиляди, ако не и десетки хиляди редове код, които да създадат формата. Ще трябва да знаем всички функционалности на един PDF документ – как се създава страница, текст, шрифт, метаданни за заглавието и т.н. Това са усложнения, които избягваме като използваме библиотека.

    Когато правим ремонт, не си купуваме метал или дърво, за да създадем сами вратите, които ни трябват като вид и размер, за да поставим на определените за целта места. Отиваме при специализиран доставчик на врати. Доставчикът е нашата библиотека, която ни осигурява необходимите компоненти, за да можем например да ползваме функционалността да затваряме и заключваме апартамента си, когато излизаме.

    Същото се случва и в програмирането, когато използваме библиотеки. Ако искаме да генерираме PDF документи, инсталираме библиотека за PDF документи. Ако искаме да четем Excel файлове, вземаме способна на това библиотека. Ако искаме да визуализираме данни в диаграма – правилно, трета библиотека. Ако искаме да визуализираме данни като таблица, която да е динамична, можем да местим колони, да филтрираме информация, да сортираме и т.н., ще ни трябва библиотека с потребителска компонента, която дава тези възможности, и така нататък.

    Някои примери за библиотеки

    Освен споменатите дотук примери за библиотеки ще разгледаме още няколко. Frontend библиотеки като jQuery и jQuery UI се използват от frontend програмисти, разработващи приложения за уеб браузъра или сайтове с по-динамичен потребителски интерфейс, спестявайки необходимостта сами да пишат функционалностите, които им трябват.

    Има и по-сложни библиотеки като сървърните. Пример за последните биха били библиотеки, които могат да четат и записват в различни графични формати. Например могат да прочетат GIF изображение и да го запишат в PNG. Или да прочетат PNG изображение, да го смалят пропорционално, за да има определен размер и да пасва на определено място, да речем профилна снимка, и да го запишат във формата WebP, който постига по-голяма компресия на графичното изображение и се чете от всички съвременни уеб браузъри.

    С други думи, библиотеките са външен софтуер, който можете да добавите към програмата си, когато искате да има определена функционалност, да върши определена работа. Точно както строителите купуват готови врати и само ги поставят на предназначеното за това пространство на строежа.

    Какво е технологичната рамка?

    Технологичните рамки, т.нар. frameworks, са по-комплексен инструмент от библиотеките. Това са технологии, които разработчиците използват като основа, върху която надграждат. Когато използваме фреймуърк при създаването на приложение, се сдобиваме наготово с много от функционалностите, които ни трябват. Например в повечето рамки ще намерите функционалности за log in, log out и регистрация на потребители наред с други подобни и масово използвани функции, които се срещат в иначе различни приложения.

    Framework-ът решава много задачи, които иначе програмистът ще трябва да реши сам. Например задачи, свързани с рутирането, преминаването от една страница на друга, или в мобилните приложения – от един екран към друг.

    Или задачи, свързани с т.нар. bind-ване или връзката между данните и потребителския интерфейс. Т.е. как при промяна от интерфейса, данните влизат в приложението като някаква структура от данни и как при промяна в структурата от данни, автоматично се обновява потребителският интерфейс. Това представлява реактивният подход в програмирането, при който при промяна в данните се променя интерфейсът или при промяна по интерфейса, се променят данните.

    Това е нещо, което повечето технологични рамки, и особено тези за frontend разработка, т.е. за създаване на потребителски интерфейси, съдържат и умеят. Но използването на рамки решава и други задачи. Например въпроси по сигурността – можем да зададем една страница да се показва само на регистрирани и влезли в профила си потребители. Или да я направим достъпна за всички. Или само за администратори и т.н.

    Истината е, че голяма част от общите задачи в едно приложение, които програмистите трябва да решат така или иначе, за да създадат работещ софтуер, са решени и идват наготово с рамката. Може да се каже, че тя е недописан софтуер, заготовка, върху която се надгражда.

    Нека пренесем концепцията за технологичните рамки в реалния свят. Представете си любимата ви торта и процеса ѝ по създаване. За да направим любимата си торта, трябва да имаме тава с конкретна големина, но и да изберем точните блатове от разнообразието на пазара, които ще се съберат в нея. По същия начин трябва да подберем и крема, който искаме. След това сме готови да редим.

    При реденето добавяме допълнителни съставки и елементи като плодове или ядки, а накрая украсяваме тортата и я правим уникална. Ако не разполагаме с фреймуърк (готови блатове и готови кремове, от които да избираме), ще трябва да купим допълнителни съставки, сами да си печем блатовете и т.н.

    Виждате как липсата на разработена технологична рамка, върху която да стъпим, изисква повече технологично време. Фреймуъркът улеснява програмистите при създаването на определен тип приложения – уеб приложения, сървърни уеб приложения, frontend приложения в браузъра, мобилни приложения и т.н., давайки заготовки и направо готови решения заедно с компоненти, които се навързват един с друг. Това спестява много от работата на програмистите.

    Примери за технологични рамки

    Рамките, които се използват, зависят от езика за програмиране и платформата, за която разработваме. Нека ги разгледаме в контекста на някои от най-популярните езици за програмиране, за които си говорихме и в предното издание на рубриката:

    • JavaScript - ако се насочите към разработка с JavaScript, т.е. в областта на frontend, ще използвате рамки като Angular, React, който е нещо средно между библиотека и фреймуърк, както и Vue.js, които ви служат за създаване на интерактивни frontend приложения, т.е. такива с много опции за взаимодействие в потребителския интерфейс.

    • C# – backend разработчиците също са зависими от езика, който използват. Например за езика C# съществува рамката ASP.NET MVC, която служи за разработка на сървърни уеб приложения. При тях изчисленията се извършват на сървъра, а не в уеб браузъра, в който се визуализират. Ако искате пък да свържете някаква база данни (като MySQL или Microsoft SQL Server) и класовете в C#, с които ще обработвате данните, ще използвате т.нар. Entity Framework (EF).

    • Java – при Java ще откриете изключително популярния фреймуърк Spring, който е толкова голям, че е разделен на различни компоненти. Spring MVC се използва за разработка на сървърни уеб приложения. Spring Data свързва Java класовете и базите данни или някакъв източник на данни и т.н.

    • Python – за Python също има редица технологични рамки, които да ускорят работата ви, като Flask и Django. Те решават въпроса с изграждането на динамични сървърни уеб приложения, аналогично на Spring MVC и ASP.NET MVC. NumPy служи за изчисления. Друг пример е рамката на Google за целите на deep learning – TensorFlow, и т.н.

    Как се различават библиотеките и технологичните рамки?

    Още щом започнете да боравите с тези инструменти на програмирането, интуитивно ще започнете да ги различавате. Библиотеката е проста добавка към програмата ни – например имаме електронен магазин и искаме да направим PDF фактури. Инсталираме библиотека за PDF документи, пишем 20 реда код, които да извадят фактурата, и казваме: „Направи страница, направи таблица, в нея покажи ето тези данни, които идват от базата данни, накрая сумирай редовете, добави 20% ДДС и отпечатай това и това поле“.

    От друга страна, рамката е основа, която ние довършваме. Следваме определен модел, рецепта и конкретни правила. Довършваме я, за да създадем софтуера си. Библиотеката добавяме към вече готов софтуер, за да го обогатим. Понякога двете се комбинират. Например към едно приложение, изградено върху ASP.NET MVC на C#, може да добавим библиотека за генериране на PDF-и и библиотека за четене на Excel файлове. Какво ще изберете, зависи от проекта, върху който работите.

    По-важното е, че програмирането не кара разработчиците да правят вече съществуващи открития. Преизползването на готов код може да се случва напълно автоматизирано. А именно тези възможности помагат на разработчиците да бъдат по-бързи, по-продуктивни и по-ефикасни в това, което вършат.

    Затова и работата с рамки и библиотеки е толкова критичен елемент от подготовката на всеки начинаещ специалист. А ако и вие сте такива и нямате никакъв опит в IT сферата, но искате да се впуснете в необятния и перспективен свят на информационните технологии, започнете обучението си още сега с безплатен курс Programming Basics. Плавно ще навлезете в света на програмирането и ще откриете какви инструменти са на ваше разположение, за да се развивате с бързи темпове, а след въвеждащото обучение, ще можете да станете част и от цялостната програма по софтуерно инженерство в SoftUni.

    Нагоре
    Отпечатай
     
    * Въведеният имейл се използва само за целите на абонамента, имате възможност да прекратите абонамента по всяко време.

    преди 47 минути
    TSMC планира да увеличи работната си сила до 100 000 души
    Най-големият производител на чипове наема с огромни темпове
    преди 16 часа
    ТИЗ започва паневропейски интермодален проект с италианската Gruppo UniRetiCon
    Целта е у нас да бъдат създадени различни интермодални платформи
    преди 17 часа
    Авиационният сектор у нас е достигнал на 92% нивото си от преди COVID пандемията
    85% от самолетите на българските авиокомпании са работили на пазари извън България
    преди 18 часа
    Български хляб достига до 10 европейски държави с Lidl
    Пловдивският производител „Хебър” инвестира близо 15 млн. евро в 2 нови производствени линии
    преди 19 часа
    Над 10% ръст на пътуванията на българи в чужбина през февруари
    Увеличават се и посещенията на чужденци у нас, показват данните на НСИ