Dvelum или как я искал серебряную пулю

в 13:43, , рубрики: dvelum, extjs, javascript, Библиотека ExtJS/Sencha, Веб-разработка, метки: , ,

Все привет.

Была у меня недавно такая задачка. Мне надо было сделать небольшое веб-приложение, которое должно было помочь работе врача. Use-Casе‘ов там не много, посмотреть кто сегодня записан на прием, возможность посмотреть историю болезни, занести новые данные и создать нового пациента. Делов то…

Времени у меня было много, спешить некуда. Сначала подумал спрограмить по быстрому на GWT + SmartGWT, но подумалось мне, что пора бы что нибудь новое посмотреть. К тому же были явные намеки, что появятся мелкие заказы подобного рода, для библиотек там всяких и мелких фирмочек. Хотелось нечто простое с одной стороны, но в тоже время достаточно мощное.

Недолгое гугление дало понять, что особо выбора то и нет, поэтому устремил я свой взор на ExtJS. Я и раньше уже видел эту штуку, а теперь и сам бог велел познакомится по ближе с этим чудом программерской мысли.

Что делается в таких случаях? Правильно, посмотрели примеры, скачали, начали ковырять. Там изменишь, тут добавишь, радости моей не было предела. Правда ровно до того момента, когда я начал делать именно то, что мне нужно. Я быстро понял, что придется курить мануалы. А так как я ленив, то полез я искать в интернетах всякие туториалы, в том числе и тут, на хабре. Чем больше я читал, тем лучше я понимал, что ExtJS, просто так с наскока не возьмешь, тут нужен серьезный подход к делу. Через несколько часов в голове образовалась каша из ExtJS и его всяческих компонентов.

У меня зародилась интересная мысль, а не ошибся ли я случаем выбором, может туповат я трохи для такой серьезной штуки? Полез опять искать отзывы. И нашел… Не один я такой умный, есть у меня братья по недоразуму. Все писали, что порог вхождения как минимум высок, а большинство утверждало, что он просто ужасен.

Но не бросать же дело на полпути! На этот раз я искал нечто, что дружит с ExtJS и одновременно упростит мне работу. Нашел Ext4Yii. Посмотрел я это чудо и понял, что променяю шило на мыло. В этот момент я было уж совсем приуныл, но тут попалась мне на глаза статья, где обещались чудеса юзабилити и повышение моей производительности в великое множество раз. Грех было не посмотреть. А начал я с этого видео(качество кстати не фонтан, но что там делается понять таки можно):

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

И знаете что? Видео конечно не совсем соответствует действительности, не все так безоблачно, но в общем и целом все так и есть. Я наваял свое первое простое тестовое приложение меньше чем за час, все работало. Прожка не делала ничего сверхъестественного, но я понял, что смогу делать прототипы и показывать их клиентам буквально за пару часов. Да-да, без шуток. Сварганить пару окошек и небольшие связи между ними, это делов минут так на двадцать. Вся серверная сторона генерится сама, JavaScript конечно нужен, но на весь примитивном уровне. И вообще весь подход мне напомнил старый добрый Borland Delphi 7.0(с более поздними версиями не работал, но семерка меня тогда весьма порадовала). Позже я потратил еще пару дней, что бы поближе познакомится с сим продуктом. Самое клевое в этом то, что я по ходу ознакомления еще и с ExtJS немного разобрался, Dvelum мне в этом весьма помог, уменьшив порог вхождения. В общем и целом я весьма доволен. Рекомендую вам в случае нечего не деланья и желания упростить собственную жизнь немного поковырять этот проект. С весьма большой долей вероятности вам понравится и вы проведете за этим процессом все выходные.

Немного о структуре проекта. Весь GUI написан на самом ExtJS, так что сам Dvelum вы можете рассматривать как Showcase. Интерфейс вы создаете через Drug and Drop, все по взрослому. И даже если вам надо изменить размеры окошка, то вы не лезите в код и не ищите в его свойствах width и height, а просто тяните за границы окна, Dvelum сам поймет, что вы делаете. Это действительно классно.
Вся серверная сторона сделана на PHP. Если вам не надо ничего специального, то вам не придется туда вообще лезть, весь код генерится сам. В качестве базы данных используется MySQL. И да, вам там делать тоже нечего, все таблицы, индексы и прочее сделает для вас Dvelum.
Проект разбит на две части: Frontend и Backend. И то что, вы сейчас подумали абсолютно не верно. Backend это не то, что на сервере крутится, это админка, где собственно все Вебморды и делаются. Там же можно создать юзеров и назначить им права, кто какую таблицу может видеть и что он с ней может делать(изменять, удалять). Там же можно создать страницы для Frontendа. Frontend это та часть, которую увидит обычный посетитель. На базе Dveluma можно быстренько сварганить сайт, это также что то вроде CMS.

Естественно есть и минусы, я бы назвал следующие негативные моменты:

  • Апачу надо сказать, что DocumentRoot показывает на www, а не на верхнюю папку проекта. Мелочь, но не приятно, в конце концов это лишнее телодвижение.
  • Надо таки иметь хоть малейшее представление о ExtJS. Простейшее приложение можно и так сделать, но если вы хотите что нибудь посерьезнее, то придется мануалы покурить, хоть и не придется так глубоко затягиваться.
  • Сначала надо потратить время на ознакомление с интерфейсом и вообще со схемой и логикой проекта. В самом начале я несколько терялся, правда как только я понял идею, как все устроено, дело пошло быстро и шустро.
  • Надо не забывать сохранять проект вашего интерфейса, для этого есть специальная кнопочка. Когда вы изменяете какой либо параметр, например высоту окна, то появляется окошко с сообщением, что свойство объекта было сохранено. Но это не означает, что весь проект сохранился. Если вы выйдите из Dveluma не сохранившись, то извиняйте, ваши труды пойдут прахом, что со мной разок и произошло.
  • Документации мало и она «суховата».

Плюсы для меня намного важнее:

  • Можно быстро, я имею в виду действительно быстро, в течении пары часов сделать прототип. И он будет работать и даже весьма неплохо выглядеть. Этот прототип сможет сделать даже школьник, который работает у вас за печеньки.
  • Если вам надо что нибудь посерьезней, то это тоже возможно, но придется познакомится с ExtJS.
  • Как побочный эффект предыдущего пункта, вы будете знать как работает ExtJS, порог вхождения снижается.
  • Если вы забыли какое то поле в таблице или форме, то вам не надо судурожно искать это место в целой простыне декларанивного кода, вставлять туда еще пару строк и малиться, что вы не пропустили какую нибудь скобку, которая вам все сломает. Нет, все гораздо проще, вы открываете табличку, кликаете кнопку и в появившемся окошке создаете еще одно поле, даете ему имя, формат и т.д. Все просто, понятно и интуитивно. Именно так, как и должно быть в 2013 году от Рождества Христова.
  • Продукт сделали в России, так что можете смело писать на форуме по русски.
  • На вопросы разработчики отвечают весьма быстро, что не может не радовать.
  • Мопед бесплатный

P.S. Мопед не мой, я на нем только катаюсь.

P.S.S. Наверное написанное мной выглядит как описание некоего продукта для быстрого написания прототипов. Это верно. И не верно… Прямо сейчас я делаю на Dvelume довольно серьезное приложение с десятками окошек и извращенной логикой на сервере и фронтэнде. Пока полет нормальный.

Автор: schroeder

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js