Качество на кода на приставките за Wordpress

wp 001

Какво представляват приставките /Plugins /за WordPress?

Всички сме чували за WordPress – най-популярната система за създаване на уеб сайтове. Дали като потребители на такива сайтове или като програмисти и дизайнери, работещи по изграждане и поддържане на уеб сайтове, сблъсквали сме се с нея. В този материал ще разгледаме качеството – един наистина важен аспект на допълненията за тази система.

Приставките за системата WordPress, най - общо, представляват пакети с код, които допълват основната функционалност на WordPress. Plugin-ът, наричан още разширение или добавка (add-on), е софтуерен компонент със специфична функция, която може да бъде добавена към софтуер или уеб приложение. WordPress плъгините се състоят основно от PHP код, но включват и други активи като изображения, CSS и JavaScript. Когато потребителя създаде свой собствен плъгин, това разширява WordPress, изграждайки допълнителна функционалност над това, което WordPress вече предлага.

Какви примери могат да се посочат?

Joomla - програмиране в MVC модел

Разработката на уеб сайтове може да се прави "от нулата" - един много бавен и тежък метод - или чрез готова първоначална система (основа), което спестява огромен ресурс от време за създаване на стандартни функции. Повечето интернет потребители използват готови системи за управление и публикуване на съдържание в техните сайтове. Тези CMS-и (Content Management Systems) / системи за управление на съдържание са уеб софтуер, подпомагащ потребителя в процеса на управление на съдържанието. Сред по-известните системи CMS се нареждат платформи като WordPress, Drupal и Joomla (на български се чете Джумла). Joomla е безплатна CMS система с отворен код (open source), което позволява свободен достъп и промяна на софтуерния код. Софтуерът на системата е написан на езика PHP, използва база данни MySQL в повечето случаи (но поддържа и други - MS SQL, PostgreSQL, а с модификации може да работи дори с Oracle), за да улесни управлението на съдържанието и доставката, както на администратора на сайта, така и на посетителя. Също така платформата Joomla притежава техники на Обектно – ориентирано програмиране (ООП).

mvc 001

Съществуват много важни и интересни концепции в платформата Джумла. Една от тях е, че Joomla компонентите използват готов дизайн, т. нар. Model-View-Controller (MVC) модел от версия 1.5 насам, излязла през 2008 г. - цели 10 години, което в Интернет е огромен период. Основната концепция на модела MVC е разделянето на приложението в отделни области: контролер, модел и изглед. Това е съществено технологично предимство спрямо кода на популярния WordPress, където всичко е смесено на едно място, и продължава да е така дори и сега.

mvc 004

  • Контролерът (Controller) контролира главната програмна логика, решава кои задачи трябва да бъдат изпълнени и зарежда подходящия изглед. За по-задълбочено приложение са създадени и под-контролери, които контролират конкретни области на приложението.
  • Областта модел (Model) се грижи за обработката на данните. Моделът трябва да е независим от контролера, не трябва да извиква методи в контролера или изгледа. Функцията на модела не е да определя логиката на програмирането, а да обработва данните.
  • Изгледът (View) се извиква от контролера, получава данните от модела, както и обработва изхода чрез разширен шаблон.

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

Едно от най-трудните неща в програмирането е въпросът от къде да се започне, което означава, че съсредоточаване върху една задача в даден момент.

КАК МОДЕЛЪТ MVC ПОДПОМАГА ПРОГРАМИРАНЕТО В СИСТЕМАТА JOOMLA?

Системата Joomla използва MVC модела, като съдържа серия от класове: JController, JModel и JView, както и техни дъщерни класове. Следвайки модела, тези класове се използват, за да се намалят основните задачи по програмиране. Класовете включват функции за сигурност на кода.

Когато Joomla системата е започнала да обработва заявка от потребител, като например GET за определена страница или POST, съдържаща формулярни данни, едно от първите неща, които Joomla прави, е да анализира URL адреса, за да определи кой компонент ще отговаря за обработката, искането и ръчния контрол върху този компонент.

mvc 002

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

Моделът капсулира данните, използвани от компонента. В повечето случаи тези данни ще идват от база данни - или от базата данни на Joomla, или от външна база данни, но също така е възможно моделът да получава данни от други източници, например чрез API за уеб услуги, работещ на друг сървър. Моделът е отговорен и за актуализирането на базата данни, където е уместно. Целта на модела е да изолира контролера и изгледа от подробностите за получаването или изменението на данните.

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

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

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

mvc 003

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

Финансирай с европари разработката на уеб страница за твоя стартиращ бизнес

eu funds 1170x520

На 20 юни 2018 г. беше отворена за кандидатстване с проекти схемата "Насърчаване на предприемачеството", финансирана от Оперативна програма „Иновации и конкурентоспособност“.

В рамките на тази процедура, новосъздадени микро, малки и средни предприятия в страната (регистрирани след 31.12.2016 г.), извършващи дейност в редица сектори, могат да кандидатстват с европроект и получат безвъзмездно финансиране до 80% от размера на проекта или до 200 000 лв. за реализирането на пазара на свои предприемачески идеи – нови продукти или услуги.

По проектите стартиращите бизнеси могат да усвоят финансиране на следните видове разходи:

  • Придобиване на машини и оборудване, включително закупуване на нови компютри, сървъри и друго хардуерно оборудване, необходимо за реализирането на пазара на новите продукти (стоки или услуги).
  • Разработка на специализирани софтуерни приложения и програми, отново необходими за успешната пазарна реализация на предприемаческата идея.
  • Разработка на интернет страница на стартиращото предприятие.
  • Разходи за заплати (вкл. здравни и осигурителни вноски за сметка на работодателя) за квалифициран персонал, пряко ангажиран с разработването и лансирането на пазара на новите продукти и услуги.
  • Закупуване на материали и консумативи за производство, наем на работни помещения, както и ползването на редица бизнес – консултантски и маркетингови услуги в помощ на стартиращия бизнес; участие в семинари, изложения и други промоционални събития в страната и в чужбина.

Кандидатстването по процедурата става по изцяло електронен път, чрез попълване и подаване на уеб базиран формуляр за кандидатстване и бизнес план през Информационната система за управление и наблюдение на средставата от ЕС в България 2020 (ИСУН 2020 - https://eumis2020.government.bg/) и с помощта на квалифициран електронен подпис.