С какой целью разрабатывается фреймворк
Добавлено: 2019.04.01, 18:20
Здравствуйте.
Долго отсутствовал на форуме по причине того что не мог получить ответы на свои вопросы, а те вопросы которые задают другие были просто не интересны. Тем не менее на данный момент возник глобальный вопрос к разработчикам и приблеженным к ним людям.
Просьба не разводить здесь срачь кому нечего сказать, но чешутся руки, ниже приведу описание моего проекта, для понимания сути вопроса.
С Yii познакомился с версией 1.1.9 в марте 2011, в октябре начал писать ERP. Это первый фреймворк который мне понравился и отвечал моим требованиям и идеологически соответствовал моим ощущениям прекрасного в программировании.
В составе ERP 16MB чистого исходного кода, с каментами за 30 завалит, 250MB исходных кодов используемого стороннего ПО, все это управляет примерно 40 сервера Postgres, MySQL, MariaDB с общим объемом данных в них около 400GB. В проекте есть основные модули - CRM, Workflow, Документохранилище, База знаний, Почтовый архив компании, Система тестирования сотрудников, модуль Отчетов. Система прав представляет из себя лес из около 2000 ролей, в системе работает каждый день около 400 человек географически распределенного торгово-производственного холдинга, в котором работает всего почти 1000 человек. Из проекта управляются почтовый mail proxy, Asterisk, десяток СКУД'ов, сервера видеонаблюдения, СМС гейт, сервер календарей, интернет файл-браузер взамен samba, авторизация через LDAP и управление LDAP. Пользователь заводится в системе, автоматически в соот. с должностью получает права в системе, которые разливаются вплоть до того, что у него будет доступно на рабочей станции.
Сейчас идет процесс усиления интеграции со складской программой так же собственной разработки, которая написана на других средствах + интеграция с 1С всякого рода ЗУП, Бухгалтериями и т.д.
в 2014 году вышел Yii 2, мы не ломанулись переводить проект на него (зачем самостоятельно искать косяки, тем более что косяки в Yii 1.1 пришлось исправлять самостоятельно, потому что ждать не было времени) и подождали до лета 2016 года, после чего начали перевод. В статьях писали о несовместимости фреймворков, но суть их сводилась что не смотря на несовместимость типа просто одни программные конструкции надо поменять на другие, кое что просто копипастом заменить, в общем процесс не представлялся особо сложным, но все закончилось тем, что пришлось перекрыть значительную часть классов, выпилить некоторое количество функционала, чтобы обеспечить прозрачную работу для пользователя, когда он не знает что сейчас он работает на Yii 1.1 а следующая страница уже работает на Yii 2. Помимо этого пришлось наваять собственную визуальную библиотеку и специализированную версию ActiveRecord для Postgres, которая вытаскивает из PG все что только можно и обеспечивает определенные принятые в проекте правила, в результате чего объявление в 3 строки приводит к созданию полностью функциональной модели, в которой остается написать только бизнес валидации, все проверки типов, внешние связи и т.д., все настраивается автоматически исходя из описания данных хранящихся в системных таблицах PG.
Теперь закончим с историей и нудным описанием проекта и перейдем к сути вопроса/проблемы с которой я тут решил всплыть.
В какой-то момент мы столкнулись с тем, что мы не могли найти персонал, потому что никто не хотел работать на Yii 1.1, все хотели Yii 2, нормальное желание и вот мы потратили 1.5 года на то чтобы скрестить в проекте 2 версии фреймворка и только год занимаемся переводом проекта и что тут происходит, выходит новая версия Yii 3, которая по заявлениям разработчиков не совместима с Yii 2, хоть и не так радикально как Yii 1.1, но тем не менее это большая проблема для большого проекта.
Меня интересует на кого рассчитывают и на какого-рода проекты рассчитывают разработчики фреймворка? Для сайтоваятелей фреймворк слишком сложный и имеет мало бантико-плюшек, требует хороших знаний PHP не на уровне просмотра пары примеров на сайте - PHP для чайников. По моим ощущениям это фреймворк для проектов средней сложности и выше, но если мы говорим о таких проектах - это проекты живущие годами, но архитектурная политика фреймворка на мой взгляд смахивает на погоню за модными тенденциями в попытках остаться популярным, из-за этого от версии к версии фреймворк полностью переделывается и совсем не в ту сторону, которую стоило бы. Так же у таких потребителей как мы возникают проблемы описанные выше, из-за чего отбивается желание использовать этот фреймворк, текущий проект никуда от фреймворка не уйдет, но следующий проект очень вероятно я не буду стартовать на Yii, потому что он совершенно не соответствует традициям PHP - сильная обратная совместимость и соответствует традиции .NET, в которой с выходом новой версии мы выбрасываем все наработки и начинаем делать все с нуля.
Хотелось бы услышать мнение разработчиков фреймворка и серьезных разработчиков. Мне стоило достаточно больших усилий убедить хозяина начать переход на Yii 2 и удалось только тогда, когда люди стали отказываться работать на Yii 1.1 и вот опять я в перспективе 1-2 лет окажусь у того же самого разбитого корыта и потрачу еще полтора года на скрещивание уже 3-ех фреймворков.
Долго отсутствовал на форуме по причине того что не мог получить ответы на свои вопросы, а те вопросы которые задают другие были просто не интересны. Тем не менее на данный момент возник глобальный вопрос к разработчикам и приблеженным к ним людям.
Просьба не разводить здесь срачь кому нечего сказать, но чешутся руки, ниже приведу описание моего проекта, для понимания сути вопроса.
С Yii познакомился с версией 1.1.9 в марте 2011, в октябре начал писать ERP. Это первый фреймворк который мне понравился и отвечал моим требованиям и идеологически соответствовал моим ощущениям прекрасного в программировании.
В составе ERP 16MB чистого исходного кода, с каментами за 30 завалит, 250MB исходных кодов используемого стороннего ПО, все это управляет примерно 40 сервера Postgres, MySQL, MariaDB с общим объемом данных в них около 400GB. В проекте есть основные модули - CRM, Workflow, Документохранилище, База знаний, Почтовый архив компании, Система тестирования сотрудников, модуль Отчетов. Система прав представляет из себя лес из около 2000 ролей, в системе работает каждый день около 400 человек географически распределенного торгово-производственного холдинга, в котором работает всего почти 1000 человек. Из проекта управляются почтовый mail proxy, Asterisk, десяток СКУД'ов, сервера видеонаблюдения, СМС гейт, сервер календарей, интернет файл-браузер взамен samba, авторизация через LDAP и управление LDAP. Пользователь заводится в системе, автоматически в соот. с должностью получает права в системе, которые разливаются вплоть до того, что у него будет доступно на рабочей станции.
Сейчас идет процесс усиления интеграции со складской программой так же собственной разработки, которая написана на других средствах + интеграция с 1С всякого рода ЗУП, Бухгалтериями и т.д.
в 2014 году вышел Yii 2, мы не ломанулись переводить проект на него (зачем самостоятельно искать косяки, тем более что косяки в Yii 1.1 пришлось исправлять самостоятельно, потому что ждать не было времени) и подождали до лета 2016 года, после чего начали перевод. В статьях писали о несовместимости фреймворков, но суть их сводилась что не смотря на несовместимость типа просто одни программные конструкции надо поменять на другие, кое что просто копипастом заменить, в общем процесс не представлялся особо сложным, но все закончилось тем, что пришлось перекрыть значительную часть классов, выпилить некоторое количество функционала, чтобы обеспечить прозрачную работу для пользователя, когда он не знает что сейчас он работает на Yii 1.1 а следующая страница уже работает на Yii 2. Помимо этого пришлось наваять собственную визуальную библиотеку и специализированную версию ActiveRecord для Postgres, которая вытаскивает из PG все что только можно и обеспечивает определенные принятые в проекте правила, в результате чего объявление в 3 строки приводит к созданию полностью функциональной модели, в которой остается написать только бизнес валидации, все проверки типов, внешние связи и т.д., все настраивается автоматически исходя из описания данных хранящихся в системных таблицах PG.
Теперь закончим с историей и нудным описанием проекта и перейдем к сути вопроса/проблемы с которой я тут решил всплыть.
В какой-то момент мы столкнулись с тем, что мы не могли найти персонал, потому что никто не хотел работать на Yii 1.1, все хотели Yii 2, нормальное желание и вот мы потратили 1.5 года на то чтобы скрестить в проекте 2 версии фреймворка и только год занимаемся переводом проекта и что тут происходит, выходит новая версия Yii 3, которая по заявлениям разработчиков не совместима с Yii 2, хоть и не так радикально как Yii 1.1, но тем не менее это большая проблема для большого проекта.
Меня интересует на кого рассчитывают и на какого-рода проекты рассчитывают разработчики фреймворка? Для сайтоваятелей фреймворк слишком сложный и имеет мало бантико-плюшек, требует хороших знаний PHP не на уровне просмотра пары примеров на сайте - PHP для чайников. По моим ощущениям это фреймворк для проектов средней сложности и выше, но если мы говорим о таких проектах - это проекты живущие годами, но архитектурная политика фреймворка на мой взгляд смахивает на погоню за модными тенденциями в попытках остаться популярным, из-за этого от версии к версии фреймворк полностью переделывается и совсем не в ту сторону, которую стоило бы. Так же у таких потребителей как мы возникают проблемы описанные выше, из-за чего отбивается желание использовать этот фреймворк, текущий проект никуда от фреймворка не уйдет, но следующий проект очень вероятно я не буду стартовать на Yii, потому что он совершенно не соответствует традициям PHP - сильная обратная совместимость и соответствует традиции .NET, в которой с выходом новой версии мы выбрасываем все наработки и начинаем делать все с нуля.
Хотелось бы услышать мнение разработчиков фреймворка и серьезных разработчиков. Мне стоило достаточно больших усилий убедить хозяина начать переход на Yii 2 и удалось только тогда, когда люди стали отказываться работать на Yii 1.1 и вот опять я в перспективе 1-2 лет окажусь у того же самого разбитого корыта и потрачу еще полтора года на скрещивание уже 3-ех фреймворков.