#php #composer
У меня есть 2 небольшие библиотеки (буквально по 1 классу) оформленные как пакеты composer, они решают одинаковые задачи, просто разным подходом. Без использования интерфейсов или абстракции, я их привел к единообразному API, и у меня прям руки чешутся написать для них интерфейс (вот такой вот реверс). Но писать одинаковые интерфейсы в разные репозитории - как-то совесть не позволяет. Насколько это целесообразно под один интерфейс выделять целый пакет (возможно, composer.json будет больше весить чем файл с интерфейсом)? Есть более красивые решения, без объединения репозиториев?
Ответы
Ответ 1
Подойдите к вопросу практически. Будет ли кто-нибудь использовать обе ваши либы одновременно? Если ваш ответ нет, то не заставляйте програмеров выкачивать сложные иерархии либ только чтобы сыкономить на одном файле. Мне нравятся либы без зависимостей, с ними мало проблем. Так как они сами по себе то никакие зависимости сломатся не могут, гемороя по минимуму. Тогда и в интерфейсе смысла не очень то много, это фиктивная абстракция которая никому не нужна. Если ваш ответ да, то смысла в трех пакетах ради двух классов и одного интерфеса вообще ноль. Если кому-то нужны две либы сразу, а они такие маленькие, то зачем вообще делить то? Пусть будет одна со всеми функциями сразу. Вот если бы ваши либы были дико сложными, с кучей кода, разными зависимостями, если бы использовались обе сразу, то тогда можно устраивать сложную иерархию пакетов, будет практический смысл. Короче, не делайте простое сложно, код красивей не станет.
Комментариев нет:
Отправить комментарий