CmsPlugin.ru
Обзоры популярных CMS и плагинов. Рекомендации по созданию и продвижению сайтов

Интервью с Александром Sunvas, разработчиком Eleanor CMS

/ Автор: / Просмотров: 1036
Александр Sunvas

Александр Sunvas

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

После публикации обзора об Eleanor CMS, я связаться с Александром Sunvas, разработчиком данной CMS, с предложением ответить на несколько вопросов для заполнения пробелов в обзоре и выступить в качестве эксперта в области веб-разработки. Признателен Александру, что он согласился. Итак, предлагаю вашему вниманию небольшое интервью smile

- Здравствуйте, Александр. Eleanor CMS сегодня - достаточно солидный проект. Интересно, в связи с чем возникла идея разработки своего движка?

- Привет. Ну, сегодня, наверно, это уже просто проект, который я не бросаю и вряд ли брошу, но его интенсивность разработки, конечно, серьёзно упала. Связано это с тем, что я уже закончил своё обучение в вузе и начал работать над более серьёзными и прибыльными коммерческими проектами, а Eleanor CMS - это проект для души, поэтому он, как и все некоммерческие проекты, отошёл на задний план, хотя потихонечку пишу.

Идея разработки возникла в связи с тем, что существующие на тот момент движки меня не устраивали. У меня были свои взгляды на то, по какому принципу должен строиться и как работать движок, что в нём должно быть. Поэтому и появилась Eleanor CMS. Что стало последней каплей в чаше терпения при поиске подходящего мне движка и что именно сподвигло меня на написание своей системы - сегодня уже не вспомню, да и вряд ли это теперь неактуально. Кстати, сейчас тоже использую Eleanor CMS для своих коммерческих проектов.

- Сколько человек сейчас работает над проектом?

- Двое, я и дизайнер centroarts.com.

- Многие вебмастера в ожидании заветного релиза v1.0. Если не секрет, над каким функционалом сейчас работаете и когда примерно планируется релиз? smile

- Функционал будет современный. Всё, что сейчас находится в мейнстриме, туда попадёт: адаптация кода под стандарты PHP 7, максимальное использование нововведений в PHP, JavaScript и MySQL. Для пользователя это отразится, например, в усилении хранения паролей, более быстрой и качественном работы с графикой. Очень хочется также добавить в систему поддержку непрерывных соединений типа WebSocket'ов для мгновенного уведомления пользователей. Также на повестке дня стоит создание вменяемого установщика модулей, чтобы свои разработки, которых у меня уже накопилось, я смог (про)давать пользователям в виде удобных zip-архивов. Достаточно будет загрузить этот архив на сайт, запустить мастер установки и на этом установка модуля должна закончиться.

При разработке системы основной упор делается больше на современные веяния веба и оптимизации старого кода. Когда мир увидит новую версию? Наверно, нескоро - следите за Git'ом, там потихоньку всё выкладывается. Последний коммит был полгода назад, сейчас уже почти до второго коммита дошёл.

- Читал, что существует клуб "Eleanor User", позволяющий участникам скачивать эксклюзивные дополнения. Клуб функционирует до сих пор?

- Сейчас это уже не более чем просто группа на форуме. Никто особо туда не вступает, потому что сайтов на этой системе сейчас мало. Эксклюзивные привилегии или возможности не получают, потому что в общем-то нечего. Раньше была идея на форуме сделать VIP-репозиторий, где хранить какие-то эксклюзивные темы оформления, модули, блоки и всё такое. Но сейчас из разработчиков только я остался, остальные ушли в "вольное плавание". И таковых дополнений нет, но возможно будут, не знаю доживём - не доживём.

- Увеличение количества компонентов в системе обычно приводит к усложнению разработки и поддержки в целом. Какой подход используете для решения этой проблемы?

- Минимализм, я думаю. В стандартном пакете системы будут фактически только модули "Новости", "Личный кабинет", страницы ошибок и статические страницы. Этого более чем достаточно, чтобы сделать сайт-визитку или хороший каркас для сайта на несколько уровней выше. Базовые возможности, такие как комментарии, рекламные места и т.п. - всё это, разумеется, будет в системе.

- Защищенность системы - один из наиболее важных параметров при выборе CMS. На сколько Eleanor v0.9 отвечает современным требованиям обеспечения защиты от взлома?

- На таком достаточно хорошем уровне самозащиты. По умолчанию в систему встроена защита от подбора паролей и защита от спама в виде капчи. Хотя сегодня самая "крутая" капча - это reCAPTCHA от Google, тем не менее, Eleanor CMS использует некоторую модификацию от KCAPTCHA. Её проще понять человеку и она автономна. В вопросах автоматического распознавания, она весьма сложна (даже у ребят из captcha-lab.org, на сколько я знаю, ещё нет бота для автоматического её разгадывания). Конечно же, все капчи очень удобно разгадываются через antigate.com, но это стоит денег. Касаемо системы хранения паролей, то она тоже в меру изощрена, расшифровка паролей может оказаться весьма сложной задачей (для сложных паролей).

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

- Код можно посмотреть на GitHub'е. А наиболее интересные решения все сводятся фактически к быстроте работы базы данных, то есть оптимизации запросов. Мне кажется, это наиболее нетривиальные решения, особенно при нагруженных проектах.

Одним из фактов оптимизации, стало удаление из UPDATE & DELETE запросов конструкции LIMIT 1. Она приводила к тому, что при включении репликации баз данных, в syslog постоянно писались ошибки типа Unsafe statement written to the binary log...

Вторая важная оптимизация заключается в формате хранения IP-адресов. С постепенным переходом мира на IPv6, все IP-адреса системы в базе теперь хранятся в 16-ти байтном бинарном виде. Это также достаточно экономит память. Для конвертации из/в бинарный режим используются функции inet_pton и inet_ntop соответственно.

Третья важная оптимизация заключается в том, что раньше все массивы хранились в базе в сериализированном (serialized) формате. В новой версии на замену пришёл JSON. Важные элементы которой появились только в PHP 5.4 (я о константах JSON_UNESCAPED_UNICODE и JSON_PRETTY_PRINT). И теперь правка таких массивов в БД вручную будет намного нагляднее и легче.

Кроме того, для оптимизации системы - вывод всех ключевых используемых в системе сторонних библиотек на CDN от www.jsdelivr.com.

- Какую литературу можете порекомендовать по технологии разработки и программированию как must have?

- Сегодня, на мой взгляд, образовательная литература очень быстро теряет в актуальности. Наверное, это происходит потому что, между написанием книги и её появлением на полках магазинов проходит достаточный промежуток времени чтобы вышла новая версия программы, появился новый стандарт или подход. Я рекомендую всё-таки онлайн-учебники и первоисточники с обязательным чтением комментариев. Например, php.net является первоисточником для мира PHP; learn.javascript.ru - отличным учебником JavaScript, а на stackoverflow.com стоит заглянуть если появляются вопросы или непонимания. Там собрана внушительная коллекция уже разжеванных со всех сторон вопросов. И конечно же, учите английский язык!

Если есть проблема, умейте грамотно её сформулировать, первым делом после этого вбивайте поисковый запрос в Google в большинстве случаев вы найдете решение. Я же литературу по программированию как таковую не читаю, вместо этого стараюсь не пропускать попадающие мне в руки статьи, обзоры, инструкции, справочники.

- Какие советы/напутствие вы могли бы дать разработчикам, чтобы уберечь их от совершения грубых типовых ошибок в собственных проектах?

- Избегайте суперпрофессионализма. Мне приходилось не так давно "ковырять" пару серьёзных проектов, которые страдали огромной степенью абстракции. Это когда ради какого-то совершенно ничтожного действия создаются несколько десятков классов, подклассов, интерфейсов и прочей мишуры. Выглядит жутко, правится сложно, понимается плохо... А в результате, хотя оно и работает, но неочевидно, запутанно и ни фига негибко. А чтобы внедрить во всё "это" крошечную правку, приходится тратить очень много времени. Идеально суперпрофессионализм иллюстрирует старенькая, но актуальная статья habrahabr.ru/post/172119/

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

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

Александр, благодарю вас за то, что нашли время ответить на вопросы. Успехов вам в ваших проектах, будем ждать новых релизов Eleanor CMS wink

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Ваш комментарий будет опубликован после проверки

Вы можете войти под своим логином или зарегистрироваться на сайте.

(обязательно)