Задать вопрос
kumaxim
@kumaxim
Web-программист

Разве Composer бесполезен в 2017?

Доброго времени суток.

Решил уйти с фриланса в офис. Сходил на пару собеседований, в минувший понедельник вышел на стажировку.
Дал мне тимлид один из проектов(php 5.4 + kohana 3.2), поставил несколько задач и начал я работать. Про проект сказать ничего не могу, код как код, в каких-то местах лучше, в каких-то хуже. Никаких тестов нет, совсем и никаких, и, со слов тимлида, никто их тут до меня не даже не предлагал.

Для того чтобы не утонуть в большом объеме чужого кода, чтобы ничего там случайно не сломать, инициализировал в директории с проектом composer.json, затянул phpunit + selenium и начал разбираться с проектом. По ходу работы заметил несколько сторонних библиотек, включенных в код copy-past, которые поставил зависимостями от composer.
Трое суток ходил с отладчиком исследуя и исправляя баги, писал тесты, чтобы ничего не сломать. Сегодня, четвертый день моей стажировки, отчитываюсь перед тимлидом о проделанной работе, говорю мол вот добавил composer в проект, вынес на него вот эти захардкоренные библиотеки из кода, написал такие-то тесты, которые позволили закрыть вот эту вот задачу.

После всего этого слышу от тимлида: "А зачем ты использовал composer? Мы не используем его и вообще для 99% наших задач он бесполезен". Composer в 2017 году, который используется в любом современном PHP фреймворке(Laravel & Symphony как минимум) для 99% задач нашей компании бесполезен... Бум!!! У меня в голове это как-то даже не укладывается. Как может быть один из самых популярных инструментов в PHP среде бесполезен для 99% задач компании, которая использует стек технологий, основанный на PHP?

Господа, я отстал от жизни и чего-то не знаю? Может быть кто-то знает лучшую альтернативу чем composer для PHP?
Также, я задумался, а стоит ли вообще продолжать работу с командой? Стоит ли мне пытаться менять процесс? Стоит ли мне пытаться переубедить тимлида или же покинуть команду?
  • Вопрос задан
  • 4564 просмотра
Подписаться 9 Простой 7 комментариев
Пригласить эксперта
Ответы на вопрос 16
Maksclub
@Maksclub Куратор тега PHP
maksfedorov.ru
Вали от туда

А вообще вопрос глуповат. Если там php 5.4 и Kohana старенькая, то конечно они не используют композер.
Если нет тестов — не всегда плохо, очень много проектов без тестов работают. Да там ты не научишься хорошему программированию, но не так все ужасно... можно потихоньку их притащить, но не всегда это нужно бизнесу (вообще это задачи тимлидов и гигиены разработчиков)

А вот ответ Тимлида ужасен. Почему это выяснилось не на собеседовании?

Не ужели с вашим подходом к программированию и опытом вас не взяли в компанию получше?

UPD: Очень хороший ответ ниже по ссылке -- Разве Composer бесполезен в 2017?
Ответ написан
search
@search
мама говорит что я особенный
Композер - это, пожалуй, лучшее что произошло с пхп 5й версии.
Валить или переубеждать тимлида - это по сути одно и тоже, если присмотреться. Просто демонстрация вашей неспособности брать на себя ответственность.

Года 3 назад на моей прошлой работе в команду пришел очень толковый проактивный человек, который никого не стал переубеждать. Он просто стал делать правильные вещи. Без объяснений. И без приглашений. Коммитеть юнит тесты. Подключать линтеры. Деклайнить неудачные пулл-реквесты. В итоге он сам стал тимлидом где-то через год.

Такие дела.

Не у всех, правда, стальные яйца. Но за проактивность никогда еще не увольняли. Если вы уже создали пулл реквест, то "переубеждение" становится задачей тимлида.
Ответ написан
clockworkbird
@clockworkbird
leko.team
Если тимлид не ставил задач по подключению композера и настройки тестов, то получается, что вместо реальных задач вы занимались самодеятельностью и потратили на это ресурсы компании (свое рабочее время).
Junior-вакансия это прощает, но если хотите работать в команде, нужно понимать, что в работе важен результат, а не самолюбование.
Кроме того, исходя из того, что проект старый, высок риск того, что вы подключив композер что-то сломали. Например, кто-то когда-то "пофиксил" код в копипастенной библиотеке (как бы это дико не звучало), а вы выкачали ее исходную версию из репозитория и т.д. - моментов, на самом деле много.
Может это разовая задача по внешнему проекту на 3 рубля и какой смысл в ней городить огород, если ее нужно сделать за пару часов, отдать клиенту и забыть.
Конечно, тимлид хоть и динозавр, но будет обоснованно не доволен. Странно, что он не контролировал ход работы - такую самодеятельность в процессе работы нужно пресекать на корню.

Композер, конечно желательно использовать. Тесты (и непрерывная интеграция, и код-ревью и т.д...) - замечательно, но многие в реальном мире, в котором приходится поддерживать проекты с историей (в которой композера не было и в помине), замечательно живут и без них.

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

Особенно это хорошо если проекты пишутся за один раз и потом не поддерживаются. Много раз видел как composer install в новом окружении собирал не рабочий проект.

Я лично знаю не мало крупных сайтов (миллионы просмотров в день) в которых композера нет.

Композер это не стандарт разработки php. Это инструмент. Который имеет свои плюсы и минусы.
Ответ написан
usdglander
@usdglander Куратор тега PHP
Yipee-ki-yay
Пока проект на старте, то никто не пишет тесты, ибо это долго, а стартовые инвестиции имеют свойство кончаться. Да и о рефакторинге особо никто не задумывается. Позже, когда проект уже выходит на самоокупаемость или даже прибыль, то встаёт вопрос стоимости внесения изменения.
Судя по тому что используется Кохана, то проект не месяц назад начался. А значит стоимость внесения изменений уже высокая и тимлид даёт вам понять что именно такая стоимость всех устраивает. А то пришёл тут выскочка, который сейчас всё в порядок приведёт и половина штата программистов окажется не нужна. Вдруг ещё его уволят :)
Ответ написан
Комментировать
Ничему не научишься и никого не переубедишь.
homer-run.gif
Ответ написан
Тут мне видится проблема в самом тимлиде. Ему просто не понравилось, что какой-то стажер начал тыкать его мордой в его же дерьмо.
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
очевидно что тимлид застрял в прошлом не более того
Ответ написан
Комментировать
miraage
@miraage
Старый прогер
же покинуть команду

Я бы выбрал этот вариант.

Либо пойти к начальству выше, рассказать что они все некомпетентны, уволить их, стать самому лидом и набрать нормальную команду. Но тут можно услышать штуки про "бизнес", "всё работает, не трогай" итд.
Ответ написан
LightAir
@LightAir
LA
"Ух, эти ваши композеры доморощеные. Напридумывали."

Беги оттуда как Форест Гамп. Беги пока этот тимлид со своим легаси тебя не доканал.
От "жизни" не думаю, что ты отстал. Альтернативы пока нет. Могу ошибаться, но скорее всего поменять процесс, вправить мозг не получится, они там сидят в своём мирке и сами ничего не хотят. Надеюсь хоть git используют.
Ответ написан
Комментировать
@errogaht
PHP developer
Я бы не хотел работать в компании где composer бесполезен. У них это так, он бесполезен. Но мне страшно представлять что там за проект, мне точно не было бы интересно работать в проекте, который не использует самые лучшие мировые библиотеки и стандарты. Я не люблю эти все самописы потому что они почти всегда ужасного качества, ведь устоявшиеся проверенные временем библиотеки делают лучшие программисты и тратят на них огромное количество времени совершенствуя их, не представляю себе бизнес кроме mail.ru или яндекса который может себе позволить потратить столько же много времени на собственную библиотеку. Конечно этот тимлид приведёт 100 аргументов почему это круто делать свой самопис, но мне без разницы, я просто не хочу ковыряться в бесконечных самописах, я хочу прийти на следующую работу и сказать что у меня есть опыт работы с этим и этим, а они скажут, о это хорошо, мы это тоже используем.
Ответ написан
Комментировать
gobananas
@gobananas
finishhim.ru
Такое случается бывает если закрыться от внешнего мира и надолго засесть в тёплом, уютном месте. Технологии как раз обычно толкает тимлид который сам желает двигаться вперёд и тянет за собой команду вынуждая менять версии на новые, применять всё более новые фреймворки и всё самое продвинутое.
Вам вероятно всё же придётся найти себе более продвинутую команду. Обязательно используйте composer и тесты, вы делаете всё правильно.
Ответ написан
Комментировать
MisterN
@MisterN
Если они до сих пор на 5.4, то сдается мне, что как библиотеки, так и окружение там просто не меняют "пока работает". Скорость обновления библиотек не важна, пока ты их не обновляешь. Походу, тут это делается редко и да, копипостом. Не знаю, какие там задачи, вот хрен его знает, может и не нужен.
Сабмодули гит? Тоже вариант, так-то ))
Ответ написан
Комментировать
Валить, однозначно.
Ответ написан
Комментировать
solotony
@solotony
покоряю пик Балмера
вопрос работать там или нет зависит от денег которые там платят. если ты можешь выполнять работу и получать за нее хорошую оплату - почему бы не делать ее? То что ты несогласен с требованиями - всегда будет что-то что тебя раздражает.
Ответ написан
Комментировать
Ох уж эти "технологии ради технологий". Почему-то разработчики постоянно этим грешат, что отлично видно в комментариях. Видел с сотню проектов, где композер к чертям не нужен, это во-первых. И это абсолютно нормально.
Тут есть несколько моментов:

1. Композер реально бесполезен в некоторых проектах. Нужно смотреть от конкретной ситуации и целей. Приведу несколько примеров для понимания:

  • Проект полон легаси-кода. Ну как в вашем случае. 5.4, серьёзно? Вероятно этот проект просто на "дожитии", его надо поддерживать в состоянии "работает и ладно", а параллельно вероятно планируется его полный ремейк на нормальных технологиях.
  • CMS-ки. Ну тот же Битрикс. Сейчас еще суют туда композер, когда не знают толком нативные для Битрикса либы и его возможности из коробки. Но в 2017-м прямо 100% не стоит лезть в него с композером.
  • Проект банально очень простой. Ну нет необходимости подключать либы. Делаем допустим обычный CRUD сервис. На кой хрен в него дирижерами тыкать?
  • Делаем микросервисы. Близко к прошлому пункту. Большинство микросервисов реализуют всего лишь пару простейших операций, и их цель - весить мало, работать быстро. Грузить их каким-то мусором, пусть даже легковесным - совсем не нужно.
  • Упоротость безопасности. Бывают компании, которые блокируют всё - ресурсы, либы, технологии. Вот допустим мы в такой компании, которая запретила 90% рнр-шных либ. На кой вам композер?


2. Технологии ради технологий - не нужны. Композер это не "серебрянная пуля", а это инструмент со своими плюсами и минусами. Стоит понимать уместность любого решения. Если на каком-то проекте он не используется, то вероятно (хоть и не точно).

Ваш вопрос мне напомнил собеседование в 2020-м кажется году.
Я тогда собеседовался на позицию CTO к одному небольшому производителю мебели. У них была сайт-витрина (ну знаете, таких тысячи - товары есть, а купить там их нельзя. По сути визитка для каждого товара, с минимумом опций). И они начали его делать на микросервисах. Ну прямо подняли кубернетес и начали его делать.
Это первое что меня напрягло, так как очевидно, что для подобного сайта микросервисы - не нужны абсолютно. Ставишь вордпресс/битрих/тильду - и потребности бизнеса решены за бесплатно и 0 времени.
Второе что меня окончательно отпугнуло от той технической команды - они делали микросервисы на Ubuntu + Laravel. Это прямо ад. Какой Alpine, какой Slim/Lumen, зачем это всё :) И опять же, обосновали это тем, что:
Убунту - самая популярная линуксовая система
Ларавель - самый популярный фреймворк
Микросервисы - самый прорывной паттерн

И вроде бы всё верно. Но:
1. Мозайка не складывается
2. Им это всё нахрен не нужно. Ни убунту, ни ларавель, ни микросервисы, ни куча разрабов. Потому что задача такая - сделать "сайт-визитку".

При этом микросервисы я обожаю, композер юзаю, тесты пишем :)
Но в нужном месте, в нужное время.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы