Вводная часть
Я до мозга костей бизнес-системный аналитик. Люблю свою работу и получаю от неё неимоверное удовольствие. Люблю собирать требования, проектировать сложные системы, синхронизировать реализацию смежных систем и интеграцию между ними.
Но со школьных лет никуда не делось и хобби - интерес к программированию. Десятки домашних мини-приложений и систем, полезных и не очень, на которые уходило время отведенное для “хобби”. Получаемый на работе опыт применялся в хобби, а получаемый в хобби - на работе.
Работая над очередном мини-проектом я поймал себя на мысли, что реализовав несколько полезных функций системы (на схемах - бизнес функции), дальше время тратится на добавление в систему фундаментальных функций: работу с авторизацией пользователя и запросов, маршрутизацией, разграничением прав пользователей, логированием и пр. (на схемах - технические функции).
Именно на этой фазе зачастую энтузиазм пропадает. И проект уже получивший очертания, пополняет копилку таких же незавершенных
От пет-проекта к продукту
Так появилась идея, сначала выстроить вспомогательный технический инструмент, который без труда будет предоставлять все базовые функции. Инструмент, который будет легко подключаться к каждому проекту и я смогу сосредоточиться именно на разработке полезных функций очередного мини-проекта.
Сначала появился локальный инструмент, в котором все базовые функции упакованы в отдельный модуль и его возможно добавлять в каждую создаваемую систему.
После нескольких итераций его использования он перебрался на сервер. Стал предоставлять базовые функции как сервис (SaaS). Стал местом управления всех, реализуемых мной систем.
И в этот момент пришло понимание, что это и есть тот самый пет-проект, который становится основным, который мне интересен и который я хочу развивать.
Ещё чуть позже инструмент стал доступен не только мне, но и любому желающему. Добавилось управление видимостью систем друг для друга. Появилась возможностью гибкой настройки доступа к их бизнес функциям как для иных своих, так и для чужих систем, использующих данный инструмент. Он стал своего рода маршрутизатором запросов между ними, общей платформой. У инструмента появилось имя - SysGateway (Маршрутизатор информационных систем)
В настоящее время инструмент представляет из себя что-то вроде маркетплейса информационных систем, местом где можно заявить о своей системе, открыть доступ к ее функциям, вызывать бизнес функции одной системы из бизнес функций другой, смотреть логи и прочее, сохраняя при этом изначальное предоставление базовых возможностей любой системе.
Пример использования:
У меня товарищ занимается грузоперевозками. В одну из встреч я рассказал о своем хобби, он заинтересовался и попросил сделать ему систему по учету водителей\машин\клиентов\заявок. За один вечер я реализовал небольшой микросервис с несколькими методами для CRUD операций над этими объектами. Подключил свою библиотеку, через которую микросервис коннектится к платформе. На платформе зарегистрировал фронт-систему и бэк-систему с уже реализованным сервисом. Зарегистрировал реализованные в сервисе методы. В фронт-системе определил два профиля и сконфигурировал доступные им методы. Сделал небольшую фронт-систему, подключил библиотеку и для неё. Уже на четвертый день я отправил товарищу ссылку на систему, в которой он как владелец и его водители могли зарегистрироваться в системе и ознакомиться с MVP решения. А для отправки почтовых уведомлений водителям при назначении на них заявок, открыл доступ с уже реализованных ранее бизнес-функций другой системы.
И всё это вечерами, в свободное от работы время. Быстро и удобно.
Обращение к Хаброжителям за помощью
Я стою на развилке, на которой мне нужно сделать выбор: продолжать развивать инструмент как площадка для всех желающих или сосредоточиться на развитии для себя, для своих дальнейших пет-проектов. Буду очень благодарен, если пройдете небольшой опрос, который поможет мне определиться, стремится ли данному пет-проекту стать полезным продуктом для IT-сообщества, или не тратить на это силы и время.
Заключение
Я постарался максимально поверхностно, но концептуально описать возможности своего инструмента. Если интересно, то с технической реализацией и более полным описанием можно ознакомиться в разделе “Документация” на https://sysgateway.com/
Также буду рад видеть вас среди подписчиков в канале ТГ, где публикую информацию об изменениях в платформе. И с удовольствием отвечу на все вопросы в лс ТГ @SysGatewayAdmin
Какой бы не была дальнейшая судьба этого пет-проекта, для меня он стал отличным инструментом как для получения опыта в разработке, так и для дальнейшего использования. Рекомендую всем вести свои домашние проекты и буду рад, если мой инструмент станет вам в этом отличным помощником.