7 април, 2020

Антон Сутармин е Frontend дивелъпър от Русия и по-конкретно Devexperts, Санкт Петербург. Неговият задълбочен интерес е насочен към Functional programming и Typescript, нещо, което не е особено популярно за всеки програмист.

Г-н Сутармин, разкажете ни как протича Вашето присъствие на конференциите от Global Tech Summit?

Това е първият път в който съм на подобна конференция като лектор и определено ми харесва. Колкото до присъстващите – самата лекция бе много интересна и задълбочена, не е популярна материя и не съм напълно сигурен дали всички в залата разбраха за какво говоря. Но пък бе маркирана в графа “Advanced”, което за мен е хубаво.

Занимавате се с функционално програмиране, на тази тема бе и лекцията Ви. Можете ли да разкажете повече за него и защо го предпочитате?

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

Това значи, че ни трябва по-сериозно познание по математика?

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

Кои са фундаменталните детайли на функционалното програмиране?

Има правила, които са добре познати и всеки който се захваща с функционално програмиране би трябвало да ги знае. Например – “immutable data”. След като си създал променлива, не можеш да промениш нейната стойност и в тази насока те вече не са променливи, а са константи. Второто нещо е pure функциите. Те не ни позволяват да правим странни неща или т. нар. “side effects”. Това, което правят е да поддържат ядрото на нашата апликация чисто и предвидимо. Например не може да “хвърлят” грешки. Това е и основната функция на функционалното програмиране.

Кои са неговите най-сложни аспекти?

Бих казал, най-голямата трудност е, че за да направиш всички както трябва, се налага да учиш бързо. Съществуват много различни модели, по които човек не е свикнал да работи и лесно може да си каже – “този проблем не би могъл да се разреши с функционално програмиране, трябва да направим някоя магия…”. В този случай трябва да научиш от някъде другаде как това може да се разреши с подходи на функционалното програмиране. Но винаги съществува такова решение, просто не винаги е лесно откриваемо.

Интервюто проведе Пламен Михайлов

Тагове: , , , , ,