Лучшие практики для интеграции сторонних модулей в ваше приложение - PullRequest
5 голосов
/ 07 сентября 2008

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

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

Наш подход до сих пор заключался в том, чтобы тщательно выбирать компоненты, выбирая те, которые имеют четко определенный API, предпочтительно через HTTP (например, REST или SOAP), хотя это не всегда возможно (у нас нет нашел достойный форум, который так работает). Есть ли предложения, которые люди могут дать любому, кто пытается это сделать, так как я подозреваю, что многие из нас в наши дни все чаще и чаще?

Ответы [ 4 ]

1 голос
/ 08 сентября 2008

Если вы собираетесь использовать библиотеки с открытым исходным кодом, выбирайте библиотеки с хорошей лицензией. Я обнаружил трудный путь (при попытке OEM-приложения), что многие компании уклоняются от лицензий, таких как LGPL. Я не буду вдаваться в подробности того, почему, но они предпочитают лицензии в стиле Apache, BSD или MIT.

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

Выберите технологии, которые хорошо работают вместе. Я собрал приложение, которое использует ORM и веб-сервисы. Spring Framework + Apache CXF + JPA для ORM создали хороший технологический стек. Все инструменты, которые я использую, легко связываются вместе в Spring, что упрощает их совместное использование. Последнее, что вы хотели бы сделать, - это выбрать инструменты, которые вы должны написать кучу кода, чтобы использовать их вместе.

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

1 голос
/ 08 сентября 2008

Убедитесь, что интерфейс между вашим приложением и сторонним приложением или библиотекой таков, что вы можете легко заменить его на что-то другое на всякий случай. В некоторых случаях стороннее программное обеспечение может быть просто реализацией стандартного API (Java часто делает это с JDBC, JMS, JNDI, ...). В других случаях это означает включение сторонней библиотеки в какой-то API, который вы придумали.

Конечно, бывают случаи, когда эта идея выбрасывается в окно и тесно интегрируется со сторонним программным обеспечением. Просто убедитесь, что вы ДЕЙСТВИТЕЛЬНО хотите привязать свое приложение к этой третьей стороне. Как только вы идете по этой дороге, ДЕЙСТВИТЕЛЬНО трудно вернуться и передумать.

0 голосов
/ 08 сентября 2008

Мой подход заключается в использовании стороннего кода для некоторых основных функций. Например, я использую Subsonic для доступа к данным, компоненты Devexpress для пользовательского интерфейса и Peter Blum Data Entry Suite для ввода и проверки данных. Subsonic с открытым исходным кодом, элементы управления Devexpress Peter Blum имеют исходный код, доступный за дополнительную плату. Мне было бы невозможно получить функциональность этих элементов управления, если бы я попытался написать их сам.

Этот подход позволяет мне сосредоточиться на пользовательских функциях моего приложения, не беспокоясь о том, как я получу доступ к базе данных или как я создаю редактируемый древовидный список, который выглядит красиво. Конечно, у меня нет полностью настроенного и работающего форума, но я знаю, что буду использовать базу данных SQL для своего приложения, и мне не нужно будет пытаться заставить различные компоненты хранения данных работать вместе. У меня нет вики, но я знаю, как использовать компоненты пользовательского интерфейса devexpress, и форматирование и проверка правильности ввода данных легко осуществить с помощью элементов управления Питера Блума. Другими словами, изучите инструменты (и, конечно, тщательно их выбирайте), которые ускорят разработку всех ваших проектов, и вы сможете сосредоточиться на тех частях своего приложения, которые необходимо настроить.

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

0 голосов
/ 07 сентября 2008

Дональд Кнут сказал, что даже лучше, чем повторно используемый код, это модифицируемый код, поэтому, если нет API, вам следует искать приложение с открытым исходным кодом, которое написано хорошо и, следовательно, его можно настроить.

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

...