Философия Symphony

Содержание

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

Преодоление трудного начинается с легкого, осуществление великого начинается с малого, ибо в мире трудное образуется из легкого, а великое — из малого.

— Лао Цзы. Дао дэ Цзин. Раздел 63.

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

Для нас каждое исправление ошибок, каждая строка кода является принятием решения. И мы верим, что каждое такое решение важно само по себе. Следование принятой философии разработки делает процесс принятия большинства решений простым, и позволяет предупредить развитие больших проблем из маленьких трудностей.

Данная философия (с маленькой буквы «ф») не является чем-то великим, а просто описывает путь решения проблем, с которыми мы сталкиваемся каждый день. Для нас она сводится к пяти простым принципам:

Дискретность

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

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

Прозрачность

Для пользователей ясность более полезна, чем магия. Существует очень тонкая грань между удобством и препятствием, и часто какая-нибудь «крутая фишка» оказывается наиболее проблемной. Пользователи должны иметь возможность видеть, понимать и контролировать работу своей системы.

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

Простота

Обычно, самое простое решение является самым правильным. Простое решение позволяет так же просто откатиться назад или поменять направление.

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

Применение стандартов

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

Разработчики Symphony должны быть страстными приверженцами открытых, повсеместно используемых, постоянно развивающихся стандартизированных технологий. Как для разработчиков, так и для пользователей системы раскрывается множество преимуществ. Например, внедрение таких стандартизированных технологий, как XML и XSLT в качестве основных языков означает, что знания пользователей, приобретаемых при использовании системы не будут бесполезны в будущем. А Symphony в свою очередь изначально совместима с огромным количеством технологий, основанных на XML, таких, как RSS, Atom, SOAP и так далее.

Эволюция

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

Например, с появлением Symphony 2 была сломана обратная совместимость с Symphony 1, но результатом стала более элегантная и более продуманная система. С выходом Symphony 3 обязательно произойдет тоже самое. Хотя такие преобразования никогда не даются легко, они, несомненно, улучшают программное обеспечение и позволяют расти сообществу, чему все пользователи системы, несомненно, будут рады.

Заключение

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

Приятно, когда все складывается.



11 июня 2012 г.