Статьи

Завоевание предприятия!

Что такое корпоративное программное обеспечение

Корпоративное программное обеспечение разрушалось годами. «Почему это так?» Почему создание программного обеспечения для крупных организаций стало синонимом скуки? Некоторые люди говорят, что это скучно, потому что это не полезно. Трудно быть взволнованным, работая на «злые» корпорации. На мой взгляд, это не правильное отношение. Я бы сказал, что помощь миллионам людей в управлении своими банковскими транзакциями имеет большую ценность, чем создание другого анализатора Twitter. Давайте, по крайней мере, не будем отвергать идею создания корпоративного программного обеспечения за деньги. Вместо этого давайте немного подумаем о том, что такое корпоративное программное обеспечение и может ли Ruby стать хорошей платформой для его создания.

Что такое корпоративное программное обеспечение? Определение Мартина Фаулера:

  • Корпоративные приложения — это отображение, обработка и хранение больших объемов часто сложных данных, а также поддержка или автоматизация бизнес-процессов с этими данными. [1]

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

Nasty Application

Мы готовы?

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

интеграция

Если вы думаете, что разрабатывать новое приложение сложно, попробуйте интегрировать его с другими. Это чрезвычайно сложно. У вас обычно нет контроля над другими системами. Это означает, что вам приходится иметь дело с их самодельными (или несуществующими) API, вам необходимо поддерживать их новые выпуски и обрабатывать их простои. Это тяжело. Но у меня есть хорошие новости для написания интеграционного кода, например, в C # не лучше.

За последние несколько лет ситуация со всеми основными средствами интеграции значительно улучшилась. ActiveMQ? Нет проблем. Использование баз данных Oracle, MSSQL и Sybase стало возможным. Но даже несмотря на улучшение, вы все равно можете столкнуться с несколькими технологиями без доступных адаптеров Ruby. К счастью, есть отличное решение этой проблемы: JRuby. Все интегрируется с Java, что делает JRuby «серебряной пулей» против всех проблем интеграции.

JRuby Logo

Моделирование домена

Корпоративные системы обычно содержат большой набор бизнес-правил, выражающих нетривиальные домены. Настройка правил и принятие решений на основе собранных данных обычно является целью этих систем. Является ли Ruby хорошим решением для моделирования предметной области? Это точно так. Ruby — язык высокого уровня; он чрезвычайно удобен для чтения и обладает некоторыми функциями метапрограммирования, что делает его подходящим для реализации внутренних доменных языков (DSL) Я бы сказал, что Ruby — лучший язык для моделирования предметной области, чем, например, Java или C #.

развертывание

Развертывание могло быть проблемой несколько лет назад. EY (Engine Yard) и Heroku — отличные решения, которые прекрасно работают для компаний, желающих избавиться от своих отделов ИТ-операций и перенести свое программное обеспечение в облако. Однако не все хотят это делать. У некоторых компаний все еще есть серверы Windows. Они по-прежнему развертываются вручную (это процесс перетаскивания). Для таких компаний EY и Heroku не вариант. Управление другим стеком для развертывания приложений Ruby? Это не произойдет. Использование существующей инфраструктуры имеет решающее значение. Это еще одна область, где JRuby действительно сияет. Наличие автономных развертываемых пакетов, которые вы можете просто поместить в папку Tomcat, имеет огромное значение для этих компаний.

Они готовы?

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

Дополнительные ссылки

Для тех, кто интересуется созданием корпоративного программного обеспечения, я настоятельно рекомендую следующие книги:

Есть несколько хороших книг о JRuby:

Я написал несколько постов, связанных с темой:

Ссылки

[1] Мартин Фаулер. Шаблоны корпоративной архитектуры приложений.