Здравко Стойчев е програмист с дългогодишен опит и многобройни интереси в програмирането и компютърните науки. Той има бакалавърска и магистърска степени от ФМИ на Софийския университет, където и защитава дипломна работа за разработка на дистрибутирани системи, използвайки принципите на функционалното и реактивното програмиране. Здравко ще ни разкаже и за основните принципи и проблеми при изграждането на съвременни софтуерни системи на предстоящото събитие „Reactive programming. Основни принципи и проблеми при изграждането на съвременни софтуерни системи“ на 17-ти януари. Вижте кои са най-големите предизвикателства в работата с реактивно програмиране и как той се насочва към работата с Reactive Programming:

Как започна да се занимаваш с Reactive programming?



 

Събитие на фокус:

Building scalable applications for the cloud

 


 

За първи път за реактивно програмиране и реактивни системи чух през 2013 г. покрай интереса ми към функционалното програмиране, най-вече към езиците Clojure и Scala, които изучавах тогава, и нещата, които се развиваха в техните общности. Доколкото си спомням, първоначално моя интерес привлече публикацията „Deprecating the Observer Pattern with Scala.React“ на Мартин Одерски, авторът на Scala, а по-късно записах Coursera курса „Principles of Reactive Programming“. Концепцията ми беше доста любопитна и ми се искаше да се задълбоча в нея, поради което я избрах като тема на дипломната ми работа. Последва дълъг период на откриване на нови неща и преосъзнаване и изчистване на разбирането ми за света на програмирането и дизайна на системи. Този процес все още продължава.

Кое е най-голямото предизвикателство в работата с Reactive programming?

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

При моделиране не можем да избягаме от свойствата на реалния свят, особено когато системата ни е дистрибутирана. Първоначално най-трудно може би e да се осъзнаят тези свойства, тяхната простота и как те влияят на комуникацията между различни компоненти. Направим ли го, вече имаме цялата свобода да творим и така предизвикателството (но и най-забавното) се крие в моделирането, дизайна и архитектурата на приложението. Важно е резултатът от тях да остане прост – не по-прост от нуждите на продукта, но не и по-сложен.

Кои са най-добрите Reactive Programming практики?

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

Интересно е, че добрите практики в голяма степен се допълват една с друга, но не съществуват „най-добри“. Ще разгледаме тази особеност и някои от тези практики на самата презентация.

Издай ни с няколко думи какво да очакваме на събитието на 17 януари?

Ще се върнем към някои основи на програмирането и разработката на софтуер и ще ги разгледаме спрямо целите на реактивните системи. Надявам се да видим програмирането от една вълнуваща и изпълнена с възможности страна.

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

Визия: Личен архив

Прочети още:
6 от най-популярните Machine Learning алгоритми – приложения и възможности
Умен дом с openHAB и Eclipse SmartHome. Интервю с Димитър Иванов

Share This