Выкладывать ли "велосипед" на GitHub?
Сегодня написал про "велосипеды". Про то, что у меня есть пул решений вида "написал сам", оформленных в отдельную экосистему.
И подумал: а почему у меня нет на GitHub репозитория с этим кодом?
Честно? Как-то не камильфо выкладывать код, работающий в проектах. Это же не "учебный пример". Это боевая система. В ней упаковано всё: мультипроектность (один код на десяток сайтов), ORM с поддержкой нескольких движков, локализация с автоматическим переводом, модульная структура, система авторизации и прав, генераторы отчётов. Всё это связано. Всё это работает "из коробки". И вся реализация направлена на одно — чем меньше думает разработчик о структуре, тем быстрее он пишет код.
Выложить такое в открытый доступ? Ну, это как показать чертежи своего дома незнакомым людям. Вроде бы и не жалко, но осадочек остаётся.
И я подумываю, что не буду выкладывать всё. Оставлю только самое ценное и безопасное.
Что останется:
Модульная структура + мультипроектность. Один код, который обслуживает несколько проектов с единой базой данных (либо с разными — у меня это не принципиально).
Локализация кода и данных без размышлений разработчика, что вписать, какой JOIN с чем и откуда забрать переводы.
ORM через Mysqli (оставлю только один движок — уберу лишний шум), самостоятельно оптимизирующий запросы в части WHERE.
Модульная архитектура — как устроены Preloader.php, Crud.php.
Роли и права — как устроены изнутри разрешения на действия и делегирование прав от "старшей" роли к "младшей".
Что уйдёт:
Миграции — не принципиальная вещь, которая будет только отвлекать.
Другие движки БД (PDO, Postgres, MongoDB). Особенно MongoDB — работа с NoSQL отдельная песня, и светить её не хотелось бы.
Сервер очередей — тут останется только формирование бэкапа базы. Остальное (почта или обработка изображений) уберу, чтобы не захламлять репу.
Кэширование — пожалуй, оставлю абстракт и интерфейс, но сами движки работы отсюда уберу как второстепенную историю.
A/B-тестирование — нужно для продакшна и для демо не столь важно, полагаю.
Уберу формирование валидирующего фингерпринта устройства пользователя — оставлю только валидирующую подпись запроса.
По сути, это будет не боевая система, а её учебно-демонстрационная версия. Как выставочный образец двигателя — работает, блестит, но в машину его не поставишь. Зато видно, как он устроен.
Вопрос: а кому это нужно?
С одной стороны — есть шанс, что кому-то поможет. Начинающим разработчикам, которые хотят понять, как устроена экосистема "с нуля". Или тем, кто ищет альтернативу готовым решениям. Или просто любопытным.
С другой стороны — это время. Нужно вычистить всё лишнее. Написать документацию. Придумать примеры. Оформить. А время — оно всегда в дефиците. Тем более, когда есть проекты, которые приносят деньги.
И самое забавное: если я выложу это в открытый доступ, то скорее всего получу тонну советов "а почему ты сделал не так?", "а вот тут можно лучше", "а у меня есть решение круче" (я сейчас мягкие варианты написал, понимаете, да? :) ). И буду тратить время на объяснение, почему я сделал именно так. Потому что это — не просто "так сделал". Это "так сделал, потому что иначе было хуже".
Но, с другой стороны, может быть, это и есть интересный опыт? Посмотреть, как сообщество отреагирует. Получить обратную связь. Может быть, даже найти единомышленников.
Я ещё не решил до конца. Но мысль эта — она не даёт покоя.
Вы бы стали выкладывать свой "велосипед" в открытый доступ? Или это только добавит головной боли?
P.S. Знаете, есть один железный аргумент ЗА. Если я выложу эту "рыбу" — у меня появится отличный повод написать серию статей. Не в том дело, что не о чем писать. Но это — готовый каркас для контента. Можно разобрать по косточкам каждое решение. Почему так, а не иначе. Почему я сделал именно такой выбор. И как это работает в реальном проекте. В общем, если не для пользы человечеству — то хотя бы для собственного блога. Тоже вариант.
Сайт: https://tzlab.pro
· 03.08
Один только довод есть против выкладывания кода: стыдно показать.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 03.08
Согласен. Выкладывать все сразу из поделок для себя - не варик - хейта не хочется. Выкладывать кусочек работающего - смысла мало.
Интересно, в первый раз всегда больно? :))))) попробую....
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён