На чём писать админку?

Привет, коллеги!

Попросили помочь с сайтом, написанным на Phalcon — это такой PHP фреймфорк, написанный на C. Работает очень быстро, но требует установки специальных модулей для PHP.

Так вот, по Phalcon вопросов нет, но админка на сайте конкретно кривая, смесь HTML и jQuery. Некоторые формы отправляются через ajax, некоторые просто так, а некоторые и вовсе не работают.

Очевидно, надо переписывать. Использовать для этого старый ExtJS не хочется, учить новый — тем более. Кто что может посоветовать для нормального интерфейса админки на фронтенде самописного сайта?

Почитал сейчас про AngularJS, ReactJS, jQuery Templates и аналоги — каждый хвалит своё, голова идёт кругом.
Пока склоняюсь к Angular, а вы что скажете?
Василий Наумкин
23 ноября 2015, 18:48
modx.pro
2
5 427
+1

Комментарии: 20

Василий Наумкин
23 ноября 2015, 20:29
0
Кстати, может кто-то слышал что-то о замене ExtJS в будущих MODX?

Раз там будет Slim и Composer, могут быть и разные версии админок. Может, что-то уже говорили?
    Воеводский Михаил
    23 ноября 2015, 21:43
    0
    Роман Ганин недавно говорил, что после ознакомления с Angular полностью отказался от идеи его дальше изучать. В моем случае (чем-то похоже) он рекомендовал использовать React.
      Василий Наумкин
      23 ноября 2015, 21:52
      0
      В чатике MODX советуют RactiveJS + Restful.js.

      На самом деле, столько этих фреймворков и утилит развелось, очуметь! Уже хочется просто учить ExtJS 5 и не париться. Ну, красота же!
        Воеводский Михаил
        23 ноября 2015, 22:00
        0
        С бардаком из-за чрезмерного количества новых фреймов для фронта соглашусь, уже совершенно непонятно, в какую сторону лучше смотреть для изучения.
        Хотя, лично мне, JS вообще не особо нравится. Но и обойтись без него уже совсем никак.
          Василий Наумкин
          23 ноября 2015, 22:06
          0
          Ну, мне ExtJS вполне себе нравится, особенно для административных интерфейсов.
          В общем, посмотрю, кто что еще скажет.

          P.S. Оказывается, ExtJS уже 6я версия вышла!
            Воеводский Михаил
            23 ноября 2015, 22:08
            0
            Почти любой инструмент, когда хорошо с ним разберешься, начинает нравиться :)
              Іван Клімчук
              24 ноября 2015, 12:56
              +1
              С новым ExtJS есть проблема лицензирования. По этой же причине отказались переходить за 4 версию в свое время. Но в целом все идет к тому, чтобы ядро сделать максимально независимым и полностю на rest (считай развитие процессоров в полноценные rest-сервисы), и в таком случае будет возможность писать админку на чем угодно. Учитывая, что максимально будут стараться сохранить обратную совместимость, то возможно extjs и останется. Ну или будут развиваться новые альтернативные интерфейсы. Если будут разработчики такого уровня, конечно. Они есть, но их мало.
            Сергей Шлоков
            24 ноября 2015, 10:47
            +1
            Эта красота кусается ценником.
              Василий Наумкин
              24 ноября 2015, 10:53
              0
              Да вроде бесплатно дают GPLv3 версию, вчера уже скачал про запас.

              Вот и на Хабре обзор лицензий.
                Сергей Шлоков
                24 ноября 2015, 11:06
                0
                Тоже скачал. Пусть будет.
                Т.е. по GPL ты должен выложить в открытый доступ свою админку?
                  Воеводский Михаил
                  24 ноября 2015, 11:13
                  0
                  GPL требует предоставления исходников любому, кто использует ПО. если ПО не находится в открытом доступе, исходники тоже не требуется выкладывать. Достаточно выслать по первому требованию тому, кто получил свою копию ПО.
                  Василий Наумкин
                  24 ноября 2015, 11:14
                  0
                  Насколько я понимаю (а я нифига не юрист), GPL не требует что-то прям выкладывать, он требует дать возможность получить исходный код.

                  Судя по комментариям на Хабре, исходники админки и так уже доступны — это же javascript, который загружается юзеру на комп для выполнения. Наверное, достаточно просто не обфусцировать этот код.
        Іван Клімчук
        24 ноября 2015, 10:41
        0
        Можно попробовать Vuejs, работает как angular (принципы почти такие же, двусвязность), но чуть попроще и легче. Активно советуют его с laravel использовать (есть ларакасты и примеры).
          Алексей Карташов
          24 ноября 2015, 20:08
          2
          +5
          Я в ближайшие несколько месяцев буду писать фронтенд для одного крупного b2b-сервиса (бекендеры его делают на yii2, не modx). С кучей динамики — crud-таблицы, модалки, вот это всё.
          Я очень много времени провёл в выборе адекватного фреймворка/библиотеки с двухсторонним дата-биндингом, отсутствием магии в исходниках, простоте в поддержке кода, и отсутствием навязывания структуры приложения.

          Много чего смотрел — vue.js, riot.js, angular, react, ractive, rivets, mithril, куча их
          plnkr.co/edit/leZaT043Yffz4LfG8Ykq

          Так вот. Нахер ангуляр. Если вам кто-то рьяно советует брать ангуляр, то это либо очень хороший спец (каких действительно мало), либо ведомый на моду новичок (который не делал ничего сложнее примеров из туториалов). Причём очень хороший спец вряд ли будет вам его советовать, потому что он прекрасно знает сколько подводных камней может собрать неопытный разработчик. Писать на нём что-то серьёзное — это постоянная борьба с самим фреймворком (при условии отсутствия должного опыта). А набивать этот опыт — смысла тупо нет ибо сами авторы от своих подходов уже отказались и пилят новую версию с нуля вообще выбросив дата-биндинг со своим dirty-checking'ом.

          Реакт можно брать и изучать только в том случае, если вас не воротит от адовой смеси html и типа-js (jsx). Меня лично воротит :-D

          Та же история с riot — он прикольный, но для действительно сложных интерфейсов может не подойти. Та же адова смесь логики и вьюхи, но до кучи — каждый компонент должен лежать в отдельном изолированном tag-файле. Расширяемые насыщенные интерфейсы делать сложновато.

          Vue — очень схожий с ангуляром в плане синтаксиса вьюх (если это вообще можно назвать вьюхами). Есть скринкаст, где парень за час написал на нём excel (прям с редактированием ячеек и формулами). Но если взглянуть на этот код через полгода, то хоть с бутылкой, хоть без неё — разобраться проблематично. В плане поддержки кода и вхождения в проект — не оч.

          Rivets/ractive — всё туда же, но со своими приколами.

          Лично для себя я выбрал (не поверите) матрёшку. Я приверженец выбранного автором матрёшки подхода — вьюхи отдельно, логика работы с вьюхами — отдельно. Из коробки двухсторонний дата-бинд без магии (на геттерах и сеттерах). Это то, чего мне так не хватало в любимом мною Backbone'е.
          Структура приложения не навязывается — хочешь писать на «классах» — пиши, хочешь писать универсальные расширяемые ui-компоненты — пиши (если умеешь)). Шаблонизатор — бери любой по вкусу (я выбрал swig). Хочешь компилировать вьюхи на этапе сборки? Всё в твоих руках (привет ангуляр, vue, ractive).
          Да, кода надо писать побольше, но зато он полностью под твоим контролем и в нём разберётся любой джуниор, миддл — тем более.

          А если нету жёстких условий по интерфейсу и дизайну — берите ExtJS, используйте его обширную библиотеку готовых компонентов и не заморачивайтесь.

          Как-то так.
            Василий Наумкин
            24 ноября 2015, 21:58
            0
            Отличный комментарий, спасибо!

            если нету жёстких условий по интерфейсу и дизайну — берите ExtJS
            Нету у меня ограничений, просто хотел посмотреть, что щас в моде. Посмотрел и офигел.

            Это как раньше было 5 сортов колбасы, но все по ГОСТу, а сегодня 50 и хрен знает, что покупать — категория Б и ниже.

            Видимо, буду осваивать новый ExtJS, а там посмотрим, что MODX 3 предложит.
              Алексей Карташов
              25 ноября 2015, 14:38
              0
              Хех, а я даже не заметил, кто автор топика)

              просто хотел посмотреть, что щас в моде
              Вообще, вся эта ситуация сложилась из-за того, что хипстота возвела ангуляр в статус культа, не особо разбираясь в вопросе, а потом, следуя веяниям этой моды, как на дрожжах начали плодиться фреймворки (rivets, ractive, vue) со схожими подходами, мол смотрите, мы такие же, как и ангуляр, только «лучше»! Ага-ага.

              Кто-то идёт своим путём (react, riot, mithril), со своими синтаксисами и идеологиями. Кто-то от этого тащится, но меня к такому жизнь не готовила :) «Смешались в кучу — кони, люди».

              Из новой гвардии есть ещё Ember. О нём могу сказать, что это хардкорная годнота с высоким порогом вхождения (мой уровень пониже, поэтому сильно в него не углублялся, времени нет).
              Из старой — есть Backbone (со своим разношёрстным набором расширений, на каждый из которых надо потратить кучу времени, чтобы разобраться) и ExtJS.
              На Backbone надо много писать руками, у ExtJS весь ui — компонентный уже из коробки, с декларативным подходом (что удобно).

              В итоге, пришло осознание, что зря я в своё время с ExtJS'ом не подружился :-D
              Грустно. И забавно одновременно)

              Тогда в голове прочно сидела мысль, что Ext — это уже что-то монструозно-устаревшее и уж в наши-то времена по-любому есть что-то более удобное. Ага, как же.

              Конечно, он тоже не без недостатков (с кучей недостатков)), но быстрота разработки (благодаря декларативному подходу), куча готовых ui-компонентов для crud-интерфейсов и по порогу входа ниже среднего — всё это перекрывает его недостатки и наповал валит всю эту новомодную разношёрстную братию. Для своих проектов и админок — идеален. Но делать на нём интерфейсы со сложной ux-логикой я бы всё-равно не стал, ибо разработка легко может перейти от декларативной к постоянной борьбе с самим фреймворком.

              посмотрим, что MODX 3 предложит
              Вот прям чувствую, что ничего нового не предложат. И надеюсь на это. Потому что ExtJS для задач modx'а подходит идеально и доказал временем свою пригодность.

              Другим достойным кандидатом может быть только Ember, но авторы Modx'а вряд ли на это пойдут, потому что порог вхождения для написания новых компонентов сильно увеличится, старые авторы отсеятся, новых не прибавится.

              И вряд ли они выберут что-то построенное на jQuery (типа KendoUI). Потому что это те же яйца, только в профиль и сильно урезанные.

              А больше выбирать-то и не из чего.

              Компоненты, не завязанные на ext, легко можно делать хоть сейчас. Кому это нужно — тот пользуется такой возможностью, а кому нет — использует ext. Баланс идеальный. Вряд ли это станут менять. Да и не хотелось бы.
              Единственное, что хотелось бы видеть — так это коннекторы чуть более restful-ориентированными и ui-kit (css-фрейворк со гайдлайнами), не завязанный на ext, описание которого вывести отдельным разделом в документации (чтобы получился свой getbootstrap.com). Вот тогда будет действительно офигенно и абсолютно универсально и каждый будет использовать то, что ему нравится и что умеет.
                Василий Наумкин
                25 ноября 2015, 14:46
                0
                Насколько я понял, новый MODX будет весь из себя RESTful, так что можно будет писать любые админки. Другой вопрос, какой будет именно стандартная админка — и я очень надеюсь, что оставят версию с ExtJS.

                Ну а мой вопрос решился просто — буду переписывать весь сайт целиком, с полной свободой действий. И с админкой на ExtJS =)
                  Алексей Карташов
                  25 ноября 2015, 14:55
                  +1


                  p.s. эх, вот бы они ещё систему прав пересмотрели, чтобы не надо было на каждый чих по группе пользователей создавать. И поддержку Postgres в xpdo добавили бы… Мечты-мечты)
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            20