Алишер, привет! По мультиязычности можно будет на днях провести совместную он-лайн конференцию. А пока немного информации: MODX очень хорошо поддерживает мультиязычность, и дает несколько вариантов решения. Для оптимального выбора в основном надо ориентироваться на уникальность структуры сайтов на разных языках и как много полей у создаваемых документов. Если на разных языках сайты будут отличаться по структуре, то лучше всего это делать на разных контекстах с уникальными документами для каждого сайта в отдельности. Если же структура везде одинаковая, только языковые поля будут отличаться по содержанию, то однозначно лучше создавать TV-параметры под разные языки, и в одном документе сразу наполнять тексты на разных языках в разных полях. А глобально по всему сайту текущий язык определять по системной переменной cultureKey.
$modx->getOption('cultureKey', null, 'ru');
Или [[++cultureKey]] в чанках. Или в Смарти {config name=cultureKey}
Валерий, ты все правильно говоришь. Это потому что ты и специалист, и представитель заказчика со стажем. То есть ты и техническую сторону понимаешь, и роль заказчика на себе прочувствовал. И я действительно как раз эти цели перед собой и ставлю. Не зря же я всю ночь докручивал свой modLivestreet, чтобы не просто обеспечить статус страницам скрыт/не скрыт, а именно обеспечить уровни доступов на уровне ACL MODX-а. У нас уже на этом сайте настроены групповые политики, чтобы не просто распределить людей на программист/не программист, а еще и рулить кто куда какой доступ имеет. То есть и будут тимлиды, и проджект-менеджеры, и рядовые исполнители и т.п. И именно поэтому я добавил в профили типовые поля контактов, необходимые для работы (гит, битбканет, modxcloud). Но наша сегодняшняя проблема заключается в распределенности технологий. То есть modxcloud обеспечивает хостинг с фишками для разработки. Битбакет — трекер и гит-репозиторий. И на битбакете, и на modxcloud если политики доступов, можно расшаривать проекты и т.п. Но минус заключается в том, что для выполнения каких-то задач приходится переходить именно туда. То есть хочешь создать проект — идешь на битбакет, кликаешь Создать (там же трекер), создал новый тикет здесь, программист откликнулся, с заказчиком они договорились, заказчик посмотрел у него в профиле аккаунт на битбакете, у себя в панели на битбакете дал доступ программисту (если проект не новый и работы уже велись ранее, программист сможет увидеть, что и как раньше выполнялось), а делать это все он будет на modxcloud. Как бы все единое и в рамках одного бизнеспроцесса, на на трех системах. И вот я как раз хочу это доработать. На битбакете вроде есть API. Если мы настроим отсюда, то не придется переходить на битбакет, все взаимодействия клиента со специалистами будут проходить здесь.
Между заказчиком и разработчиком очень часто нехватает так сказать «руководителя проекта сайта» — это необхимый элемент для того, чтобы можно было гарантировать 100% качество исполнения проекта и возможность поддержки проекта в любое время и на любом этапе дальнейшего развития.
Здесь дело не только в непонимании. MODX — очень мощная система, но она не накладывает никаких стандартов. Сколько программистов, столько методов разработки. Каждый проект на MODX — отдельная уникальная система. Здесь мы будем вырабатывать единые стандарты разработки. Сайты не будут сразу выполняться на чистом MODX-е. Сначала разрабатывается сборка-база для разработки типовых решений, и только потом на ней выполняется конкретный сайт. То есть если это сайт-визитка, то большинство таких сайтов отличаются только дизайном и структурой документов (которые создаются через дерево документов в админке). То есть правильный сайт-визитка вообще не должен разрабатываться. Берется движок, в шаблонизации создается новый шаблон, натягивается новый дизайн и наполняется сайт. Все. 100 сайтов-визиток, а движок один. Посмотрел как в нем что сделано, знаешь как сделаны все эти 100 сайтов. Если это магазин — то создается движок магазина. Понятно, что на индивидуальных проектах могут быть доработки, но и доработки в пакеты можно оформлять. Здесь у нас будет репозиторий пакетов, все будет храниться в одном месте. Все будет документироваться. Использование единых стандартов и методик исключит большинство типовых проблем.
Другой вариант — это сделать клуб только для внутреннего использования разработчиками.
Нет, не стоит. Мы может тематически разграничить области сайта, так, чтобы клиенты видели больше информации для клиентов, а программисты для программистов. Но все должны быть в одной информационной системе, так как и у клиентов есть необходимость обмениваться опытом и учиться. Ведь для кого-то порой просто вставить картинку может оказаться проблема. А так уже один клиент что-то спросил, ему ответили, и другие клиенты для себя могут что-то новое узнать. Я последнее время часто на вопросы клиентов видеоролики снимаю что и как делается, буду здесь выкладывать.
Именно для этого клуб и создается, чтобы решать эти резонные проблемы. У меня много очень много опыта и в разработках, и проджект-менеджменте, и пока во главе всего буду я. Но я очень надеюсь, что совсем скоро появятся и другие тимлиды, и проект-менеджеры, и четко определенные узкопрофильные специалисты — эксперты в своей области. Задач много, и все их решать надо будет командно. Я создаю сейчас первичные инструменты, дальше уже совместно развиваться будем. Вот к примеру этот сайт: на нем уже заведены различные группы пользователей, и постепенно будет наполнено много четко определенных групп, чтобы легко можно было посмотреть сколько у нас программистов, сколько верстальщиков, сколько дизайнеров, копирайтеров и т.д. Далее modxcloud.com: вот у меня есть сайты клиента, придет новый разработчик, которые готов будет взяться за доработки. Мне не придется пускать его на боевой сайт, и потом смотреть что он натворит. Я просто отправлю ему клон облака в 3 клика, и он будет делать на копии сайта. То есть если все хорошо, то наработка полностью совместима с оригинальным сайтом, и ее легко будет накатить на боевой, или просто переключиться на новую версию сайта. На битбакете (будет нашим основным гит-сервером) так же все рулится с распределением по группам пользователей. Там же трекер. Будем на вооружение и новые полезные инструменты брать.
Полностью поддерживаю цели клуба. Но для практической реализации нужно более четко разобраться в механике задачи :)
Между заказчиком и разработчиком очень часто нехватает так сказать «руководителя проекта сайта» — это необхимый элемент для того, чтобы можно было гарантировать 100% качество исполнения проекта и возможность поддержки проекта в любое время и на любом этапе дальнейшего развития. Заказчик часто не понимает технических ньюансов, влияющих на весь проект в целом (и его дальнейшую судьбу), которые нужно продумывать изначально. Разработчика обычно это не заботит, сделал что сказали (зачастую на скорую руку и через одно место) — получил деньги, и забыл. Ни о какой грамотной реализации и дальнейшей поддержке никто не задумывается. По-хорошему надо чтобы все заказчики были проинформированы об этой ситуации, чтобы было сформировано новое общественное мнение о том, как надо делать сайты и что для этого нужно.
Конечно, заказчикам бывают нужны также и дизайнеры, и SEO-специалисты — и их работа по-хорошему тоже должна быть согласована с техническими ньансами проекта. И если мы хотим сформировать грамотное создание и 24/7 поддержку любых проектов в рамках клуба — то необходима координация и трэкинг всех, кто задействован в проекте. Связки «заказчик-программист» — недостаточно.
Было бы супер сделать этот клуб как полноценную систему ведения проектов, с тесной интеграцией с MODx Cloud. Необходимы «роли» и «политики доступа».
Заказчик создает проект — объявляется конкурс на роль «руководитель проекта». Как только он определяется — уже руководитель проекта формирует тикеты на другие задачи, к которым выбираются другие исполнители (программист, дизайнер, seo-оптимизатор — при этом дизайнерам и seo не обязательно быть в клубе, их можно будет добавлять как «внешнего исполнителя», с указанием контактов). В дальнейшем любого исполнителя (в т.ч. и руководителя проекта) можно будет изменить, но в системе будет вся история этих изменений — таким образом, новый исполнитель всегда сможет контактировать с предыдущим для решения некоторых вопросов. Недобросовестные исполнители будут забанены, а т.к. клуб закрытый — то таких будут единицы, если вообще будут. Соответственно система будет гарантировать заказчику качество и эффективность работ любого вида по его проекту.
Другой вариант — это сделать клуб только для внутреннего использования разработчиками. Тогда вместо самих заказчиков здесь проекты создавать будут «руководители проекта». Сами же заказчики в этом случае непосредственно в клубе участвовать не должны.
Немного непонятны организационные вопросы, как будет происходить распределение обязанностей на сложных проектах. Скажем если это будешь ты 1 это несерьезно, 1-2 проекта можно курировать, а если больше? Или ты например уедешь, сломается интернет, прилетит метеорит (нужное подчеркнуть). Не все клиенты могут ставить конкретные задачи. Идеальное общество по Марксу не получится)
Можно сказать и так. Только как бы каждый сохраняет свою независимость. Здесь самая ценность клуба — это централизованность. Минимум лишних движений, максимум эффекта.
Я правильно понял, что наша команда будет являться распределенной организацией по разработке и дальнейшей поддержке сайтов на MODX?
Я пока пойду отдохну немного. Буду через несколько часов, отвечу на все комменты.