9 minutes reading time (1879 words)

Джумляне: Денис Двали

Джумляне: Денис Двали

В этом выпуске журнал "Joomla Community Magazine" беседует с Денисом Двали, русским разработчиком из Архангельска, основателем Joomduck.com и создателем расширений системы Joomla! "JomSocial Profile Pro", "Community Builder Profile Pro" и "Magic Window". Читайте в нашем интервью о том, как Денис, столкнувшись с недостатком одного из расширений Joomla! и обучаясь самостоятельно, стал разработчиком, его рекомендации тем, кто бы хотел встать на этот же путь, его мысли о преимуществах и недостатках системы Joomla! и о его любимых блюде, книге и домашнем животном.

Пожалуйста, представьте себя вкратце читателям JCM.

Я PHP и frontend разработчик, основатель Joomduck Extensions, а также сервиса Campaigned. Мне 28 лет, живу и работаю в городе Архангельске, Россия. Не имею специального образования в сфере IT, самоучка.

Мое знакомство с Joomla! началось в 2007 году с создания сайтов на данной платформе. С 2009 года начал разрабатывать собственные расширения для Joomla! под брендом Joomduck. Полученные в среде Joomla! знания и навыки стали отправной точкой для развития также и в других сферах, с успехом применяю их в самых разных областях IT.

Интересно встретить человека, который обучаясь самостоятельно прошел путь от изучающего систему Joomla! новичка до разработчика ее расширений.

Я понимаю что 2007 год - это сравнительно далекое прошлое, но, если можно, не могли бы Вы вспомнить что или кто подтолкнул Вас к решению стать разработчиком расширений Joomla?

При разработке сайта на Joomla! с использованием компонента Community Builder, я столкнулся с проблемой, что в этом расширении не было простого способа видоизменить страницу профиля пользователя (без редактирования CSS и HTML кода в файлах), при том что по умолчанию страница профиля пользователя CB выглядела крайне уныло.

Тогда у меня возникла идея самому создать плагин, который позволил бы легко и быстро создать свою собственную страницу профиля пользователя компонента СВ, не требуя навыков в CSS и HTML. Я приступил к разработке, при этом практически не имея опыта в PHP программировании и тем более в программировании в среде Joomla.

На создание плагина, готового к установке через стандартный установщик системы Joomla, ушло около месяца. Почти сразу же я добавил его в каталог JED под именем Community Builder Profile Pro, и он мгновенно стал популярным. Это был неожиданный успех, который вдохновил меня заняться разработкой и поддержкой расширений Joomla! в дальнейшем.

Что бы Вы посоветовали тому, кто бы хотел пойти по Вашему пути: кто также не будучи выпускником компьютерного факультета какого-либо университета хотел бы научиться создавать расширения для системы Joomla?

Изучение системы Joomla!, ее архитектуры и подходов к решению тех или иных задач, может стать хорошим началом для тех, кто хочет научиться разрабатывать программное обеспечение для веб. Я бы посоветовал, помимо прохождения обучающих программ и чтения документации, начать с подробного исследования небольшого уже существующего компонента. Попробовать его модифицировать, попытаться добавить новый функционал или доработать какую-то его часть.

Говоря о тех, кто, познакомившись с Joomla! CMS с точки зрения конечного пользователя и не имея абсолютно никаких знаний и навыков в кодировании, дерзко желает стать веб-разработчиком для Joomla, как Вы, было бы по-Вашему справедливым дать им примерно такую стратегическую "дорожную карту": изучить XHTML, затем - РНР, затем - SQL, затем - ООР (Object Oriented Programming), затем - API системы Joomla. Или Вы бы порекомендовали обойти одну из этих составных?

Честно говоря, затрудняюсь ответить точно на этот вопрос. Ведь в различных случаях может пригодится разное: если человек хочет сделать шаблон, упор следует сделать на HTML и CSS, если плагин - можно обойтись PHP и Joomla! API, без SQL и HTML. Думаю, основное для новичка все же будет кодирование в PHP и знакомство с Joomla! API, затем - знание SQL и HTML, и уже потом - знакомстов с принципами OOP.

Давайте условно разделим расширения Joomla! на две группы: в одной - шаблоны, поскольку они главным образом заботятся об эстетике лицевых страниц веб сайтов, разработанных на этой системе, а в другой - плагины, модули и компоненты, то есть то, что главным образом расширяет арсенал осуществляемого системой Joomla! функционала.

Что по-Вашему должно стать конечной целью нашего новичка-разработчика: сфокусироваться и стать ведущим специалистом в одной из этих двух групп или все же стремиться к достижению такого уровня, где он может быть успешен как профессионал в обеих?

Думаю, что именно новичку не стоит пытаться преуспеть в обеих группах, следует выбрать одну и сфокусироваться на ней. Надо понять для себя, что ближе: дизайн или программирование, и выбрать соответственно либо шаблоны, либо компоненты, модули и плагины. Возможно, стоит сначала попробовать создать и то, и другое, и посмотреть, что получается лучше и что более увлекает, и в дальнейшем развиваться именно в этом направлении.

В конечном итоге, успех наиболее вероятен тогда, когда будет получаться делать что-то, пусть одно, но хорошо, качественно. В этой связи, для получения первоначального результата, логично сконцентрироваться в чем-то одном.

Назовите, пожалуйста, десять расширений Joomla!, которые Вы считаете наиболее полезными для начинающего администратора веб сайта, работающего на этой системе. Вкратце, чем именно каждое из них заслужило Ваше признание?

  • “Akeeba Backup” - подходящее и надежное решение для бэкапа базы данных в случае, если нет желания настраивать cron job на сервере, или если используется shared хостинг.
  • “Admin Tools” - добавляет много небольших, но полезных функций по администрированию Joomla!
  • “Magic Window” - предлагает максимально удобный способ вставлять фрагменты кода (HTML,CSS,JSS,PHP) практически везде, и далее управлять ими (редактировать, удалять) из одного места.
  • “eXtplorer” - файловый менеджер как компонент Joomla! Хотя это расширение и не является лучшим методом для доступа к файлам, но для новичка может быть подходящим простым решением.
  • “Komento” - готовое решение для комментариев, с широким функционалом и приятным внешним оформлением.
  • “JCH Optimize” - очень нужное дополнение, позволяющее улучшить скорость загрузки сайта путем объединения и сжатия javascript и css файлов. Особенно полезно при использовании значительного количества плагинов и модулей во фронтенде.
  • “Email as Username” - в наши дни стало более привычно входить на сайт с помощью адреса электронной почты, а не с именем пользователя. Данный плагин позволяет это сделать на Joomla!
  • “Easy Frontend SEO” - компонент, позволяющий улучшить сайт в плане поисковой оптимизации. В отличие от многих конкурентов, удобен и прост в использовании.
  • “JFBConnect” - наиболее полное решение для многофункциональной интеграции с социальными сетями.
  • “Asynchronous Google Analytics” - быстрый способ добавить код отслеживания Google Analytics.

Давайте представим на секунду, что Вы - руководитель команды по разработке системы Joomla. Над чем бы Вы предложили своим разработчикам поработать? Над каким функционалом? Что нового Вы бы решили добавить в систему и от чего бы Вы предложили в ней отказаться? Что из уже существующего на сегодня функционала системы Вы бы предложили улучшить?

Мне нравится, какой стала платформа Joomla! с учетом дополнений и улучшений в последних версиях. В целом, мне кажется, Joomla! движется в правильном направлении, однако нельзя не признавать тот факт, что сегодня она проигрывает Wordpress в популярности.

Также в последнее время появляется все больше различного рода облачных CMS, которые тоже отнимают долю рынка у Joomla! Причиной этому я вижу их доступность и простоту, в то время как существует определенный порог для освоения Joomla!

Поэтому, в первую очередь, я бы предложил упростить и сделать ее как можно более доступной для новых пользователей. В частности, на мой взгляд, стоит отказаться от некоторых встроенных компонентов (Newsfeeds, Messages, Contacts, Banners) и вынести их в отдельные расширения, которые можно установить независимо, также, как это было сделано с компонентом Weblinks.

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

В частности, есть куда более быстрые и удобные способы связаться с другим администратором, чем написать ему сообщение в административной панели сайта в том виде, который доступен сегодня с компонентом Messages. Соответственно, стоит либо усовершенствовать данный компонент до такого уровня, чтобы он стал реальной альтернативой другим способам связи, либо полностью убрать его.

Также, на мой взгляд, необходимо сделать возможность аутентификации по адресу электронной почты. В современном вебе все чаще отказываются от username, и [команде разработчиков] Joomla! стоит предоставить вебмастерам возможность решать самим, использовать username или адрес электронной почты [в качестве логина] на их сайте. Для конечного пользователя запоминать, помимо пароля, еще и username для очередного сайта - дополнительная сложность, и в определенных случаях совсем неоправданная.

Еще один момент, о котором я хотел бы упомянуть, это менеджмент пользователей. Функционал заметок слишком запутанный и сложный для понимания новичкам. При этом, на данный момент нет возможности создавать дополнительные пользовательские поля в административной панели, что огорчает многих при первом знакомстве с Joomla!. Думаю стоит подумать над возможностью добавления данного функционала, который в том числе смог включить в себя и заметки.

И напоследок, я хотел бы упомянуть процесс поиска и установки расширений, что является важнейшей частью любой платформы, через раздел Install from Web. Просчеты в реализации данного функционала, я думаю, являются одним из основных моментов, вызывающих недоумение у новых пользователей.

Главная проблема: нет возможности быстро найти и установить нужное расширение. Попробуйте ввести virtuemart в поиске - данного компонента просто не будет в списке. Будут показаны различные расширения, в названии и описании которых присутствует слово virtuemart, но не сам компонент. Причем есть возможность сортировки по алфавиту, рейтингу, количеству отзывов, но нет по релевантности запроса. Следует обязательно добавить сортировку по релевантности и установить ее по умолчанию.

Вы упомянули что Joomla! в популярности уступает некоторым другим системам и что ввиду ее относительной сложности для новичков, им необходима помощь более опытных с первыми шагами в ее освоении. В этом отношении, Вы не задумывались над созданием группы пользователей Joomla! в Архангельске?

Честно говоря, ни разу не приходила в голову эта мысль. Город у нас небольшой, а компаний, занимающихся разработкой сайтов, можно по пальцам пересчитать. Думаю, такую группу было бы проблематично набрать ввиду малочисленности сообщества разработчиков.

Да, это, пожалуй, картина, типичная для небольших городов. Следующий вопрос: какие инструменты Вы используете для разработки Joomla?

Для запуска на локальной машине использую Docker и контейнеры на основе официальных образов Joomla! и MySQL. В качестве системы контроля версий выбрана git, редактор кода - Sublime Text 3, управление базой данных - Sequel Pro. Это основной набор, который необходим мне при разработке Joomla!

Помимо эффективности и удобства, перечисленные инструменты доступны и просты в установке. Используя их, можно быстро развернуть привычное рабочее пространство на практически любом компьютере.

Какие качества системы управления контентом Joomla Вы считаете ее главными преимуществами?

На мой взгляд, это универсальность и расширяемость. С помощью Joomla! можно создать практически любой сайт, от простого блога или интернет-магазина до сложного портала, сочетающего в себе совершенно разные разделы: объявления, социальную сеть, форум и так далее. И все это будет работать под управлением одной системы. Также важно, что для реализации любого функционала на Joomla! существует [широкий] выбор, причем как среди платных, так и бесплатных решений.

Помимо самой платформы и ее функционала, что еще Вам нравится в Joomla?

Мне нравится вовлеченность в работу над системой Joomla! ее сообщества. Оно обширное, приветливое, и говорит на разных языках. Существует множество сайтов, посвященных Joomla, в том числе образовательных ресурсов и форумов взаимопомощи. Огромное количество обучающих материалов, видео уроков, книг, как для начинающих, так и для продвинутых пользователей и разработчиков. Все это создано сообществом, что говорит о большом интересе к Joomla! со стороны пользователей и сторонних разработчиков.

Ваша любимое блюдо?

Борщ.

Ваш любимый фильм?

В бой идут одни старики.

Ваша любимая книга?

Преступление и наказание.

Ваша любимая шутка-однострочка?

Бесплатный сыр достаётся только второй мышке.

Ваше любимое домашнее животное?

Собака.

Благодарю, Денис Двали. Было приятно побеседовать с Вами. Желаю Вам успехов в Ваших проектах.

Взаимно, Александр. Спасибо за приглашение на страницы журнала Joomla! Community Magazine. Успехов журналу и всему сообществу Joomla.

================================================

 Задайте свои вопросы Денису Двали в комментариях.

0
JoomlaDay Florida 2017 Recap
JUG Round Up March 2017
 

Comments

Already Registered? Login Here
No comments made yet. Be the first to submit a comment

By accepting you will be accessing a service provided by a third-party external to https://magazine.joomla.org/