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

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

Языки программирования для Enterprise

Обычно такие приложения принято разрабатывать на таких языках программирования, как Java, С#/.NET, чтобы обеспечить кроссплатформенность, быстроту разработки, надежность и снизить риски срыва проекта.

В чем сложность Enterprise приложений

Enterprise приложения очень крупные, зачастую со сложной бизнес-логикой и огромным количество подключаемых модулей. Так как enterprise приложения разрабатываются многими годами, то за это время над кодом может работать разное количество разработчиков с разным уровнем программирования. Поэтому многолетний код может содержать Legacy code - устаревший и сложно поддерживаемый код, который долгое время не обновлялся, но до сих пор используется. Полностью переписать эти участки кода крайне долго и очень невыгодно. Поэтому каждая ошибка допущенная в enterprise приложениях дорого стоит.

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

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