Open source


Практически невозможно найти сейчас разработчика или компанию, занимающуюся разработкой ПО, не использующую в своей работе программное обеспечение с открытым исходным кодом. И каждого такого разработчика (ну, хотелось бы в это верить) время от времени посещает мысль о том, что только потреблять, ничего не отдавая взамен – это как-то даже не то чтобы стыдно, а прямо-таки противоестественно. Ведь мы ежедневно зарабатываем деньги, используя труд тех, кто создал и сделал доступными огромное множество бесплатного ПО - библиотек, фреймворков, приложений, операционных систем и даже бесплатных сервисов.

И тот факт, что большинство из этого создано на деньги коммерческих компаний людьми, получающими за это зарплату, а не красноглазыми энтузиастами в свободное от работы и украденное у семьи (или наоборот) время ничего тут не меняет – люди вложили свои деньги, мы зарабатываем с этих вложений, не пора ли поделиться? Эта, вполне естественная мысль, посещала многих, но каждый, кто пытался пройти дальше благочестивых размышлений неизбежно сталкивался с вопросом – ну хорошо, а что делать практически?
  • Выбор стратегии

    Практически, выбор ограничивается следующими возможностями:
    • создать что-то своё
    • поучаствовать в чьём-то проекте своим трудом
    • дать денег понравившемуся проекту
    Третий пункт с негодованием отметаем, остаётся два. Можно либо поучаствовать в чём-нибудь интересном нам, либо создать что-то своё в мире open source.
    Мы, как компания, специализирующаяся на заказной разработке, по некоторому размышлению, решили попробовать первый путь. Второй – тоже вариант, но те патчи, которые мы время от времени делаем к свободному ПО для собственных нужд, во-первых, обычно являются частью какого-либо решения, права на которое принадлежат заказчику, а во-вторых мы не можем позволить себе тратить слишком уж много времени наших специалистов на неизбежные в процессе принятия патчей процедуры и дискуссии – зачем это надо, какие ещё есть пути решения той же проблемы, скольким ещё пользователям продукта это интересно и т.п. А просто открывать pull requests, не доводя дело до конца – это не наш стиль и вообще скорее будет демотивировать чем приносить удовольствие.
    В случае же, если мы выкладываем в open source что-то своё, мы сами решаем – что нам нужно, что нет и сколько времени мы готовы на это потратить. Наш выбор – попробовать сделать для начала небольшой собственный проект в open source.
  • Выбор проекта для open source

    Определившись со стратегией участия, мы задались следующим вопросом: а что бы такого нам в open source привнести? Поскольку идей по Причинению Немедленной Пользы Человечеству у нас никаких пока нет, мы решили выложить что-нибудь из уже использующегося у нас во внутренних проектах или какие-нибудь утилитарные вещи, используемые из проекта в проект в заказной разработке. Такого накопилось у нас довольно-таки много, вполне можно поделиться с сообществом.
    К кандидатам на open source были выдвинуты следующие требования:
    • оно должно быть небольшое, чтобы к нему было легко дописать документацию, объясняющую что это и как им пользоваться.
    • оно не должно быть «революционным» или предлагать какой-то «новый подход» - оно должно просто что-то улучшать или упрощать.
    • оно должно быть уже применено у нас более в реальном проекте.

    В итоге для опыта был выбран, разработанный нами для одного внутреннего проекта (о котором ещё не пришла пора поведать миру), набор провайдеров аутентификации через российские почтовые сервисы (yandex.ru, mail.ru) и соцсети (vk.com, ok.ru) для сервера управления доступом Keycloak.
    Дальше началась конкретная работа. Очевидно, если просто выложить исходники в открытый доступ, вероятность того, что кто-то ими воспользуется равна примерно нулю. Чтобы у человека, которому потенциально интересна наша наработка, появилось желание её испробовать необходимо:
    • предоставить документацию, объясняющую как воспользоваться решением.
    • дать возможность скачать всё, что необходимо для запуска, в бинарном формате, чтобы ему не нужно было ничего собирать из исходников



    В результате появился проект на GitHub и библиотеки в Maven Central.

    В дальнейшем проект получил развитие в виде модуля интеграции Keycloak и Kafka, а также коммерческого модуля аутентификации в Keycloak через ЕСИА
Close
Связаться с нами