На этой неделе ApostropheCMS спонсирует Node.JS Interactive в Ванкувере, Британская Колумбия.

Трехдневная конференция для корпоративных разработчиков Node.JS, Node.JS Interactive, спонсируется такими компаниями, как Google, IBM, Heroku, Linode и… ну, мы.

Вот это да.

Как мы здесь оказались?

ApostropheCMS 2.x

Эта история начинается с решения вложить 18 месяцев дизайнеров и разработчиков в создание Apostrophe 2.x. Различные воплощения Апострофа существуют уже более шести лет, но 2.x особенный.

Выпущенный осенью 2016 года, Apostrophe 2.x представляет собой версию с «долгосрочной поддержкой», за которую мы с гордостью можем стоять. Он отличается тем, что он был построен с нуля на трех основных принципах: парное программирование, разработка на основе документации (DDD), разработка через тестирование (TDD) и все расширяемое (EE).

Преимущества парного программирования

«Парное программирование» - это процесс, в котором два разработчика работают бок о бок. Если вы когда-либо пробовали программировать, то знаете, что это процесс, подверженный ошибкам: компьютер не делает то, что вы хотите, он делает только то, что вы ему говорите. Два человека делают это намного лучше, чем один.

Повышение не только продуктивности, но также внимательности и заинтересованности всей команды - это просто поразительно.

Разработка на основе документации

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

Часто мы документировали эту функцию до того, как написали одну строчку кода: как другой программист мог бы ее использовать? Как бы это использовать?

«DDD» даже больше, чем парное программирование, привело к чувству приверженности и глубокому пониманию.

Разработка через тестирование

Еще одним ключевым выбором, сделанным при создании Apostrophe 2.x, была разработка через тестирование. Для большинства функций Apostrophe мы начали с вопроса: «Как мне это проверить? Как я узнаю, что это не работает? "

Итак, мы сначала написали тесты. Потом код.

Результатом является набор тестов, который сообщает нам, когда что-то идет не так, по всему спектру функций Apostrophe.

Расширяемое все

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

Итак, для Apostrophe 2.x мы пошли ва-банк. Каждый отдельный модуль в Apostrophe разработан с нуля, чтобы быть расширяемым (добавление новых функций для конкретного проекта) и подклассом (создание нескольких экземпляров, например, трех разных типов блогов на тот же сайт). Поскольку мы приняли методы объектно-ориентированного функционального программирования, существует четкий и задокументированный способ сделать все это как в браузере, так и на сервере. А это означает поддерживаемые проекты.

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

Поддержка Apostrophe Enterprise

С выпуском Apostrophe 2.x у нас появилась CMS с открытым исходным кодом, от которой разработчики Node.js могли по-настоящему прийти в восторг, с интерфейсом, которым могли бы заинтересоваться их клиенты. Мы знали, что клиенты «корпоративного класса» начнут это принимать.

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

Это приносит пользу всему сообществу, а также позволяет нашим клиентам избежать «привязки к поставщику» и воспользоваться преимуществами индивидуальной разработки, не углубляясь в бизнес CMS для себя.

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

Функции, созданные с помощью корпоративной поддержки

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

  • Рабочий процесс с системой утверждения. Модуль апостроф-рабочий процесс основан на нашем удобном для пользователя контекстном редактировании, сохраняя это удобство и гарантируя, что все будет проверено нужным человеком.
  • Интернационализация (также известная как локализация) с возможностью экспортировать только то, что изменилось в версии страницы на одном языке на другой. Пользователи могут предварительно просмотреть изменения, которые они собираются экспортировать, например, с глобального английского на локализованный сайт для конкретной страны. Это также часть нового модуля апостроф-рабочий процесс.
  • Единый вход. Apostrophe поддерживает единый вход в Google, Facebook, Twitter и многие другие системы благодаря модулю Паспорт с открытым исходным кодом и нашему собственному новому модулю Апостроф-паспорт, который обеспечивает универсальный мост.
  • Разрешение конфликта. если два пользователя редактируют страницу или другой фрагмент содержания в Apostrophe, Apostrophe вмешивается, чтобы разрешить конфликт.
  • Дружественные фильтры при управлении «элементами», такими как сообщения в блогах и события.
  • Улучшенная поддержка облачных вычислений, включая доставку ресурсов через облако для повышения производительности в больших масштабах.
  • Поддержка Redis. Redis - заслуженно популярное решение для кэширования информации в веб-приложениях. Apostrophe может использовать его как для кешей, так и для пользовательских сессий. Фактически, сеансы пользователей могут храниться в самых разных местах, опять же благодаря открытому исходному коду.
  • Лучшее контекстное редактирование. Наша цель - сделать возможным редактирование «в контексте» на странице во все большем количестве ситуаций.
  • Уведомления. Мы добавили привлекательную и ненавязчивую систему уведомлений о подтверждающих сообщениях, ошибках и т. д.
  • Редактирование в фокусе для более удобной обработки изображений на различных мобильных и настольных устройствах.
  • Надежность на уровне предприятия. Многие мелкие проблемы с производительностью и надежностью, которые могут «проскочить» на небольших сайтах, стали приоритетными благодаря корпоративным клиентам.
  • Усовершенствованный процесс регрессионного тестирования. Поскольку этого требуют наши корпоративные клиенты, мы теперь запускаем Apostrophe с помощью ручных регрессионных тестов, а также автоматических модульных тестов. Нет ничего лучше человека, когда речь идет о том, чтобы сказать: «Эй, теперь эта кнопка спрятана под другой кнопкой».
  • Быстрое массовое производство. Иногда нужно срочно выбросить много вещей. Корпоративные клиенты первыми замечают подобные упущения.
  • Лучшие пакеты. Благодаря нашей работе над модулем апострофа-рабочего процесса, который во многих отношениях улучшает Apostrophe, теперь стало проще вносить большие улучшения в Apostrophe и упаковывать их в один «npm» модуль »для установки разработчиками.
  • Улучшение взаимодействия с пользователем практически во всем.
  • Более удобное взаимодействие с разработчиками практически во всем.
  • И, конечно же, исправления ошибок. Мы делаем ошибки? Предупреждение о спойлере: да. Открытый исходный код означает больше внимания к коду, а клиенты службы поддержки предприятия означают, что больше внимания уделяется быстрому исправлению ошибок.

Взносы корпоративных клиентов

Корпоративные клиенты, спонсирующие нашу работу, - это лишь часть истории. У корпоративных клиентов обычно также есть собственные разработчики, которые вносят свои собственные функции Apostrophe в сообщество.

Прекрасным примером является тип поля схемы «объект» в Apostrophe, который этим летом был добавлен разработчиком, работающим на корпоративного клиента, с особенно глубоким интересом к Apostrophe.

Node.js Интерактивный

На этой неделе мы завершаем подготовку к спонсированию Node.js Interactive. И, опираясь на опыт наших корпоративных клиентов, мы намерены изменить мнение некоторых.

Node.js и системы управления контентом не часто упоминаются в одном предложении. Традиционно Node.js чаще используется в ролях «промежуточного программного обеспечения» на предприятии.

И все же у всех наших корпоративных клиентов есть две общие черты:

  1. Они действительно, очень любят Node.js. Серверная платформа, построенная на JavaScript, Node.js является быстрой, современной, безопасной, надежной и масштабируемой. А поскольку это JavaScript, их команды разработчиков могут придерживаться одного языка программирования как в веб-браузере, так и на веб-сервере. Это дает большой рост производительности.
  2. Им нужны веб-сайты с управляемым содержанием. И когда они узнают, что могут создавать их в гибкой, расширяемой системе с открытым исходным кодом, на чистом JavaScript… и получить результат, более удобный для пользователя, чем проприетарная CMS они остались позади ... они очень взволнованы.

Итак, с 4 по 6 октября мы будем в Node.js Interactive, чтобы рассказать новым корпоративным клиентам хорошие новости об ApostropheCMS. Мы думаем, что у нас есть то, что им нужно, и надеемся поделиться этим с ними.

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