Костадин Капсъзов е работил в над 10 различни компании от България и Европа, в различни сфери на бизнеса. Участвал е в над 13 проекта използващи различни програмни езици като: C#, C++, Java, Python, JavaScript, Objective-C и др. На събитието на 25-ти юли „Writing Clean Code in C#“, той ще ни разкаже какво е Clean Code, как да поддържаме кодът си такъв и ще ни покаже практически примери със C#. Сега той разказва какво го мотивира в работата му и как започва да се занимава със C#.

Как започна да се занимаваш със C#?

Докато учех в университета се запознах с един преподавател по програмиране. Той ме покани да работя в неговата фирма и аз приех. За късмет попаднах в среда, където качеството на работа беше много високо. Това се оказа от ключово значение за последващото ми развитие. Имах възможността да работя с едни от най-добрите програмисти, които съм срещал някога. Те ми показаха колко е важно да подхождаш елегантно към разрешаването на всеки казус. Като започнем от избирането на име на клас в C#, което отнема часове, докато се направи правилно и стигнем до собствено модифицирани структури от данни, които работят по-бързо от тези в .NET. Този стремеж към перфекционизъм ме вдъхнови, и ме накара да се старая всичко в моята работа да бъде на най-високо ниво. Оттогава насам винаги наблягам на качеството на кода, който пиша. Това обаче често се оказва деликатна тема за компаниите, в които се търси нещо бързо и на всяка цена. Радвам се, че сега съм намерил съмишленици и имам възможност да прилагам добрите принципи в работата си в UltraPlay. Екипът, в който работя – „Нови разработки и иновации“ държи на високото качество и на елегантните решения.



 

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

Multithreading with Swift 3.0

 


 

Какво те мотивира в работата ти?

Освен приятелската атмосфера и благоприятната среда за развитие, ключов мотиватор за мен се явява и крайният резултат. Когато видя решение на проблемите на даден клиент се чувствам удовлетворен от работата си. Най-много се радвам, когато бъда свидетел на така наречения „Аха!“ момент, в който задачата е изпълнена по такъв начин, че клиентът си казва: „Как сме работили без това нещо до сега?“.

Кое е най-голямото техническо предизвикателство, с което си се сблъсквал?

В работата ми като програмист доста често се изправям пред различни технически предизвикателства. Те ми дават нов поглед върху казусите и определено ме водят към по-високо ниво в професионалното ми развитие. Не бих могъл да откроя най-голямото, но бих дал за пример наскоро възникнал казус. В момента разработваме платформата Odds.gg, важна част от портфолиото на UltraPlay. Тази платформа предоставя коефициенти и статистическа информация в реално време, базирани на хибридна методология от алгоритми за машинно обучение и решения, взимани от отдела за електронни спортове на компанията. В нея се обработват над 3000 prematch събития + 1500 събития на живо, всеки месец. Целта, която ни поставиха беше да оптимизираме вече съществуващата система, така че да може да поеме по-голям трафик от потребители, поради постоянно нарастващ интерес към нея.

Как го разреши / разрешихте?

В тази ситуация решението беше комплексно. Заедно с моите колеги решихме първо да отделим проекта изцяло от главната система, за да може промените в него да не се влияят от промените в системата. Тъй като използвахме многослойна архитектура, трябваше да преподредим различните функционалности, на правилните слоеве в приложението. Приложихме най-добрите практики в програмирането, свързани с организацията на програмен код. Използвахме SOLID принципите за обектно ориентиран дизайн, заедно с няколко алгоритъма за запазване на информация с висока производителност. Постоянно обсъждахме какво и как да използваме, за да стигнем до оптимален краен резултат, който да удовлетворява клиентите, използващи услугата. Много важно беше да се премислят всички потенциални проблеми и да се избере подходящо решение за тях. Екипната ни работа доведе до бързи резултати и в момента Odds.gg набира голяма популярност в света на онлайн залозите. Фактът, че Odds.gg обработва толкова голям обем от динамични данни в сферата на електронните спортове, прави платформата революционна за онлайн игралната индустрия. Освен това тя дава бърз и лесен достъп на операторите да подобрят качеството на своите услуги към крайния потребител на онлайн залози.

Какво би посъветвал всички, които сега започват да се занимават със C#?

C# е само един от многото езиците за програмиране, които са популярни днес. Моят съвет е да не се фокусират конкретно и само в C#, а да се запознаят с различните похвати и принципи, които са заложени в него. Като начало препоръчвам подробно да се запознаят с принципите на Обектно-ориентираното програмиране и Функционалното програмиране. И двете парадигми се използват постоянно и е важно да се познават добре. Препоръчвам да се запознаят с работата на Anders Hejlsberg и Erik Meijer, двама от главните участници в създаването на C#. И най-вече да наблегнат на качеството на кода, който пишат, още от самото начало. Изисква се постоянство и упоритост, за да се изградят добри навици. А всъщност от тях започва пътят към усъвършенстването на уменията на всеки добър програмист.


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

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

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

Share This