Loading...
Brado avatar Brado 0 Точки

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

Здравейте!

Някой знае ли какво е реактивно програмиране и кога и как се прилага? 

Това, което разбрах от моя research(чисто теоретично) е, че реактивното програмиране:

  1. Подход, парадигма в програмирането, която решава (най-често) проблеми в реално време и по-точно този за нарастващия поток на потребители към дадено приложение.
  2. Определя как да се изменя с времето поведението на компютър, компютърно приложение, или компютърен код в отговор на външни стимули, като например въвеждане на потребителя.
  3. Може да блокира даден код или скрипт.
  4. Едно приложение е такова, ако е: responsive, scalable, resilient and massage-driven .

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

0
JavaScript Applications 04/11/2016 17:26:58
RoYaL avatar RoYaL Trainer 6849 Точки

Теоретично реактивното програмиране се върти около събития. Дадено събитие настъпва и разни неща се променят. Чудесно, нали? А по-конкретно?

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

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

При реактивното програмиране, всяка промяна в DateTime.Now ще предизвиква преизчисляване и респективно промяна в резултата на колко години си.

За да стигне това обаче до крайния потребител, трябва да бъде пуснато по мрежата, и за да е максимално олекотено, не трябва да караме потребителя да го иска, а ние да му го спуснем по мрежата. Т.е. намесваме и още дена концепция освен събитият (events), а именно - потоците (streams)

Примерът, по-горе не е чак толкова от парадигмата за реактивно програмиране, но го илюстрира доста просто.

В парадигмата за реактивно програмиране, хората са с стиснали ръцете да има Observer-и и Observable-и. Потокът от данни се спуска от една входна точка, регистрират се събития върху него (като евентуално е възможно да изникне грешка, така че се регистрират и събития за грешки) от различните записали се (observer-и). Всъщност това по-скоро се нарича функционално реактивно програмиране с асинхронни потоци и може би е нещото, което се има предвид, когато се каже реактивно програмиране. Тъй като първият пример може да бъде постигнат и без тази архитектура, която споменах.

 

 

5
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.